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

how to find symbols needed for libgcc-compat in glibc



Hi,
   I am not filing a bug on this right now, but you should
all be aware that any arch that wants to switch to gcc 3.2
as its default compiler will need to address the following
issue. The libgcc symbols starting in gcc 3.1 are now .hidden
which means breakage of old binaries occurs when gcc 3.1/3.2
rebuilds glibc. Both ia64, in glibc trunk, and ppc, in glibc trunk
and glibc-2-2-branch, have this addressed. Franz and Jakub used
scripts to search for the list of symbols that needed to go
into the sysdeps/<arch>/libgcc-compat.S code. Jakub describes
this procedure as follows...

-----------------------------------------------------------------
Basically, you take the list of libgcc.a (formerly) exported symbols
and scan all binaries/libraries if they have undefined references to any
of these symbols (as libc.so exports those on ia32/sparc and a few
others only, they will not be exported on other arches from libc, thus
are resolved to some unintentionally exported symbol in some other library
which is going away after rebuild with 3.2).

        Jakub
-----------------------------------------------------------------

Unfortunately, both Franz and Jakub have long ago thrown out
the scripts they used to do this. It doesn't effect gcc 3.2
going into sid, because gcc 3.1.1. has exactly the same issue.
However each arch has to address this before they switch to
gcc 3.2 as their default compiler in sid. At the time this was
looked at, Jakub only bothered with those arches which he deemed
to have a large enough user base to bother with. It is unclear
how many arches have been checked at this point other than
ia64 and ppc; I am assuming i386 must be okay.
                               Jack
ps The threads in libc-alpha discussing this are...

http://sources.redhat.com/ml/libc-alpha/2002-04/msg00025.html
http://sources.redhat.com/ml/libc-alpha/2002-05/msg00067.html

Note that Franz has just re-written his libgcc-compat code
to be in the same form as the ia64 one in gcc trunk. He will
be checking the patch in for the new sysdeps/powerpc/libgcc-compat.S
version today. On ppc we will have all the fixes in glibc-2-2-branch.
The ia64 folks will have to backport from glibc trunk to 2.2.5
on their own as Jakub didn't think it was worth putting in the
glibc-2-2-branch.



Reply to: