lib1funcs.asm: Don't include "libunwind.S".
authorDaniel Jacobowitz <dan@codesourcery.com>
Fri, 4 Nov 2005 14:51:20 +0000 (14:51 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Fri, 4 Nov 2005 14:51:20 +0000 (14:51 +0000)
* config/arm/lib1funcs.asm: Don't include "libunwind.S".
* config/arm/libunwind.S: Include "lib1funcs.asm".
* config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
(LIB2ADDEH): Add libunwind.S.
(LIB2ADDEHDEP): Add lib1funcs.asm.
* mklibgcc.in: Handle asm files in libgcc_eh.a.

From-SVN: r106488

gcc/ChangeLog
gcc/config/arm/lib1funcs.asm
gcc/config/arm/libunwind.S
gcc/config/arm/t-bpabi
gcc/mklibgcc.in

index fcb4ce4a870c4954dd1d491bc00f6325f2364700..f24cb9891958bc6801f6d5b1aa8e4e9c208169b4 100644 (file)
@@ -1,3 +1,12 @@
+2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/lib1funcs.asm: Don't include "libunwind.S".
+       * config/arm/libunwind.S: Include "lib1funcs.asm".
+       * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
+       (LIB2ADDEH): Add libunwind.S.
+       (LIB2ADDEHDEP): Add lib1funcs.asm.
+       * mklibgcc.in: Handle asm files in libgcc_eh.a.
+
 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
 
        PR fortran/18452
index 952eb562a92c96d9f789582127868165fd4649ea..364d9fea8048e25fbe566a9342f7e413774fcd84 100644 (file)
@@ -1315,5 +1315,4 @@ LSYM(Lchange_\register):
 #include "ieee754-df.S"
 #include "ieee754-sf.S"
 #include "bpabi.S"
-#include "libunwind.S"
 #endif /* __symbian__ */
index 96044f8585361b46a976d25c1e82465fedac22c8..8d226df3fd2feb715f1c386b99c3ba940f7c6877 100644 (file)
@@ -1,5 +1,5 @@
 /* Support functions for the unwinder.
-   Copyright (C) 2003, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
    Contributed by Paul Brook
 
    This file is free software; you can redistribute it and/or modify it
@@ -26,7 +26,9 @@
    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.  */
 
-#ifdef L_unwind
+#ifndef __symbian__
+
+#include "lib1funcs.asm"
 
 .macro UNPREFIX name
        .global SYM (\name)
@@ -113,4 +115,4 @@ ARM_FUNC_START gnu_Unwind_Save_VFP
 UNWIND_WRAPPER _Unwind_RaiseException
 UNWIND_WRAPPER _Unwind_Resume
 
-#endif  /* L_unwind */
+#endif  /* __symbian__ */
index 34981078e0eadbccc2e11cbcffb45e43a412f69d..b5c6a0b617171f9eaf9b8d40fbeb4e0549e1b1b7 100644 (file)
@@ -1,6 +1,5 @@
 # Add the bpabi.S functions.
-LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod \
-  _unwind
+LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod
 
 # Add the BPABI C functions.
 LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \
@@ -8,8 +7,9 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \
 
 UNWIND_H = $(srcdir)/config/arm/unwind-arm.h
 LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \
+  $(srcdir)/config/arm/libunwind.S \
   $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c
-LIB2ADDEHDEP = $(UNWIND_H)
+LIB2ADDEHDEP = $(UNWIND_H) $(srcdir)/config/$(LIB1ASMSRC)
 
 # Add the BPABI names.
 SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
index aa61d41f4339a6f7394d74ddc04f7f8b1ef25744..b36d31ef5113db14a727e631b9acd17aa857909f 100644 (file)
@@ -510,36 +510,55 @@ for ml in $MULTILIBS; do
 
   # If we don't have libgcc_eh.a, only LIB2ADDEH matters.  If we do, only
   # LIB2ADDEHSTATIC and LIB2ADDEHSHARED matter.  (Usually all three are
-  # identical.)  We do _not_ handle assembly files in this context.
+  # identical.)
 
   if [ "$libgcc_eh_a" ]; then
     for file in $LIB2ADDEHSTATIC; do
-      case $file in
-        *.c) ;;
-       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
-       esac
-
-      name=`echo $file | sed -e 's/[.]c$//'`
+      name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
       oname=`echo $name | sed -e 's,.*/,,'`
       out="libgcc/${dir}/${oname}${objext}"
 
-      echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
-      echo "   $gcc_compile" $flags '$(vis_hide)' -fexceptions -c $file -o $out
+      case $file in
+        *.c)
+         echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_compile" $flags -fexceptions '$(vis_hide)' -c $file -o $out
+         ;;
+       *.asm | *.S)
+         # We have to compile it twice in order to establish the list
+         # of symbols to be marked hidden.
+         outV="libgcc/${dir}/${oname}.vis"
+         outT="libgcc/${dir}/${oname}_t${objext}"
+         echo ${outT}: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_compile" $flags -xassembler-with-cpp \
+                 -c $file -o ${outT}
+         echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep $outV
+         echo "        $gcc_compile" $flags -xassembler-with-cpp \
+                 -include $outV -c $file -o $out
+         echo "${outV}: ${outT}; \$(gen-hide-list)"
+         ;;
+       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
+      esac
+
       echo $libgcc_eh_a: $out
     done
 
     for file in $LIB2ADDEHSHARED; do
-      case $file in
-        *.c) ;;
-       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
-       esac
-
-      name=`echo $file | sed -e 's/[.]c$//'`
+      name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
       oname=`echo $name | sed -e 's,.*/,,'`
       outS="libgcc/${dir}/${oname}_s${objext}"
 
-      echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
-      echo "   $gcc_s_compile" $flags -fexceptions -c $file -o $outS
+      case $file in
+        *.c)
+         echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_s_compile" $flags -fexceptions -c $file -o $outS
+         ;;
+       *.asm | *.S)
+         echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_s_compile" $flags -xassembler-with-cpp -c $file -o $outS
+         ;;
+       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
+      esac
+
       echo $libgcc_s_so: $outS
       if [ "$SHLIB_MKMAP" ]; then
        echo libgcc/${dir}/libgcc.map: $outS
@@ -561,22 +580,28 @@ for ml in $MULTILIBS; do
 
   else # no libgcc_eh.a
     for file in $LIB2ADDEH; do
-      case $file in
-        *.c) ;;
-       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
-       esac
-
-      name=`echo $file | sed -e 's/[.]c$//'`
+      name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
       oname=`echo $name | sed -e 's,.*/,,'`
       out="libgcc/${dir}/${oname}${objext}"
 
-      echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
-      echo "   $gcc_compile" $flags -fexceptions '$(vis_hide)' -c $file -o $out
+      case $file in
+        *.c)
+         echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_compile" $flags '$(vis_hide)' -fexceptions -c $file -o $out
+         ;;
+       *.asm | *.S)
+         echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
+         echo "        $gcc_compile" $flags -xassembler-with-cpp \
+                 -c $file -o $out
+         ;;
+       *)   echo "Unhandled extension: $file">&2; exit 1 ;;
+      esac
+
       echo $libgcc_a: $out
     done
   fi
 
-  # Again, this does not handle assembly.
+  # We do _not_ handle assembly files in this context.
   if [ "$LIBUNWIND" ]; then
     for file in $LIBUNWIND; do
       case $file in