config.gcc (all gnu and linux): Use t-slibgcc-elf-ver with t-linux.
authorRichard Henderson <rth@redhat.com>
Fri, 25 May 2001 23:08:57 +0000 (16:08 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 25 May 2001 23:08:57 +0000 (16:08 -0700)
        * config.gcc (all gnu and linux): Use t-slibgcc-elf-ver with t-linux.
        (i386-*-solaris2): Use t-slibgcc-elf-ver or t-slibgcc-sld.
        (sparc*-*-solaris2): Likewise.
        * config/t-linux: Remove shared libgcc macros.
        * config/t-slibgcc-elf-ver: Move from sparc/t-slibgcc.
        * config/t-slibgcc-sld: Move from sparc/t-slibgcc-sld.

From-SVN: r42602

gcc/ChangeLog
gcc/config.gcc
gcc/config/sparc/t-slibgcc [deleted file]
gcc/config/sparc/t-slibgcc-sld [deleted file]
gcc/config/t-linux
gcc/config/t-slibgcc-elf-ver [new file with mode: 0644]
gcc/config/t-slibgcc-sld [new file with mode: 0644]

index b213d9b2a124a6b75aa9a1d384375efe0b5adc26..5890bacdc81634d1aa1470fc5045ec7f2dfc5321 100644 (file)
@@ -1,3 +1,12 @@
+2001-05-25  Richard Henderson  <rth@redhat.com>
+
+       * config.gcc (all gnu and linux): Use t-slibgcc-elf-ver with t-linux.
+       (i386-*-solaris2): Use t-slibgcc-elf-ver or t-slibgcc-sld.
+       (sparc*-*-solaris2): Likewise.
+       * config/t-linux: Remove shared libgcc macros.
+       * config/t-slibgcc-elf-ver: Move from sparc/t-slibgcc.
+       * config/t-slibgcc-sld: Move from sparc/t-slibgcc-sld.
+
 2001-05-25  Loren J. Rittle  <ljrittle@acm.org>
 
        * config.gcc (*-*-freebsd*): Report bad configuration.
index c40551f9f979557137ad26aef6509932e97d6441..69764552ab8891722421e25eaed3f5ae0078c236 100644 (file)
@@ -274,7 +274,7 @@ case $machine in
        # These details are the same as for Linux.
        xmake_file=x-linux
        # But here we need a little extra magic.
-       tmake_file="t-linux t-gnu"
+       tmake_file="t-slibgcc-elf-ver t-linux t-gnu"
        case $machine in
        i[34567]86-*-*)
                tm_file="${cpu_type}/${cpu_type}.h i386/att.h linux.h i386/linux.h gnu.h ${tm_file}"
@@ -430,7 +430,7 @@ alpha*-*-linux*ecoff*)
 alpha*-*-linux*libc1*)
        tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
        target_cpu_default="MASK_GAS"
-       tmake_file="t-linux t-linux-gnulibc1 alpha/t-alpha alpha/t-crtbe alpha/t-ieee"
+       tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 alpha/t-alpha alpha/t-crtbe alpha/t-ieee"
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
        gas=yes gnu_ld=yes
        if test x$enable_threads = xyes; then
@@ -440,7 +440,7 @@ alpha*-*-linux*libc1*)
 alpha*-*-linux*)
        tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
        target_cpu_default="MASK_GAS"
-       tmake_file="t-linux alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
+       tmake_file="t-slibgcc-elf-ver t-linux alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
        gas=yes gnu_ld=yes
        if test x$enable_threads = xyes; then
@@ -573,7 +573,7 @@ arm*-*-netbsd*)
 arm*-*-linux*)                 # ARM GNU/Linux with ELF
        xmake_file=x-linux
        tm_file="arm/linux-elf.h"
-       tmake_file="t-linux arm/t-linux"
+       tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        case x${enable_threads} in
@@ -688,7 +688,7 @@ hppa*-*-linux* | parisc*-*-linux*)
        target_cpu_default="MASK_PA_11"
        tm_file="${tm_file} linux.h pa/pa-linux.h \
                 pa/pa32-regs.h pa/pa32-linux.h"
