Subject: More libgcc
To: None <tech-toolchain@netbsd.org>
From: Nick Hudson <skrll@netbsd.org>
List: tech-toolchain
Date: 06/18/2004 08:49:28
--Boundary-00=_I6p0AgIzVJZfkJw
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

We have diverged from stock gcc in the way that libgcc_s.so is built in that 
stock gcc uses symbol versioning. This exposed a problem for sh3 where a 
couple of integer support functions were available that couldn't be called 
via a PLT. We have a solution to this in place atm, but I'd like to replace 
it with the symbol versioning trick.

sh3 requires its own libgcc-std.ver to remove the functions (libgcc-std.ver). 
A similar fix has been included in gcc 3.4 and will be queued for 3.3.x.

I (again) haven't bumped libgcc_s.so major number as I didn't feel it 
necessary for the symbols removed (example included)

Comments?

Nick



--Boundary-00=_I6p0AgIzVJZfkJw
Content-Type: text/x-diff;
  charset="us-ascii";
  name="libgcc.diffs"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="libgcc.diffs"

Index: gnu/dist/gcc/gcc/config/sh/t-netbsd
===================================================================
RCS file: /cvsroot/src/gnu/dist/gcc/gcc/config/sh/t-netbsd,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 t-netbsd
--- gnu/dist/gcc/gcc/config/sh/t-netbsd	23 Jul 2003 02:41:58 -0000	1.1.1.1
+++ gnu/dist/gcc/gcc/config/sh/t-netbsd	18 Jun 2004 06:55:59 -0000
@@ -1,6 +1,10 @@
 TARGET_LIBGCC2_CFLAGS = -fpic
 LIB1ASMFUNCS_CACHE = _ic_invalidate
 
+# Use sh specific libgcc-std.ver to avoid exporting some
+# lib1func routines which shoud not be called via PLT.
+SHLIB_MAPFILES =  $(srcdir)/config/sh/libgcc-std.ver
+
 LIB2FUNCS_EXTRA=
 
 EXTRA_MULTILIB_PARTS=
Index: gnu/lib/libgcc3/arch/alpha.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/alpha.mk,v
retrieving revision 1.3
diff -u -r1.3 alpha.mk
--- gnu/lib/libgcc3/arch/alpha.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/alpha.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -mieee -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  alpha/alpha.h netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/arm.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/arm.mk,v
retrieving revision 1.3
diff -u -r1.3 arm.mk
--- gnu/lib/libgcc3/arch/arm.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/arm.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fomit-frame-pointer -fpic -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/armeb.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/armeb.mk,v
retrieving revision 1.5
diff -u -r1.5 armeb.mk
--- gnu/lib/libgcc3/arch/armeb.mk	19 Feb 2004 08:11:31 -0000	1.5
+++ gnu/lib/libgcc3/arch/armeb.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fomit-frame-pointer -fpic -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS TARGET_ENDIAN_DEFAULT=ARM_FLAG_BIG_END
 G_xm_file=ansidecl.h  dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/hppa.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/hppa.mk,v
