]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
mklibgcc.in: Correct calculation of libgcc_s_soname and libunwind_soname.
authorZack Weinberg <zack@gcc.gnu.org>
Tue, 30 Nov 2004 19:35:26 +0000 (19:35 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Tue, 30 Nov 2004 19:35:26 +0000 (19:35 +0000)
* mklibgcc.in: Correct calculation of libgcc_s_soname and
libunwind_soname.  Use $out, not $outS, in commands for
no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
library build rules, make $libunwind_so and $libgcc_s_so
depend on them in the normal fashion, and filter those objects
out of @shlib_objs@.

From-SVN: r91534

gcc/ChangeLog
gcc/mklibgcc.in

index 302ba113349a5f90fc9d5ecacf3d7490f594dda3..c3400465b3b05cb3dff0d1539e9105d84d74bd2e 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * mklibgcc.in: Correct calculation of libgcc_s_soname and
+       libunwind_soname.  Use $out, not $outS, in commands for
+       no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
+       library build rules, make $libunwind_so and $libgcc_s_so
+       depend on them in the normal fashion, and filter those objects
+       out of @shlib_objs@.
+
 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
 
        * config/rs6000/altivec.h (vec_step_help): Support const vector types.
@@ -9,7 +18,7 @@
        pass right after fold builtins.
 
 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
-       
+
        * config/s390/s390-modes.def: Added cc modes documentation.
        * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
        s390_expand_addcc): Added cc mode comments.
 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
 
        Fix PR tree-optimization/18673
-       
+
        * tree-ssa-pre.c: Remove splay-tree.h include.
        (bitmap_value_replace_in_set): Fix to add if it does not exist.
        (find_or_generate_expression): Remove now-wrong condition.
        (create_expression_by_pieces): Fix condition and comment reason
-       for it. 
+       for it.
        (insert_aux): Fix condition and comment reasons for it.
        Factor insertion code from here.
        (insert_into_preds_of_block): To here.  Fix conditions in factored
@@ -40,7 +49,7 @@
 
        PR tree-opt/18607
        * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
-       variable for data_reference when looking for memtag. 
+       variable for data_reference when looking for memtag.
 
 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
 
@@ -57,7 +66,7 @@
        PR target/18173
        * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
        decls that are assembled before vectorization takes place.
-       (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.    
+       (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
 
 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
 
index 80d016e988b9bc27bb8a03c911b721f58e12550d..fa6930b1c60530f6f19909903df226efb1ebd078 100644 (file)
@@ -170,23 +170,24 @@ for ml in $MULTILIBS; do
        libgcc_eh_a=$dir/libgcc_eh.a
        libgcc_s_so_base=$dir/libgcc_s
        libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
+       libgcc_s_soname=libgcc_s
        if [ "$LIBUNWIND" ]; then
          libunwind_so_base=$dir/libunwind
          libunwind_so=${libunwind_so_base}${SHLIB_EXT}
+         libunwind_soname=libunwind
        fi
       else
+        suffix=`echo $dir | sed s,/,_,g`
        libgcc_eh_a=$dir/libgcc_eh.a
-       libgcc_s_so_base=$dir/libgcc_s_`echo $dir | sed s,/,_,g`
+       libgcc_s_so_base=$dir/libgcc_s_${suffix}
        libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
+       libgcc_s_soname=libgcc_s_${suffix}
        if [ "$LIBUNWIND" ]; then
-         libunwind_so_base=$dir/libunwind_`echo $dir | sed s,/,_,g`
+         libunwind_so_base=$dir/libunwind_${suffix}
          libunwind_so=${libunwind_so_base}${SHLIB_EXT}
        fi
       fi
 
-      libgcc_s_soname=$libgcc_s_so_base
-      libunwind_soname=$libunwind_so_base
-
       if [ -n "$MULTILIB_OSDIRNAMES" ]; then
        if [ "$dir" != . ]; then
          gcc_multilib_dir=`./xgcc -B./ $flags --print-multi-directory`
@@ -212,15 +213,16 @@ for ml in $MULTILIBS; do
       libgcc_eh_a=$dir/libgcc_eh.a
       libgcc_s_so_base=$dir/libgcc_s
       libgcc_s_so=${libgcc_s_so_base}${SHLIB_EXT}
+      libgcc_s_soname=libgcc_s
       if [ "$LIBUNWIND" ]; then
        libunwind_so_base=$dir/libunwind
        libunwind_so=${libunwind_so_base}${SHLIB_EXT}
+       libunwind_soname=libunwind
       fi
-
-      libgcc_s_soname=$libgcc_s_so_base
-      libunwind_soname=$libunwind_so_base
     fi
   fi
+  libgcc_s_so_extra=
+  libunwind_so_extra=
 
   echo
   echo \#
@@ -312,7 +314,7 @@ for ml in $MULTILIBS; do
     else
       out="libgcc/${dir}/${name}${objext}"
       echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
-      echo "   $gcc_compile" $flags -DL$name -c '$(srcdir)/libgcc2.c' -o $outS
+      echo "   $gcc_compile" $flags -DL$name -c '$(srcdir)/libgcc2.c' -o $out
       echo $libgcc_a: $out
     fi
   done
@@ -348,7 +350,7 @@ for ml in $MULTILIBS; do
       out="libgcc/${dir}/${name}${objext}"
       echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
       echo "   $gcc_compile" $flags -DL$name \
-        -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $outS
+        -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $out
       echo $libgcc_a: $out
     fi
   done
@@ -590,7 +592,7 @@ for ml in $MULTILIBS; do
       fi
     done
 
-  else # no SHLIB_LINK
+  else # no libgcc_eh.a
     for file in $LIB2ADDEH; do
       case $file in
         *.c) ;;
@@ -652,6 +654,39 @@ for ml in $MULTILIBS; do
     echo $libgcov_a: $out
   done
 
+  # EXTRA_MULTILIB_PARTS.
+  echo
+  for f in $EXTRA_MULTILIB_PARTS; do
+    case $dir in
+    .) out=$f ; t= ;;
+    *) out=$dir/$f ; t=$dir/ ;;
+    esac
+    case $out in
+    # Prevent `make' from interpreting $out as a macro assignment
+    *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;;
+    *) targ=$out ;;
+    esac
+
+    echo $out: stmp-dirs
+    echo "     $make_compile" \\
+    echo '       LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
+    echo '       MULTILIB_CFLAGS="'$flags'"' T=$t $targ
+    echo "all: $out"
+
+    # Make libunwind.so and libgcc_s.so depend on these, since they are
+    # likely to be implicitly used by the link process.  However, we must
+    # then arrange to remove them from the explicit object list generated
+    # from $^ - see below.
+    if [ "$libgcc_s_so" ]; then
+      libgcc_s_so_extra="$libgcc_s_so_extra $out"
+      echo "$libgcc_s_so: $out"
+    fi
+    if [ "$libunwind_so" ]; then
+      libunwind_so_extra="$libunwind_so_extra $out"
+      echo "$libunwind_so: $out"
+    fi
+  done
+
   # Library build rules.
   dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
   flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
