http://sourceware.org/bugzilla/show_bug.cgi?id=15612
Bug ID: 15612 Summary: ld 2.23.52.20130612 (debian) fails to find __gthrw_pthread_cancel symbols after incremental link on non-x86 Product: binutils Version: 2.24 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: paukoning at gmail dot com I've tried to compile a rather complex software ( http://dl.exactcode.de/oss/exact-image/exact-image-0.8.8.tar.bz2 ) on Debian sid powerpc and enabled -flto. The incremental link worked fine but linking the .a file with the program program resulted in undefined reference problem # g++ -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fopenmp -O0 -flto -fPIC -Wno-sign-compare -fPIC -funroll-loops -fomit-frame-pointer -funswitch-loops -fpeel-loops -ftracer -funit-at-a-time -frename-registers -ftree-vectorize -Wno-switch -Wno-switch-enum -D_FORTIFY_SOURCE=2 -I . -I/usr/include/agg2 -I/usr/include/freetype2 -I lib -I utility -pthread -I/usr/include/OpenEXR -I codecs/ -I bardecode -I utility -I utility -I/usr/X11/include -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/p11-kit-1 -I/usr/include/evas-1 -I/usr/include/eina-1 -I/usr/include/eina-1/eina -I/usr/include/eet-1 -Igfx -D WITHEVAS_COLOR_PREMUL -I . -I lib -I gfx -D WITHEVAS_X11_CONNECTION -D WITHEVAS_X11_SCREEN -o 'objdir/frontends/bardecode' objdir/frontends/bardecode.o objdir/lib/lib.a objdir/codecs/lib.a objdir/bardecode/bardecode.a objdir/utility/ArgumentList.o objdir/utility/File.o -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -fuse-linker-plugin -lagg_pic -laggfontfreetype_pic -lfreetype -ljpeg -ltiff -lpng -lungif -ljasper -pthread -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -llcms -lexpat -lz -L/usr/X11/lib64 -L/usr/X11/lib -L/usr/X11R6/lib -lX11 -lXrender -pthread -levas -leina -lrt /tmp/ccmLoB2G.ltrans11.ltrans.o:(.got2+0x1c4): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .65991.3076]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x0): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .65991.4212]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x4): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .64350.4215]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x8): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .33806.4218]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0xc): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .35539.4221]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x10): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .37867.4224]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x14): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .41133.4227]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x18): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .46095.4230]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x1c): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .47956.4233]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x20): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .48847.4236]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x24): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .53390.4239]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x28): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .55042.4242]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x2c): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .59457.4244]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x30): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .10420.4247]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x34): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .12907.4250]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x38): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .15068.4253]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x3c): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .17090.4255]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x40): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .20045.4258]' /tmp/ccmLoB2G.ltrans12.ltrans.o:(.data.rel.ro.local+0x44): undefined reference to `__gthrw_pthread_cancel(unsigned long) [clone .25330.4261]' The problem was going away after removing the -flto. So it seems somewhere is something lost when -flto is used. It also didn't happen on x86 (32/64 bit) systems -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils