]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/24718 (Shared libgcc not used for linking by default)
authorSteve Ellcey <sje@cup.hp.com>
Wed, 16 Nov 2005 17:06:52 +0000 (17:06 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Wed, 16 Nov 2005 17:06:52 +0000 (17:06 +0000)
PR target/24718
* mklibgcc.in: Create dummy object for libgcc_eh.a
* config/ia64/hpux.h (LIBGCC_SPEC): Remove.

From-SVN: r107090

gcc/ChangeLog
gcc/config/ia64/hpux.h
gcc/mklibgcc.in

index 46f8464bcc5de328a8b1e29a44e7d81e0e490442..b5b3a51a111982b5bc5c9d5e6eedf411686de72d 100644 (file)
@@ -1,3 +1,9 @@
+2005-11-16  Steve Ellcey  <sje@cup.hp.com>
+
+       PR target/24718
+       * mklibgcc.in: Create dummy object for libgcc_eh.a
+       * config/ia64/hpux.h (LIBGCC_SPEC): Remove.
+
 2005-11-13  Andreas Jaeger  <aj@suse.de>
 
        * fixinc/check.tpl: Handle CVS additionally.
index f76cbd232163d10c48e7d7e20797795ef112800a..09fb53f44b08fd0fdf6569bdf1002adb68342ac4 100644 (file)
@@ -84,13 +84,6 @@ do {                                                 \
          %{mlp64:-L/usr/lib/hpux64/libp} -lgprof} \
      %{!symbolic:-lc}}"
 
-#ifndef CROSS_COMPILE
-#undef LIBGCC_SPEC
-#define LIBGCC_SPEC \
-  "%{shared-libgcc:%{!mlp64:-lgcc_s}%{mlp64:-lgcc_s_hpux64} -lgcc} \
-   %{!shared-libgcc:-lgcc}"
-#endif
-
 #undef SUBTARGET_SWITCHES
 #define SUBTARGET_SWITCHES \
   { "ilp32",    MASK_ILP32,     "Generate ILP32 code" }, \
index 143b4e83ba18ebd00b6d28375a17ae893056fffd..8fafce4b0205edc1366b25d1f5ca3454ac1903df 100644 (file)
@@ -246,6 +246,9 @@ for file in $LIB2ADDEH; do
   fi
 done
 
+# Flag whether we need eh_dummy.c
+need_eh_dummy=
+
 if [ "$SHLIB_LINK" ]; then
   # Those should be in libgcc_eh.a.
   for file in $LIB2ADDEHSTATIC; do
@@ -260,6 +263,23 @@ if [ "$SHLIB_LINK" ]; then
     oname=`echo $name | sed -e 's,.*/,,'`
     libgcc2_eh_shared_objs="$libgcc2_eh_shared_objs ${oname}${objext}"
   done
+
+  # If nothing went into libgcc_eh.a, create a dummy object -
+  # some linkers don't like totally empty archives.
+  if [ -z "$LIB2ADDEHSTATIC" ]; then
+      file=eh_dummy.c
+      libgcc2_eh_static_objs="$libgcc2_eh_static_objs eh_dummy${objext}"
+      need_eh_dummy=1
+
+      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}/eh_dummy${objext}"
+
+        echo $out: stmp-dirs $file
+        echo " $gcc_compile" $flags -fexceptions -c $file -o $out
+      done
+  fi
 fi
 
 for file in $LIB2ADD_ST; do
@@ -649,6 +669,11 @@ done
 echo ""
 echo "all: $all"
 
+if [ "$need_eh_dummy" ]; then
+  echo "eh_dummy.c:"
+  echo "       echo 'int __libgcc_eh_dummy;' > \$@"
+fi
+
 echo ""
 echo "install: $all"
 for ml in $MULTILIBS; do