This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: versioned symbol problem
- From: prj at po dot cwru dot edu (Paul Jarc)
- To: gcc at gnu dot org
- Date: Mon, 12 Aug 2002 16:50:25 -0400
- Subject: Re: versioned symbol problem
- Organization: What did you have in mind? A short, blunt, human pyramid?
- References: <m3lm7pqkn0.fsf@multivac.cwru.edu>
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