[PATCH] 3.2: Fixup symbol versioning mistake on powerpc-linux-gnu
Daniel Jacobowitz
drow@mvista.com
Sun Aug 4 12:07:00 GMT 2002
On Sun, Aug 04, 2002 at 09:02:02PM +0200, Franz Sirl wrote:
> Hi,
>
> this turned out to be more difficult than I thought, but finally I had the
> right idea on how to tackle that.
>
> The patch changes the symbol versions in the shared libgcc for these sysmbols:
>
> __divdi3
> __udivdi3
> __moddi3
> __umoddi3
>
> The change is to move the link-time reference from GLIBC_2.0 to GCC_3.0:
>
> 3.0, 3.1: run+linktime @@GLIBC_2.0, runtime @GCC_3.0
> 3.2+: run+linktime @@GCC_3.0, runtime @GLIBC_2.0
>
> This is to finally break the interaction between gcc and glibc on these
> symbols.
>
> Bootstrapped on i686-linux-gnu and powerpc-linux-gnu without regressions.
>
> I will do a few more compatibility checks today+tomorrow, OK to commit to
> mainline and 3.2 branch after that?
>
> BTW, I noticed that the symbols in libgcc.a are only hidden by mklibgcc if
> SHLIB_LINK is set, is this intentional? Doesn't that mean you have to build
> gcc and glibc 2 times in a cross-compile environment to get a correct glibc
> with no re-exported libgcc symbols?
I've been using this:
Fix a visibility problem on libgcc, which led to PowerPC glibc build
failures. I need to take this up with the GCC developers at next
opportunity; it may not be correct for all platforms (but is for all
of our platforms).
- djacobowitz
--- gcc-3.1/gcc/mklibgcc.in.orig Wed Jul 24 12:23:59 2002
+++ gcc-3.1/gcc/mklibgcc.in Wed Jul 24 12:24:26 2002
@@ -279,7 +279,7 @@
libgcc_a_objs="$libgcc_objs $libgcc_st_objs"
- if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
+ if [ "@libgcc_visibility@" = yes ]; then
libgcc_a_objs=
echo ""
for o in $libgcc_objs $libgcc_st_objs; do
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
More information about the Gcc-patches
mailing list