-       tmake_file=pa/t-linux
+       tmake_file="t-slibgcc-elf-ver t-linux pa/t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gas=yes gnu_ld=yes
        if test x$enable_threads = xyes; then
@@ -920,7 +920,7 @@ i370-*-mvs*)
 i370-*-linux*)
        xmake_file=x-linux
        tm_file="i370/linux.h ${tm_file}"
-       tmake_file=t-linux
+       tmake_file="t-slibgcc-elf-ver t-linux"
        # broken_install=yes
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        # extra_parts="crtbegin.o crtend.o"
@@ -1101,7 +1101,7 @@ i[34567]86-*-linux*libc1) # Intel 80386's running GNU/Linux
                                # GNU/Linux C library 5
        xmake_file=x-linux      
        tm_file="i386/i386.h i386/att.h linux.h i386/linux.h"
-       tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff"
+       tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 i386/t-crtstuff"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        float_format=i386
@@ -1114,7 +1114,7 @@ i[34567]86-*-linux*)      # Intel 80386's running GNU/Linux
                        # aka GNU/Linux C library 6
        xmake_file=x-linux
        tm_file="i386/i386.h i386/att.h linux.h i386/linux.h"
-       tmake_file="t-linux i386/t-crtstuff"
+       tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        float_format=i386
@@ -1220,6 +1220,11 @@ i[34567]86-*-solaris2*)
                tm_file="i386/sol2gas.h ${tm_file}"
        fi
        tmake_file=i386/t-sol2
+       if test x$gnu_ld = xyes; then
+               tmake_file="$tmake_file t-slibgcc-elf-ver"
+       else
+               tmake_file="$tmake_file t-slibgcc-sld"
+       fi
        extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
        xmake_file=x-svr4
        if test x${enable_threads} = x; then
@@ -1479,7 +1484,7 @@ ia64*-*-elf*)
        ;;
 ia64*-*-linux*)
        tm_file=ia64/linux.h
-       tmake_file="t-linux ia64/t-ia64 ia64/t-glibc"
+       tmake_file="t-slibgcc-elf-ver t-linux ia64/t-ia64 ia64/t-glibc"
        target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
        if test x$enable_threads = xyes; then
                thread_file='posix'
@@ -1883,7 +1888,7 @@ m68k-*-linux*libc1)               # Motorola m68k's running GNU/Linux
                                # GNU/Linux C library 5
        xmake_file=x-linux
        tm_file=m68k/linux.h
-       tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux"
+       tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1 m68k/t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        extra_headers=math-68881.h
        float_format=m68k
@@ -1894,7 +1899,7 @@ m68k-*-linux*)            # Motorola m68k's running GNU/Linux
                                # aka the GNU/Linux C library 6.
        xmake_file=x-linux
        tm_file=m68k/linux.h
-       tmake_file="t-linux m68k/t-linux"
+       tmake_file="t-slibgcc-elf-ver t-linux m68k/t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        extra_headers=math-68881.h
        float_format=m68k
@@ -2186,7 +2191,7 @@ mips*-*-linux*)                           # Linux MIPS, either endian.
               mips*el-*)  tm_file="elfos.h mips/elfl.h mips/linux.h" ;;
               *)         tm_file="elfos.h mips/elf.h mips/linux.h" ;;
        esac
-       tmake_file=t-linux
+       tmake_file="t-slibgcc-elf-ver t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        gas=yes
@@ -2622,7 +2627,7 @@ powerpc-*-rtems*)
 powerpc-*-linux*libc1)
        tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/linux.h"
        out_file=rs6000/rs6000.c
-       tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
+       tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
        xmake_file=x-linux
        extra_headers=ppc-asm.h
        if test x$enable_threads = xyes; then
