View previous topic :: View next topic |
Author |
Message |
ese002 Tux's lil' helper
Joined: 20 Sep 2006 Posts: 143
|
Posted: Mon Dec 12, 2011 7:32 am Post subject: [SOLVED] Thunderbird 8.0-r1 fails to link on 32 bit system |
|
|
Is it no longer possible to build Thunderbird on a 32-bit system?
Merge is failing at the link step LD reports "failed to set dynamic section sizes: Memory exhausted". This is on a system with 1GB ram, 12GB of swap, and less than 100MB in use by other agents. I'm not sure what value swap beyond the reach of 32-bit addressing is but at least I'm sure the issue is not that I haven't allocated enough swap!
Top shows that ld reaches just under 1GB when it dies. That's odd to me because there is still plenty of swap remaining at that point and at least another GB of address space *UNLESS* ld wants to allocate a huge chunk all at once.
All my tools are up to the moment.
* sys-devel/gcc Latest version installed: 4.5.3-r1
* sys-devel/binutils Latest version installed: 2.21.1-r1
/usr/bin/python2.7 ../../config/pythonpath.py -I../../config ../../config/expandlibs_exec.py --uselist -- i686-pc-linux-gnu-g++ -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-variadic-macros -Werror=return-type -march=athlon-xp -Wno-return-type -w -mno-avx -fno-strict-aliasing -fshort-wchar -pthread -ffunction-sections -fdata-sections -pipe -DNDEBUG -DTRIMMED -g -O2 -fPIC -shared -Wl,-z,defs -Wl,--gc-sections -Wl,-h,libxul.so -o libxul.so nsStaticXULComponents.o nsUnicharUtils.o nsBidiUtils.o nsRDFResource.o -lpthread -Wl,-O1 -Wl,--as-needed -Wl,-rpath-link,/var/tmp/portage/mail-client/thunderbird-8.0-r1/work/comm-release/mozilla/dist/bin -Wl,-rpath-link,/usr/lib ../../toolkit/xre/libxulapp_s.a ../../staticlib/components/libnecko.a ../../staticlib/components/libuconv.a ../../staticlib/components/libi18n.a ../../staticlib/components/libchardet.a ../../staticlib/components/libjar50.a ../../staticlib/components/libstartupcache.a ../../staticlib/components/libpref.a ../../staticlib/components/libhtmlpars.a ../../staticlib/components/libimglib2.a ../../staticlib/components/libgkgfx.a ../../staticlib/components/libgklayout.a ../../staticlib/components/libdocshell.a ../../staticlib/components/libembedcomponents.a ../../staticlib/components/libwebbrwsr.a ../../staticlib/components/libnsappshell.a ../../staticlib/components/libtxmgr.a ../../staticlib/components/libcommandlines.a ../../staticlib/components/libtoolkitcomps.a ../../staticlib/components/libpipboot.a ../../staticlib/components/libpipnss.a ../../staticlib/components/libappcomps.a ../../staticlib/components/libjsreflect.a ../../staticlib/components/libcomposer.a ../../staticlib/components/libjetpack_s.a ../../staticlib/components/libtelemetry.a ../../staticlib/components/libstoragecomps.a ../../staticlib/components/libjsctypes.a ../../staticlib/components/libjsperf.a ../../staticlib/components/libgkplugin.a ../../staticlib/components/libunixproxy.a ../../staticlib/components/libjsd.a ../../staticlib/components/libautoconfig.a ../../staticlib/components/libauth.a ../../staticlib/components/libcookie.a ../../staticlib/components/libpermissions.a ../../staticlib/components/libuniversalchardet.a ../../staticlib/components/librdf.a ../../staticlib/components/libwindowds.a ../../staticlib/components/libfileview.a ../../staticlib/components/libplaces.a ../../staticlib/components/libtkautocomplete.a ../../staticlib/components/libsatchel.a ../../staticlib/components/libpippki.a ../../staticlib/components/libwidget_gtk2.a ../../staticlib/components/libsystem-pref.a ../../staticlib/components/libimgicon.a ../../staticlib/components/libaccessibility.a ../../staticlib/components/libremoteservice.a ../../staticlib/components/libspellchecker.a ../../staticlib/components/libzipwriter.a ../../staticlib/components/libservices-crypto.a ../../staticlib/components/libxpautocomplete.a ../../staticlib/components/libmailcomps.a ../../staticlib/components/libmail.a ../../staticlib/components/libmsgsmime.a ../../staticlib/components/libimport.a ../../staticlib/components/libmozldap.a ../../staticlib/components/libmork.a ../../staticlib/libjsipc_s.a ../../staticlib/libdomipc_s.a ../../staticlib/libdomplugins_s.a ../../staticlib/libmozipc_s.a ../../staticlib/libmozipdlgen_s.a ../../staticlib/libipcshell_s.a ../../staticlib/libgfx2d.a ../../staticlib/libgfxipc_s.a ../../staticlib/libxpcom_core.a ../../staticlib/libucvutil_s.a ../../staticlib/libchromium_s.a ../../staticlib/libmozreg_s.a ../../staticlib/libgtkxtbin.a ../../staticlib/libthebes.a ../../staticlib/libycbcr.a ../../staticlib/libangle.a -L../../dist/bin -L../../dist/lib -ljpeg -lpng ../../gfx/qcms/libmozqcms.a /var/tmp/portage/mail-client/thunderbird-8.0-r1/work/comm-release/mozilla/dist/lib/libjs_static.a -lffi -Wl,-R/usr/lib -L/usr/lib -lssl3 -lsmime3 -lnss3 -lnssutil3 -lcrmf -lcairo -lpixman-1 -lfreetype -lfontconfig -L/usr/lib -lXrender -lcairo -lX11 ../../gfx/harfbuzz/src/libmozharfbuzz.a ../../gfx/ots/src/libmozots.a -L../../dist/bin -L../../dist/lib -lldap60 -lprldap60 -lldif60 ../../dist/lib/libmozsqlite3.a -lz -lhunspell-1.3 -L/usr/lib -levent -L/usr/lib -lvpx -lasound -L../../dist/bin -L../../dist/lib -Wl,-R/usr/lib -L/usr/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl ../../dist/lib/libmozalloc.a -ldbus-1 -lpthread -lrt -L/usr/lib -lX11 -lXext -pthread -lpangoft2-1.0 -lfreetype -lfontconfig -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -pthread -lgtk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lgdk-x11-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXt -lgthread-2.0 -lfreetype -lz -lbz2 -lstartup-notification-1 -ldl -lrt
/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../i686-pc-linux-gnu/bin/ld: failed to set dynamic section sizes: Memory exhausted
collect2: ld returned 1 exit status
make[4]: *** [libxul.so] Error 1
Last edited by ese002 on Tue Dec 13, 2011 12:54 am; edited 2 times in total |
|
Back to top |
|
|
Aquous l33t
Joined: 08 Jan 2011 Posts: 700
|
Posted: Mon Dec 12, 2011 7:40 am Post subject: |
|
|
Apparently ld needs to actually use more than 1 GB of memory. Swap works by temporarily writing unused memory to the disk so that other applications can use the RAM that those bits were occupying; however, if none of that 1 GB is actually unused, it can't be swapped, eventually resulting in OOM.
Get more RAM |
|
Back to top |
|
|
ese002 Tux's lil' helper
Joined: 20 Sep 2006 Posts: 143
|
Posted: Mon Dec 12, 2011 8:20 am Post subject: |
|
|
Adding more ram will make it run faster but, unless there is something heinously broken in the virtual memory system, it wouldn't make any difference whether a program will run or not. Except for locked pages, which are few and only used in the kernel, any page can be swapped out. There is no concept of memory being "in use" or "not in use". Pages not accessed frequently are better candidates to be swapped out because they won't need to be swapped in again soon. But, if there are no better choices, even frequently accessed pages can be swapped out. That is called "trashing". It makes the system really slow but it doesn't result in "out of memory" errors. |
|
Back to top |
|
|
ese002 Tux's lil' helper
Joined: 20 Sep 2006 Posts: 143
|
Posted: Tue Dec 13, 2011 12:52 am Post subject: Ulimit |
|
|
Got it.
I can't seem where it was set but somehow, somewhere, the default ulimit for virtual memory was set to 1000000. Once I changed that to 2GB, I was able to build successfully. Peak usage was just under 1.2GB. It was miserably slow, of course, but that's what virtual memory is all about. |
|
Back to top |
|
|
AgBr Apprentice
Joined: 06 Nov 2010 Posts: 195
|
Posted: Sun Feb 23, 2014 5:24 pm Post subject: |
|
|
Ran into this right now.
Code: |
faramir / # cat /proc/meminfo
MemTotal: 3106080 kB
MemFree: 2470984 kB
Buffers: 76656 kB
Cached: 469164 kB
SwapCached: 708 kB
Active: 233968 kB
Inactive: 324360 kB
Active(anon): 11716 kB
Inactive(anon): 6080 kB
Active(file): 222252 kB
Inactive(file): 318280 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 2223048 kB
HighFree: 1744408 kB
LowTotal: 883032 kB
LowFree: 726576 kB
SwapTotal: 20913912 kB
SwapFree: 20905904 kB
Dirty: 76 kB
Writeback: 0 kB
AnonPages: 12172 kB
Mapped: 3892 kB
Shmem: 5252 kB
Slab: 60684 kB
SReclaimable: 54876 kB
SUnreclaim: 5808 kB
KernelStack: 1128 kB
PageTables: 868 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 22466952 kB
Committed_AS: 79516 kB
VmallocTotal: 122880 kB
VmallocUsed: 24884 kB
VmallocChunk: 94432 kB
DirectMap4k: 6136 kB
DirectMap2M: 907264 kB
faramir / # ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 24263
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 24263
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
|
The system is 32Bit and build is a chroot environment for building binary packages. Look here for reference (rather lengthy thread).
Is there a solution or am I stuck with installing thunderbird-bin on a 32Bit machine? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|