retrieving revision 1.4
diff -u -r1.4 hppa.mk
--- gnu/lib/libgcc3/arch/hppa.mk	30 Apr 2004 08:15:47 -0000	1.4
+++ gnu/lib/libgcc3/arch/hppa.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fPIC -DELF=1 -DNETBSD=1 -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  pa/pa.h dbxelf.h elfos.h svr4.h netbsd.h netbsd-elf.h 		 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/i386.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/i386.mk,v
retrieving revision 1.3
diff -u -r1.3 i386.mk
--- gnu/lib/libgcc3/arch/i386.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/i386.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=${GNUHOSTDIST}/gcc/config/i386/mmintrin.h ${GNUHOSTDIST}/gcc/config/i386/xmmintrin.h ${GNUHOSTDIST}/gcc/config/i386/emmintrin.h ${GNUHOSTDIST}/gcc/config/i386/pmmintrin.h
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/m68000.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/m68000.mk,v
retrieving revision 1.3
diff -u -r1.3 m68000.mk
--- gnu/lib/libgcc3/arch/m68000.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/m68000.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=${GNUHOSTDIST}/gcc/config/m68k/math-68881.h
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  m68k/m68k.h dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/m68k.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/m68k.mk,v
retrieving revision 1.3
diff -u -r1.3 m68k.mk
--- gnu/lib/libgcc3/arch/m68k.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/m68k.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=${GNUHOSTDIST}/gcc/config/m68k/math-68881.h
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  m68k/m68k.h dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/mipseb.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/mipseb.mk,v
retrieving revision 1.3
diff -u -r1.3 mipseb.mk
--- gnu/lib/libgcc3/arch/mipseb.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/mipseb.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  elfos.h mips/mips.h mips/netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/mipsel.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/mipsel.mk,v
retrieving revision 1.3
diff -u -r1.3 mipsel.mk
--- gnu/lib/libgcc3/arch/mipsel.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/mipsel.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=TARGET_ENDIAN_DEFAULT=0  NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  elfos.h mips/mips.h mips/netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/ns32k.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/ns32k.mk,v
retrieving revision 1.3
diff -u -r1.3 ns32k.mk
--- gnu/lib/libgcc3/arch/ns32k.mk	14 Feb 2004 08:39:07 -0000	1.3
+++ gnu/lib/libgcc3/arch/ns32k.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  ns32k/ns32k.h netbsd.h netbsd-aout.h ns32k/netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/powerpc.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/powerpc.mk,v
retrieving revision 1.3
diff -u -r1.3 powerpc.mk
--- gnu/lib/libgcc3/arch/powerpc.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/powerpc.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=${GNUHOSTDIST}/gcc/config/rs6000/ppc-asm.h ${GNUHOSTDIST}/gcc/config/rs6000/altivec.h ${GNUHOSTDIST}/gcc/config/rs6000/spe.h
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  rs6000/rs6000.h dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h defaults.h
Index: gnu/lib/libgcc3/arch/sh3eb.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/sh3eb.mk,v
retrieving revision 1.2
diff -u -r1.2 sh3eb.mk
--- gnu/lib/libgcc3/arch/sh3eb.mk	12 Feb 2004 22:34:57 -0000	1.2
+++ gnu/lib/libgcc3/arch/sh3eb.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fpic -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/config/sh/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  sh/sh.h dbxelf.h elfos.h sh/elf.h netbsd.h netbsd-elf.h sh/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/sh3el.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/sh3el.mk,v
retrieving revision 1.3
diff -u -r1.3 sh3el.mk
--- gnu/lib/libgcc3/arch/sh3el.mk	12 Feb 2004 22:34:57 -0000	1.3
+++ gnu/lib/libgcc3/arch/sh3el.mk	18 Jun 2004 06:56:39 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fpic -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/config/sh/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  sh/little.h sh/sh.h dbxelf.h elfos.h sh/elf.h netbsd.h netbsd-elf.h sh/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/sh5el.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/sh5el.mk,v
retrieving revision 1.3
diff -u -r1.3 sh5el.mk
--- gnu/lib/libgcc3/arch/sh5el.mk	17 Mar 2004 09:02:06 -0000	1.3
+++ gnu/lib/libgcc3/arch/sh5el.mk	18 Jun 2004 06:56:40 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fpic -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  sh/little.h sh/sh.h dbxelf.h elfos.h sh/elf.h netbsd.h netbsd-elf.h sh/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/sparc.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/sparc.mk,v
retrieving revision 1.3
diff -u -r1.3 sparc.mk
--- gnu/lib/libgcc3/arch/sparc.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/sparc.mk	18 Jun 2004 06:56:40 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  sparc/sparc.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/sparc64.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/sparc64.mk,v
retrieving revision 1.3
diff -u -r1.3 sparc64.mk
--- gnu/lib/libgcc3/arch/sparc64.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/sparc64.mk	18 Jun 2004 06:56:40 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  sparc/biarch64.h sparc/sparc.h dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h defaults.h
Index: gnu/lib/libgcc3/arch/x86_64.mk
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/arch/x86_64.mk,v
retrieving revision 1.3
diff -u -r1.3 x86_64.mk
--- gnu/lib/libgcc3/arch/x86_64.mk	11 Feb 2004 16:22:51 -0000	1.3
+++ gnu/lib/libgcc3/arch/x86_64.mk	18 Jun 2004 06:56:40 -0000
@@ -12,6 +12,10 @@
 G_LIB2FUNCS_ST=_eprintf _bb __gcc_bcmp
 G_LIBGCC2_CFLAGS=-O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
 G_USE_COLLECT2=collect2