@@ -2632,7 +2637,7 @@ powerpc-*-linux*libc1)
 powerpc-*-linux*)
        tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/linux.h"
        out_file=rs6000/rs6000.c
-       tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
+       tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
        xmake_file=x-linux
        extra_headers=ppc-asm.h
        if test x$enable_threads = xyes; then
@@ -2834,7 +2839,7 @@ sparc-*-linux*aout*)              # Sparc's running GNU/Linux, a.out
 sparc-*-linux*libc1*)  # Sparc's running GNU/Linux, libc5
        xmake_file=x-linux
        tm_file=sparc/linux.h
-       tmake_file="t-linux t-linux-gnulibc1"
+       tmake_file="t-slibgcc-elf-ver t-linux t-linux-gnulibc1"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        float_format=sparc
@@ -2842,7 +2847,7 @@ sparc-*-linux*libc1*)     # Sparc's running GNU/Linux, libc5
 sparc-*-linux*)                # Sparc's running GNU/Linux, libc6
        xmake_file=x-linux
        tm_file=sparc/linux.h
-       tmake_file="t-linux"
+       tmake_file="t-slibgcc-elf-ver t-linux"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        gnu_ld=yes
        if test x$enable_threads = xyes; then
@@ -2886,9 +2891,9 @@ sparcv9-*-solaris2*)
        xm_defines=POSIX
        tmake_file="sparc/t-sol2 sparc/t-sol2-64"
        if test x$gnu_ld = xyes; then
-               tmake_file="$tmake_file sparc/t-slibgcc"
+               tmake_file="$tmake_file t-slibgcc-elf-ver"
        else
-               tmake_file="$tmake_file sparc/t-slibgcc-sld"
+               tmake_file="$tmake_file t-slibgcc-sld"
        fi
        extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
        float_format=none
@@ -2911,9 +2916,9 @@ sparc-hal-solaris2*)
         tm_file="sparc/sol2.h sparc/hal.h"
         tmake_file="sparc/t-halos sparc/t-sol2"
        if test x$gnu_ld = xyes; then
-               tmake_file="$tmake_file sparc/t-slibgcc"
+               tmake_file="$tmake_file t-slibgcc-elf-ver"
        else
-               tmake_file="$tmake_file sparc/t-slibgcc-sld"
+               tmake_file="$tmake_file t-slibgcc-sld"
        fi
         extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
         case $machine in
@@ -2936,9 +2941,9 @@ sparc-*-solaris2*)
        xm_defines=POSIX
        tmake_file=sparc/t-sol2
        if test x$gnu_ld = xyes; then
-               tmake_file="$tmake_file sparc/t-slibgcc"
+               tmake_file="$tmake_file t-slibgcc-elf-ver"
        else
-               tmake_file="$tmake_file sparc/t-slibgcc-sld"
+               tmake_file="$tmake_file t-slibgcc-sld"
        fi
        extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
 # At the moment, 32-to-64 cross compilation doesn't work.
@@ -3037,7 +3042,7 @@ sparc64-*-elf*)
        extra_parts="crtbegin.o crtend.o"
        ;;
 sparc64-*-linux*)              # 64-bit Sparc's running GNU/Linux
