Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Thunderbird 8.0-r1 fails to link on 32 bit system
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
ese002
Tux's lil' helper
Tux's lil' helper


Joined: 20 Sep 2006
Posts: 143

PostPosted: Mon Dec 12, 2011 7:32 am    Post subject: [SOLVED] Thunderbird 8.0-r1 fails to link on 32 bit system Reply with quote

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
View user's profile Send private message
Aquous
l33t
l33t


Joined: 08 Jan 2011
Posts: 700

PostPosted: Mon Dec 12, 2011 7:40 am    Post subject: Reply with quote

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
View user's profile Send private message
ese002
Tux's lil' helper
Tux's lil' helper


Joined: 20 Sep 2006
Posts: 143

PostPosted: Mon Dec 12, 2011 8:20 am    Post subject: Reply with quote

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
View user's profile Send private message
ese002
Tux's lil' helper
Tux's lil' helper


Joined: 20 Sep 2006
Posts: 143

PostPosted: Tue Dec 13, 2011 12:52 am    Post subject: Ulimit Reply with quote

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
View user's profile Send private message
AgBr
Apprentice
Apprentice


Joined: 06 Nov 2010
Posts: 195

PostPosted: Sun Feb 23, 2014 5:24 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
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