+G_SHLIB_MKMAP=${GNUHOSTDIST}/gcc/mkmap-symver.awk
+G_SHLIB_MKMAP_OPTS=
+G_SHLIB_MAPFILES=${GNUHOSTDIST}/gcc/libgcc-std.ver
+G_SHLIB_NM_FLAGS=-pg
 G_EXTRA_HEADERS=${GNUHOSTDIST}/gcc/config/i386/mmintrin.h ${GNUHOSTDIST}/gcc/config/i386/xmmintrin.h ${GNUHOSTDIST}/gcc/config/i386/emmintrin.h ${GNUHOSTDIST}/gcc/config/i386/pmmintrin.h
 G_tm_defines=NETBSD_ENABLE_PTHREADS
 G_xm_file=ansidecl.h  i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h defaults.h
Index: gnu/lib/libgcc3/libgcc_s/Makefile
===================================================================
RCS file: /cvsroot/src/gnu/lib/libgcc3/libgcc_s/Makefile,v
retrieving revision 1.6
diff -u -r1.6 Makefile
--- gnu/lib/libgcc3/libgcc_s/Makefile	28 Apr 2004 01:44:59 -0000	1.6
+++ gnu/lib/libgcc3/libgcc_s/Makefile	18 Jun 2004 06:56:40 -0000
@@ -21,32 +21,32 @@
 SHLIB_MINOR=	0
 
 LDFLAGS+=	-nodefaultlibs
-#LDFLAGS+=	-Wl,--version-script=${DIST}/libgcc/libgcc.map
+LDFLAGS+=	-Wl,--version-script=libgcc.map
 
 SRCS+=		${LIB2FUNCS} ${LIB2DIVMOD} ${LIB2_EH} \
 		${G_LIB2ADD:T:S/.asm/.S/} ${LIB1ASMFUNCS}
 
-.include <bsd.lib.mk>
-
-.if ${MACHINE_CPU} == "sh3"
-# make sure the millicode is not externally visible
+DPADD+=		libgcc.map
+CLEANFILES+=	libgcc.map
 
-CLEANFILES+=	${SOBJS:=.tmp1} ${SOBJS:=.tmp2}
+.include <bsd.lib.mk>
 
