From 80ded1258e48eb9262b18821437b178e58ba3da9 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Tue, 30 Nov 2004 19:35:26 +0000 Subject: [PATCH] mklibgcc.in: Correct calculation of libgcc_s_soname and libunwind_soname. * 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 | 19 ++++++++--- gcc/mklibgcc.in | 88 +++++++++++++++++++++++++++---------------------- 2 files changed, 62 insertions(+), 45 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 302ba113349..c3400465b3b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-11-30 Zack Weinberg + + * 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 * 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 - + * 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. @@ -25,12 +34,12 @@ 2004-11-29 Daniel Berlin 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 @@ -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 diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index 80d016e988b..fa6930b1c60 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -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 -- 2.30.2