OSDN Git Service

2001-04-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
authorsirl <sirl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Apr 2001 23:43:06 +0000 (23:43 +0000)
committersirl <sirl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 Apr 2001 23:43:06 +0000 (23:43 +0000)
        * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
        (LIB2ADD_ST): New macro, pass it to mklibgcc.
        * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
        (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
        * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41215 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in
gcc/config/rs6000/t-ppccomm
gcc/mklibgcc.in

index d6dcb7d..2a45476 100644 (file)
@@ -1,3 +1,11 @@
+2001-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+       * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
+       (LIB2ADD_ST): New macro, pass it to mklibgcc.
+       * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
+        (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
+       * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
+
 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
 
        * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
index d405353..48cac08 100644 (file)
@@ -446,10 +446,14 @@ USE_COLLECT2 = collect2$(exeext)
 # Assembler files should have names ending in `.asm'.
 LIB1FUNCS_EXTRA =
 
-# List of extra C and assembler files to add to libgcc2.a.
+# List of extra C and assembler files to add to static and shared libgcc2.
 # Assembler files should have names ending in `.asm'.
 LIB2FUNCS_EXTRA =
 
+# List of extra C and assembler files to add to static libgcc2.
+# Assembler files should have names ending in `.asm'.
+LIB2FUNCS_STATIC_EXTRA =
+
 # Handle cpp installation.
 INSTALL_CPP=
 UNINSTALL_CPP=
@@ -1034,8 +1038,9 @@ xlimits.h: glimits.h limitx.h limity.h
 # Build libgcc.a.
 
 LIB2ADD = $(LIB2FUNCS_EXTRA)
+LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
 
-libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) xgcc$(exeext)
+libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) xgcc$(exeext)
        objext='$(objext)' \
        OLDCC='$(OLDCC)' \
        LIBGCC1='$(LIBGCC1)' \
@@ -1044,6 +1049,7 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) xgcc$(exeext)
        LIB1FUNCS_EXTRA='$(LIB1FUNCS_EXTRA)' \
        LIB2FUNCS='$(LIB2FUNCS)' \
        LIB2ADD='$(LIB2ADD)' \
+       LIB2ADD_ST='$(LIB2ADD_ST)' \
        LIB2ADDEH='$(LIB2ADDEH)' \
        LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \
        FPBIT='$(FPBIT)' \
@@ -1066,8 +1072,8 @@ libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) xgcc$(exeext)
 LIBGCC_DEPS = $(GCC_PASSES) $(LANGUAGES) stmp-int-hdrs $(STMP_FIXPROTO) \
        libgcc.mk $(srcdir)/libgcc1.c $(srcdir)/libgcc2.c $(TCONFIG_H) \
        $(MACHMODE_H) longlong.h gbl-ctors.h config.status stmp-int-hdrs \
-       tsystem.h $(FPBIT) $(DPBIT) $(LIB2ADD) $(LIB2ADDEH) $(LIB2ADDEHDEP) \
-       $(EXTRA_PARTS)
+       tsystem.h $(FPBIT) $(DPBIT) $(LIB2ADD) $(LIB2ADD_ST) $(LIB2ADDEH) \
+       $(LIB2ADDEHDEP) $(EXTRA_PARTS)
 
 libgcc.a: $(LIBGCC_DEPS)
        $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
index 3a1f106..7d500c3 100644 (file)
@@ -6,7 +6,10 @@ CROSS_LIBGCC1 =
 
 # These are really part of libgcc1, but this will cause them to be
 # built correctly, so... [taken from t-sparclite]
-LIB2FUNCS_EXTRA = eabi.S tramp.S
+LIB2FUNCS_EXTRA = tramp.S
+
+# This one can't end up in shared libgcc
+LIB2FUNCS_STATIC_EXTRA = eabi.S
 
 # We want fine grained libraries, so use the new code to build the
 # floating point emulation libraries.
index 70fc55a..6034867 100644 (file)
@@ -15,6 +15,7 @@
 # LIB1FUNCS_EXTRA
 # LIB2FUNCS
 # LIB2ADD
+# LIB2ADD_ST 
 # LIB2ADDEH
 # LIB2ADDEHDEP
 # FPBIT
@@ -247,6 +248,26 @@ for file in $LIB2ADDEH; do
   libgcc2_objs="$libgcc2_objs ${oname}${objext}"
 done
 
+libgcc2_st_objs=""
+
+for file in $LIB2ADD_ST; do
+  name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//' -e 's/[.]txt$//'`
+  oname=`echo $name | sed -e 's,.*/,,'`
+
+  for ml in $MULTILIBS; do
+    dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
+    flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
+    out="libgcc/${dir}/${oname}${objext}"
+    if [ ${name}.asm = ${file} ]; then
+      flags="$flags -xassembler-with-cpp"
+    fi
+
+    echo $out: stmp-dirs $file
+    echo "     $gcc_compile" $flags -c $file -o $out
+  done
+  libgcc2_st_objs="$libgcc2_st_objs ${oname}${objext}"
+done
+
 # SHLIB_MKMAP
 # SHLIB_MAPFILES
 for ml in $MULTILIBS; do
@@ -266,6 +287,11 @@ for ml in $MULTILIBS; do
   done
   shlib_deps="$libgcc_objs"
 
+  libgcc_st_objs=""
+  for o in $libgcc2_st_objs; do
+    libgcc_st_objs="$libgcc_st_objs libgcc/${dir}/$o"
+  done
+
   if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" -a -z "$mapfile" ]; then
     mapfile="libgcc.map"
     echo ""
@@ -282,9 +308,9 @@ for ml in $MULTILIBS; do
   done
 
   echo ""
-  echo "${dir}/libgcc.a: $libgcc_objs"
+  echo "${dir}/libgcc.a: $libgcc_objs $libgcc_st_objs"
   echo "       -rm -rf ${dir}/libgcc.a"
-  echo '       $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_objs
+  echo '       $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_objs $libgcc_st_objs
   echo '       if $(RANLIB_TEST_FOR_TARGET) ; then' \\
   echo '         $(RANLIB_FOR_TARGET)' ${dir}/libgcc.a ';' \\
   echo '       else true; fi;'