-.S.so .s.so:
-	${_MKTARGET_COMPILE}
-	${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${.IMPSRC} -o ${.TARGET}.tmp1
-	${NM} -pg ${.TARGET}.tmp1 | ${AWK} 'NF == 3 { print "\t.hidden", $$3 }' | \
-	    ${CC} -Wl,-x -r -nostdinc -nostdlib -o ${.TARGET}.tmp2 ${.TARGET}.tmp1 -xassembler -
-.if defined(COPTS) && !empty(COPTS:M*-g*)
-	mv ${.TARGET}.tmp2 ${.TARGET}
+.if ${MKPICLIB} != "no"
+LIBGCC_S_OBJS=	${SOBJS}
 .else
-	${LD} -x -r ${.TARGET}.tmp2 -o ${.TARGET}
-	rm -f ${.TARGET}.tmp2
-.endif
-	rm -f ${.TARGET}.tmp1
+LIBGCC_S_OBJS=	${OBJS}
 .endif
 
+libgcc.map:	${LIBGCC_S_OBJS} ${G_SHLIB_MKMAP} ${G_SHLIB_MAPFILES}
+	{ \
+		${NM} ${G_SHLIB_NM_FLAGS} ${LIBGCC_S_OBJS}; \
+		echo %%; \
+		cat ${G_SHLIB_MAPFILES} | \
+			sed -e "/^[ 	]*#/d" -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' | \
+	  		${CC} ${G_LIBGCC2_CFLAGS} ${G_INCLUDES} -E -xassembler-with-cpp -; \
+	} | ${AWK} -f ${G_SHLIB_MKMAP} > ${.TARGET}.tmp
+	mv ${.TARGET}.tmp ${.TARGET} 
+
 .else
 .include <bsd.prog.mk> # do nothing
 .endif
Index: tools/gcc/mknative-gcc
===================================================================
RCS file: /cvsroot/src/tools/gcc/mknative-gcc,v
retrieving revision 1.12
diff -u -r1.12 mknative-gcc
--- tools/gcc/mknative-gcc	10 Feb 2004 09:37:58 -0000	1.12
+++ tools/gcc/mknative-gcc	18 Jun 2004 06:57:31 -0000
@@ -48,6 +48,8 @@
 		LIB1ASMFUNCS LIB1ASMSRC \
 		LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \
 		LIBGCC2_CFLAGS USE_COLLECT2 \
+		SHLIB_MKMAP SHLIB_MKMAP_OPTS \
+		SHLIB_MAPFILES SHLIB_NM_FLAGS \
 		EXTRA_HEADERS \
 		tm_defines xm_file xm_defines \
 		| write_mk gnu/lib/libgcc3/arch/$MACHINE_ARCH.mk

--Boundary-00=_I6p0AgIzVJZfkJw
Content-Type: text/plain;
  charset="us-ascii";
  name="libgcc-std.ver"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="libgcc-std.ver"

GCC_3.0 {
  # libgcc1 integer symbols
  __absvsi2
  __addvsi3
  #__ashlsi3
  #__ashrsi3
  __divsi3
  #__lshrsi3
  __modsi3
  __mulsi3
  __mulvsi3
  __negvsi2
  __subvsi3
  #__udivsi3
  __umodsi3

  # libgcc1 floating point symbols
  __addsf3
  __adddf3
  __addxf3
  __addtf3
  __divsf3
  __divdf3
  __divxf3
  __divtf3
  __eqsf2
  __eqdf2
  __eqxf2
  __eqtf2
  __extenddfxf2
  __extenddftf2
  __extendsfdf2
  __extendsfxf2
  __extendsftf2
  __fixsfsi
  __fixdfsi
  __fixxfsi
  __fixtfsi
  __floatsisf
  __floatsidf
  __floatsixf
  __floatsitf
  __gesf2
  __gedf2
  __gexf2
  __getf2
  __gtsf2
  __gtdf2
  __gtxf2
  __gttf2
  __lesf2
  __ledf2
  __lexf2
  __letf2
  __ltsf2
  __ltdf2
  __ltxf2
  __lttf2
  __mulsf3
  __muldf3
  __mulxf3
  __multf3
  __negsf2
  __negdf2
  __negxf2
  __negtf2
  __nesf2
  __nedf2
  __nexf2
  __netf2
  __subsf3
  __subdf3
  __subxf3
  __subtf3
  __truncdfsf2
  __truncxfsf2
  __trunctfsf2
  __truncxfdf2
  __trunctfdf2

  # libgcc2 DImode arithmetic (for 32-bit targets).
  __absvdi2
  __addvdi3
  __ashldi3
  __ashrdi3
  __cmpdi2
  __divdi3
  __ffsdi2
  __fixdfdi
  __fixsfdi
  __fixtfdi
  __fixxfdi
  __fixunsdfdi
  __fixunsdfsi
  __fixunssfsi
  __fixunssfdi
  __fixunstfdi
  __fixunstfsi
  __fixunsxfdi
  __fixunsxfsi
  __floatdidf
  __floatdisf
  __floatdixf
  __floatditf
  __lshrdi3
  __moddi3
  __muldi3
  __mulvdi3
  __negdi2
  __negvdi2
  __subvdi3
  __ucmpdi2
  __udivdi3
  __udivmoddi4
  __umoddi3

  # libgcc2 TImode arithmetic (for 64-bit targets).
  __ashlti3
  __ashrti3
  __cmpti2
  __divti3
  __ffsti2
  __fixdfti
  __fixsfti
  __fixtfti
  __fixxfti
  __lshrti3
  __modti3
  __multi3
  __negti2
  __ucmpti2
  __udivmodti4
  __udivti3
  __umodti3
  __fixunsdfti
  __fixunssfti
  __fixunstfti
  __fixunsxfti
  __floattidf
  __floattisf
  __floattixf
  __floattitf

  # Used to deal with trampoline initialization on some platforms
  __clear_cache

  # EH symbols
  _Unwind_DeleteException
  _Unwind_Find_FDE
  _Unwind_ForcedUnwind
  _Unwind_GetGR
  _Unwind_GetIP
  _Unwind_GetLanguageSpecificData
  _Unwind_GetRegionStart
  _Unwind_GetTextRelBase
  _Unwind_GetDataRelBase
  _Unwind_RaiseException
  _Unwind_Resume
  _Unwind_SetGR
  _Unwind_SetIP
  __deregister_frame
  __deregister_frame_info
  __deregister_frame_info_bases
  __register_frame
  __register_frame_info
  __register_frame_info_bases
  __register_frame_info_table
  __register_frame_info_table_bases
  __register_frame_table

  # SjLj EH symbols
  _Unwind_SjLj_Register
  _Unwind_SjLj_Unregister
  _Unwind_SjLj_RaiseException
  _Unwind_SjLj_ForcedUnwind
  _Unwind_SjLj_Resume
}

%inherit GCC_3.3 GCC_3.0
GCC_3.3 {
  _Unwind_FindEnclosingFunction
  _Unwind_GetCFA
  _Unwind_Backtrace
  _Unwind_Resume_or_Rethrow
  _Unwind_SjLj_Resume_or_Rethrow
}

%inherit GCC_3.3.1 GCC_3.3
GCC_3.3.1 {
  __gcc_personality_sj0
  __gcc_personality_v0
}

%inherit GCC_3.3.2 GCC_3.3.1
GCC_3.3.2 {
}

--Boundary-00=_I6p0AgIzVJZfkJw
Content-Type: text/x-diff;
  charset="us-ascii";
  name="i386.libgcc_s.so.1.0.symdiffs"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="i386.libgcc_s.so.1.0.symdiffs"

--- i386.libgcc_s.so.1.0.nonversioned.syms	2004-06-18 07:38:56.000000000 +0100
+++ i386.libgcc_s.so.1.0.syms	2004-06-18 07:38:56.000000000 +0100
@@ -1,9 +1,6 @@
-A _DYNAMIC
-A _GLOBAL_OFFSET_TABLE_
-A __bss_start
-A _edata
-A _end
-R __clz_tab
+A GCC_3.0
+A GCC_3.3
+A GCC_3.3.1
 T _Unwind_Backtrace
 T _Unwind_DeleteException
 T _Unwind_FindEnclosingFunction
@@ -33,7 +30,6 @@
 T __deregister_frame_info
 T __deregister_frame_info_bases
 T __divdi3
-T __enable_execute_stack
 T __ffsdi2
 T __fixdfdi
 T __fixsfdi
@@ -47,7 +43,6 @@
 T __floatdidf
 T __floatdisf
 T __floatdixf
-T __frame_state_for
 T __gcc_personality_v0
 T __lshrdi3
 T __moddi3
@@ -66,19 +61,27 @@
 T __subvdi3
 T __subvsi3
 T __ucmpdi2
-T __udiv_w_sdiv
 T __udivdi3
 T __udivmoddi4
 T __umoddi3
-T _fini
-T _init
 U __sysctl
 U abort
 U free
 U malloc
 U memcpy
 U mprotect
+a _DYNAMIC
+a _GLOBAL_OFFSET_TABLE_
+a __bss_start
+a _edata
+a _end
 d __dso_handle
+r __clz_tab
+t __enable_execute_stack
+t __frame_state_for
+t __udiv_w_sdiv
+t _fini
+t _init
 w _Jv_RegisterClasses
 w __cxa_finalize
 w pthread_create

--Boundary-00=_I6p0AgIzVJZfkJw--