From 2851e3b018ba0380e8cfeff07f7b3b248cd57cac Mon Sep 17 00:00:00 2001
From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 20 Oct 2009 06:48:29 +0000
Subject: gcc: backport libgcc_pic changes to older gcc4 versions, install the
 libgcc map file as well

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18087 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch   | 99 ++++++++++++++++++++++
 toolchain/gcc/patches/4.2.4/820-libgcc_pic.patch   | 75 ++++++++++++++++
 .../gcc/patches/4.3.3+cs/820-libgcc_pic.patch      |  2 +-
 toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch   |  2 +-
 toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch   |  2 +-
 toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch   |  2 +-
 toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch   |  2 +-
 7 files changed, 179 insertions(+), 5 deletions(-)
 create mode 100644 toolchain/gcc/patches/4.1.2/820-libgcc_pic.patch
 create mode 100644 toolchain/gcc/patches/4.2.4/820-libgcc_pic.patch

(limited to 'toolchain/gcc')

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
diff --git a/toolchain/gcc/patches/4.2.4/820-libgcc_pic.patch b/toolchain/gcc/patches/4.2.4/820-libgcc_pic.patch
new file mode 100644
index 000000000..ab29b528b
--- /dev/null
+++ b/toolchain/gcc/patches/4.2.4/820-libgcc_pic.patch
@@ -0,0 +1,75 @@
+--- a/gcc/mklibgcc.in
++++ b/gcc/mklibgcc.in
+@@ -214,6 +214,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=
+@@ -320,6 +321,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
+@@ -355,6 +357,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
+@@ -397,6 +400,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
+@@ -502,6 +506,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
+@@ -621,6 +626,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
+@@ -793,6 +799,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)'
+@@ -894,6 +907,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
diff --git a/toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch b/toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch
index 978ebbaf9..dc714e4b4 100644
--- a/toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches/4.3.3+cs/820-libgcc_pic.patch
@@ -27,7 +27,7 @@
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
-+	$(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
 +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +
diff --git a/toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch b/toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch
index 5ed5c0b33..0e326a82b 100644
--- a/toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches/4.3.3/820-libgcc_pic.patch
@@ -27,7 +27,7 @@
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
-+	$(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
 +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +
diff --git a/toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch b/toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch
index 5ed5c0b33..0e326a82b 100644
--- a/toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches/4.3.4/820-libgcc_pic.patch
@@ -27,7 +27,7 @@
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
-+	$(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
 +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +
diff --git a/toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch b/toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch
index 925c96f84..18386dfd4 100644
--- a/toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches/4.4.0/820-libgcc_pic.patch
@@ -27,7 +27,7 @@
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
-+	$(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
 +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +
diff --git a/toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch b/toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch
index 925c96f84..18386dfd4 100644
--- a/toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches/4.4.1/820-libgcc_pic.patch
@@ -27,7 +27,7 @@
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
-+	$(INSTALL_DATA) libgcc_pic.a $(DESTDIR)$(inst_libdir)/
++	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/
 +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a
 +
-- 
cgit v1.2.3