http://sourceware.org/bugzilla/show_bug.cgi?id=12548
Summary: anonymous version scripts no longer working with binutils 2.21 Product: binutils Version: 2.21 Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sources.redhat.com ReportedBy: oss...@cendio.se I upgraded our build system from binutils 2.20 and gcc 4.4.3 to binutils 2.21 and gcc 4.5.2. This unfortunately broke support for anonymous version scripts. Example from libjpeg-turbo: sparc-sun-solaris2.10-gcc -shared .libs/jcapimin.o .libs/jcapistd.o .libs/jccoefct.o .libs/jccolor.o .libs/jcdctmgr.o .libs/jchuff.o .libs/jcinit.o .libs/jcmainct.o .libs/jcmarker.o .libs/jcmaster.o .libs/jcomapi.o .libs/jcparam.o .libs/jcphuff.o .libs/jcprepct.o .libs/jcsample.o .libs/jctrans.o .libs/jdapimin.o .libs/jdapistd.o .libs/jdatadst.o .libs/jdatasrc.o .libs/jdcoefct.o .libs/jdcolor.o .libs/jddctmgr.o .libs/jdhuff.o .libs/jdinput.o .libs/jdmainct.o .libs/jdmarker.o .libs/jdmaster.o .libs/jdmerge.o .libs/jdphuff.o .libs/jdpostct.o .libs/jdsample.o .libs/jdtrans.o .libs/jerror.o .libs/jfdctflt.o .libs/jfdctfst.o .libs/jfdctint.o .libs/jidctflt.o .libs/jidctfst.o .libs/jidctint.o .libs/jidctred.o .libs/jquant1.o .libs/jquant2.o .libs/jutils.o .libs/jmemmgr.o .libs/jmemnobs.o .libs/jaricom.o .libs/jcarith.o .libs/jdarith.o .libs/jsimd_none.o .libs/turbojpegl.o -lc -Wl,--version-script -Wl,./turbojpeg-mapfile -Wl,-soname -Wl,libturbojpeg.so -o .libs/libturbojpeg.so /usr/lib/gcc/sparc-sun-solaris2.10/4.5.2/../../../../sparc-sun-solaris2.10/bin/ld: anonymous version tag cannot be combined with other version tags Contents of turbojpeg-mapfile: { global: tjInitCompress; tjCompress; TJBUFSIZE; tjInitDecompress; tjDecompressHeader; tjDecompressHeader2; tjDecompress; tjDestroy; tjGetErrorStr; local: *; }; The problem is specific to the Solaris/sparc backend. I have the same binutils/gcc pair built and targeting i686, x86_64, win32 and win64 and I do not get the problem there. After some digging, I found that the problem is in ld/emultempl/solaris2.em, which is part of the new Solaris 2 ABI stuff. It tries to add a new version section for a bunch of symbols, which of course won't work when there is already an anonymous section from the command line. I'm not sure how to proceed here. I have to assume this version section is being added for a reason, so I can't just remove it. Perhaps the entries need to be merged with the existing section? -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils