--- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -195,6 +195,7 @@ for ml in $MULTILIBS; do flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; shlib_slibdir_qual= libgcc_a=$dir/libgcc.a + libgcc_pic_a=$dir/libgcc_pic.a libgcov_a=$dir/libgcov.a libgcc_eh_a= libgcc_s_so= @@ -261,6 +262,7 @@ for ml in $MULTILIBS; do echo "${outV}: ${outS}; \$(gen-hide-list)" echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -301,6 +303,7 @@ for ml in $MULTILIBS; do -c '$(srcdir)/libgcc2.c' -o $out echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -336,6 +339,7 @@ for ml in $MULTILIBS; do -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $out echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -369,6 +373,7 @@ for ml in $MULTILIBS; do '$(vis_hide)' -c $FPBIT -o $out echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -400,6 +405,7 @@ for ml in $MULTILIBS; do '$(vis_hide)' -c $DPBIT -o $out echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -430,6 +436,7 @@ for ml in $MULTILIBS; do '$(vis_hide)' -c $TPBIT -o $out echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -482,6 +489,7 @@ for ml in $MULTILIBS; do esac echo $libgcc_a: $out + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -601,6 +609,7 @@ for ml in $MULTILIBS; do *) echo "Unhandled extension: $file">&2; exit 1 ;; esac + echo $libgcc_pic_a: $outS echo $libgcc_s_so: $outS if [ "$SHLIB_MKMAP" ]; then echo libgcc/${dir}/libgcc.map: $outS @@ -773,6 +782,13 @@ EOF echo "all: $libgcc_a" echo "" + echo "$libgcc_pic_a: stmp-dirs" + echo " -rm -f $libgcc_pic_a" + echo ' $(AR_CREATE_FOR_TARGET)' $libgcc_pic_a '$(objects)' + echo ' $(RANLIB_FOR_TARGET)' $libgcc_pic_a + echo "all: $libgcc_pic_a" + + echo "" echo "$libgcov_a: stmp-dirs" echo " -rm -f $libgcov_a" echo ' $(AR_CREATE_FOR_TARGET)' $libgcov_a '$(objects)' @@ -874,6 +890,10 @@ for ml in $MULTILIBS; do echo ' chmod 644' ${ldir}/libgcc_eh.a echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a + echo ' $(INSTALL_DATA)' ${dir}/libgcc_pic.a ${mapfile} ${ldir}/ + echo ' chmod 644' ${ldir}/libgcc_pic.a + echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_pic.a + shlib_slibdir_qual= os_multilib_dir=`$GCC_FOR_TARGET $flags --print-multi-os-directory` if [ "$os_multilib_dir" != . ]; then