This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: versioned symbol problem


I wrote:
> I'm compiling XFree86 on a GNU/Linux system almost entirely built from
> scratch, and I get this error:
> + c++ -o ./libGLU.so.1.3~ -shared -Wl,-soname,libGLU.so.1 [long list of object files] -lc
> ld: ./libGLU.so.1.3~: undefined versioned symbol name __frame_state_for@@GLIBC_2.0
> ld: failed to set dynamic section sizes: Bad value
> collect2: ld returned 1 exit status

The problem here seems to have been that I had configured gcc with
--disable-shared; a new installation including a shared libgcc makes
the problem go away.  It would be nice if gcc were to detect when a
shared libgcc is needed but not present, and give a more meaningful
error message.

There's also a massive documentation bug in that symbol versioning is
not covered at all.  I had to guess that it is something that applies
only to shared libraries and that these object files were compiled as
if they were going to be linked to the shared libgcc even though none
was present.  I don't know if this belongs in the gcc manual or the
binutils manual (precisly because I have no understanding of symbol
versioning, because it is undocumented), but it should documented
somewhere.


paul


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]