-       tmake_file="t-linux sparc/t-linux64"
+       tmake_file="t-slibgcc-elf-ver t-linux sparc/t-linux64"
        tm_file=sparc/linux64.h
        xmake_file=x-linux
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
diff --git a/gcc/config/sparc/t-slibgcc b/gcc/config/sparc/t-slibgcc
deleted file mode 100644 (file)
index 1c52bcb..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# Build a shared libgcc library with the GNU linker.
-
-SHLIB_EXT = .so
-SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-       -Wl,--soname=@shlib_base_name@.so.0 \
-       -Wl,--version-script=@shlib_map_file@ \
-       -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc && \
-       rm -f @shlib_base_name@.so.0 && \
-       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
-# $(slibdir) double quoted to protect it from expansion while building
-# libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
-       rm -f $$(slibdir)/@shlib_base_name@.so; \
-       $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
-SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/sparc/t-slibgcc-sld b/gcc/config/sparc/t-slibgcc-sld
deleted file mode 100644 (file)
index 5010722..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# Build a shared libgcc library with the Solaris linker.
-
-SHLIB_EXT = .so
-SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-       -Wl,-h,@shlib_base_name@.so.0 -Wl,-z,text -Wl,-z,defs \
-       -Wl,-M,@shlib_map_file@ -o @shlib_base_name@.so \
-       @multilib_flags@ @shlib_objs@ -lc && \
-       rm -f @shlib_base_name@.so.0 && \
-       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
-# $(slibdir) double quoted to protect it from expansion while building
-# libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
-       rm -f $$(slibdir)/@shlib_base_name@.so; \
-       $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
-SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
index d16db7de6150c4a0656fb74c2fc653df907a81d5..06283bd65b7c05ae2c0b060130b9ffb2b706b08a 100644 (file)
@@ -5,18 +5,7 @@ STMP_FIXPROTO =
 CRTSTUFF_T_CFLAGS_S = -fPIC
 # Compile libgcc2.a with pic.
 TARGET_LIBGCC2_CFLAGS = -fPIC
-# Build a shared libgcc library.
-SHLIB_EXT = .so
-SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
-       -Wl,--soname=@shlib_base_name@.so.0 \
-       -Wl,--version-script=@shlib_map_file@ \
-       -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc && \
-       rm -f @shlib_base_name@.so.0 && \
-       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
-# $(slibdir) double quoted to protect it from expansion while building
-# libgcc.mk.  We want this delayed until actual install time.
-SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
-       rm -f $$(slibdir)/@shlib_base_name@.so; \
-       $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
-SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
-SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/libgcc-glibc.ver
+
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
+# the symbol versions that glibc used.
+SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
diff --git a/gcc/config/t-slibgcc-elf-ver b/gcc/config/t-slibgcc-elf-ver
new file mode 100644 (file)
index 0000000..88506d9
--- /dev/null
@@ -0,0 +1,17 @@
+# Build a shared libgcc library for ELF with symbol versioning
+# with the GNU linker.
+
+SHLIB_EXT = .so
+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+       -Wl,--soname=@shlib_base_name@.so.0 \
+       -Wl,--version-script=@shlib_map_file@ \
+       -o @shlib_base_name@.so @multilib_flags@ @shlib_objs@ -lc && \
+       rm -f @shlib_base_name@.so.0 && \
+       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
+# $(slibdir) double quoted to protect it from expansion while building
+# libgcc.mk.  We want this delayed until actual install time.
+SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
+       rm -f $$(slibdir)/@shlib_base_name@.so; \
+       $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
+SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver
diff --git a/gcc/config/t-slibgcc-sld b/gcc/config/t-slibgcc-sld
new file mode 100644 (file)
index 0000000..5010722
--- /dev/null
@@ -0,0 +1,16 @@
+# Build a shared libgcc library with the Solaris linker.
+
+SHLIB_EXT = .so
+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+       -Wl,-h,@shlib_base_name@.so.0 -Wl,-z,text -Wl,-z,defs \
+       -Wl,-M,@shlib_map_file@ -o @shlib_base_name@.so \
+       @multilib_flags@ @shlib_objs@ -lc && \
+       rm -f @shlib_base_name@.so.0 && \
+       $(LN_S) @shlib_base_name@.so @shlib_base_name@.so.0
+# $(slibdir) double quoted to protect it from expansion while building
+# libgcc.mk.  We want this delayed until actual install time.
+SHLIB_INSTALL = $(INSTALL_DATA) @shlib_base_name@.so $$(slibdir)/@shlib_base_name@.so.0; \
+       rm -f $$(slibdir)/@shlib_base_name@.so; \
+       $(LN_S) @shlib_base_name@.so.0 $$(slibdir)/@shlib_base_name@.so
+SHLIB_MKMAP = $(srcdir)/mkmap-symver.awk
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver