bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/12548] New: anonymous version scripts no longer working with bin


From: ossman at cendio dot se
Subject: [Bug ld/12548] New: anonymous version scripts no longer working with binutils 2.21
Date: Mon, 7 Mar 2011 12:30:08 +0000

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: address@hidden
        ReportedBy: address@hidden


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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]