@@ -677,14 +712,6 @@ $libgcc_s_so: ${mapfile}
 EOF
   fi
 
-  # Depend on EXTRA_MULTILIB_PARTS, since that's where crtbegin/end
-  # usually are put in a true multilib situation.
-  shlib_extra_deps=""
-  for f in $EXTRA_MULTILIB_PARTS; do
-    shlib_extra_deps="$shlib_extra_deps $dir/$f"
-  done
-  echo $libgcc_s_so: $shlib_extra_deps
-
   # Static libraries.
 
   # Each of these .a files depends on stmp-dirs.  It would seem that
@@ -733,7 +760,7 @@ EOF
     echo "     $SHLIB_LINK" \
         | sed -e "s%@multilib_flags@%$flags%g" \
               -e "s%@multilib_dir@%$dir%g" \
-              -e "s%@shlib_objs@%\$(objects)%g" \
+              -e "s%@shlib_objs@%\$(filter-out $libgcc_s_so_extra,\$(objects))%g" \
               -e "s%@shlib_base_name@%$libgcc_s_so_base%g" \
               -e "s%@shlib_so_name@%$libgcc_s_soname%g" \
               -e "s%@shlib_map_file@%$mapfile%g" \
@@ -748,7 +775,7 @@ EOF
     echo "     $SHLIBUNWIND_LINK" \
           | sed -e "s%@multilib_flags@%$flags%g" \
                 -e "s%@multilib_dir@%$dir%g" \
-                -e "s%@shlib_objs@%\$(objects)%g" \
+                -e "s%@shlib_objs@%\$(filter-out $libunwind_so_extra,\$(objects))%g" \
                 -e "s%@shlib_base_name@%$libunwind_so_base%g" \
                 -e "s%@shlib_so_name@%$libunwind_soname%g" \
                 -e "s%@shlib_dir@%$shlib_dir%g" \
@@ -756,25 +783,6 @@ EOF
     echo "all: $libunwind_so"
   fi
 
-  # EXTRA_MULTILIB_PARTS.
-  for f in $EXTRA_MULTILIB_PARTS; do
-    case $dir in
-    .) out=$f ; t= ;;
-    *) out=$dir/$f ; t=$dir/ ;;
-    esac
-    case $out in
-    # Prevent `make' from interpreting $out as a macro assignment
-    *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;;
-    *) targ=$out ;;
-    esac
-
-    echo $out: stmp-dirs
-    echo "     $make_compile" \\
-    echo '       LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
-    echo '       MULTILIB_CFLAGS="'$flags'"' T=$t $targ
-    echo "all: $out"
-  done
-
 done # ml in MULTILIBS
 
 echo