diff options
Diffstat (limited to 'toolchain/gcc/patches/4.1.2')
-rw-r--r-- | toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch b/toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch new file mode 100644 index 000000000..671d6594b --- /dev/null +++ b/toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch @@ -0,0 +1,99 @@ +--- 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 |