summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2013-06-18 09:44:18 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2013-06-18 09:44:18 +0000
commitbaebc3c28774210e23d3467adcd6c1cf3b45eaf2 (patch)
tree541969a9a46301e611eea3fddaed82b09c43e280
parent7251b28cdd750b596cd84c2b5092ea6232a60b30 (diff)
downloadgcc-47-baebc3c28774210e23d3467adcd6c1cf3b45eaf2.tar.gz
* For ARM multilib builds, use libsf/libhf system directories to lookup
files for the non-default multilib (for now, only for the cross compilers). git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.7@6854 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r--debian/changelog2
-rw-r--r--debian/patches/arm-multilib-soft-cross.diff27
-rw-r--r--debian/patches/arm-multilib-soft.diff4
-rw-r--r--debian/patches/arm-multilib-softfp-cross.diff27
-rw-r--r--debian/patches/arm-multilib-softfp.diff4
-rw-r--r--debian/rules.patch4
-rw-r--r--debian/rules220
7 files changed, 77 insertions, 11 deletions
diff --git a/debian/changelog b/debian/changelog
index 2b674dd..6b0f744 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,7 +3,7 @@ gcc-4.7 (4.7.3-6) UNRELEASED; urgency=low
* Fall back to the binutils version of the binutils build dependency
if the binutils version used for the build cannot be determined.
* For ARM multilib builds, use libsf/libhf system directories to lookup
- files for the non-default multilib (needed for the cross compilers).
+ files for the non-default multilib (for now, only for the cross compilers).
-- Matthias Klose <doko@debian.org> Mon, 17 Jun 2013 18:23:31 +0200
diff --git a/debian/patches/arm-multilib-soft-cross.diff b/debian/patches/arm-multilib-soft-cross.diff
new file mode 100644
index 0000000..bad15d0
--- /dev/null
+++ b/debian/patches/arm-multilib-soft-cross.diff
@@ -0,0 +1,27 @@
+# DP: ARM hard/soft float multilib support
+
+Index: b/src/gcc/config/arm/t-linux-eabi
+===================================================================
+--- a/src/gcc/config/arm/t-linux-eabi
++++ b/src/gcc/config/arm/t-linux-eabi
+@@ -21,6 +21,20 @@
+ MULTILIB_OPTIONS =
+ MULTILIB_DIRNAMES =
+
++ifeq ($(with_float),hard)
++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard
++MULTILIB_DIRNAMES = sf hf
++MULTILIB_EXCEPTIONS =
++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp
++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
++else
++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard
++MULTILIB_DIRNAMES = sf hf
++MULTILIB_EXCEPTIONS =
++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp
++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf
++endif
++
+ #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
+ #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te
+ #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te*
diff --git a/debian/patches/arm-multilib-soft.diff b/debian/patches/arm-multilib-soft.diff
index bad15d0..0db6001 100644
--- a/debian/patches/arm-multilib-soft.diff
+++ b/debian/patches/arm-multilib-soft.diff
@@ -13,13 +13,13 @@ Index: b/src/gcc/config/arm/t-linux-eabi
+MULTILIB_DIRNAMES = sf hf
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp
-+MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
+else
+MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard
+MULTILIB_DIRNAMES = sf hf
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp
-+MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf
++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf
+endif
+
#MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
diff --git a/debian/patches/arm-multilib-softfp-cross.diff b/debian/patches/arm-multilib-softfp-cross.diff
new file mode 100644
index 0000000..89ed142
--- /dev/null
+++ b/debian/patches/arm-multilib-softfp-cross.diff
@@ -0,0 +1,27 @@
+# DP: ARM hard/softfp float multilib support
+
+Index: b/src/gcc/config/arm/t-linux-eabi
+===================================================================
+--- a/src/gcc/config/arm/t-linux-eabi 2011-01-03 20:52:22.000000000 +0000
++++ b/src/gcc/config/arm/t-linux-eabi 2011-08-21 21:08:47.583351817 +0000
+@@ -24,6 +24,20 @@
+ MULTILIB_OPTIONS =
+ MULTILIB_DIRNAMES =
+
++ifeq ($(with_float),hard)
++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard
++MULTILIB_DIRNAMES = sf hf
++MULTILIB_EXCEPTIONS =
++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
++else
++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard
++MULTILIB_DIRNAMES = sf hf
++MULTILIB_EXCEPTIONS =
++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf
++endif
++
+ #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
+ #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te
+ #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te*
diff --git a/debian/patches/arm-multilib-softfp.diff b/debian/patches/arm-multilib-softfp.diff
index 89ed142..f4268da 100644
--- a/debian/patches/arm-multilib-softfp.diff
+++ b/debian/patches/arm-multilib-softfp.diff
@@ -13,13 +13,13 @@ Index: b/src/gcc/config/arm/t-linux-eabi
+MULTILIB_DIRNAMES = sf hf
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
-+MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf
+else
+MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard
+MULTILIB_DIRNAMES = sf hf
+MULTILIB_EXCEPTIONS =
+MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
-+MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf
++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf
+endif
+
#MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
diff --git a/debian/rules.patch b/debian/rules.patch
index 42b61b9..3170a48 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -228,9 +228,9 @@ ifeq ($(with_softfloat),yes)
debian_patches += arm-multilib-soft-float
else ifeq ($(multilib),yes)
ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise))
- debian_patches += arm-multilib-softfp
+ debian_patches += arm-multilib-softfp$(if $(filter yes,$(DEB_CROSS)),-cross)
else
- debian_patches += arm-multilib-soft
+ debian_patches += arm-multilib-soft$(if $(filter yes,$(DEB_CROSS)),-cross)
endif
endif
debian_patches += arm-multilib-defaults
diff --git a/debian/rules2 b/debian/rules2
index 730e771..c698e44 100644
--- a/debian/rules2
+++ b/debian/rules2
@@ -769,8 +769,14 @@ usr_lib32 = $(PFL)/lib32
usr_libn32 = $(PFL)/lib32
usr_libx32 = $(PFL)/libx32
usr_lib64 = $(PFL)/lib64
-usr_libhf = $(PFL)/libhf
-usr_libsf = $(PFL)/libsf
+# FIXME: Move to the new location for native builds too
+ifeq ($(DEB_CROSS),yes)
+ usr_libhf = $(PFL)/libhf
+ usr_libsf = $(PFL)/libsf
+else
+ usr_libhf = $(PFL)/lib/arm-linux-gnueabihf
+ usr_libsf = $(PFL)/lib/arm-linux-gnueabi
+endif
gcc_lib_dir32 = $(gcc_lib_dir)/$(biarch32subdir)
gcc_lib_dirn32 = $(gcc_lib_dir)/$(biarchn32subdir)
@@ -786,8 +792,14 @@ libgcc_dirn32 = $(RPF)/lib32
# libx32gcc_s also ends up in usr
libgcc_dirx32 = $(PFL)/libx32
libgcc_dir64 = $(RPF)/lib64
-libgcc_dirhf = $(RPF)/lib/arm-linux-gnueabihf
-libgcc_dirsf = $(RPF)/lib/arm-linux-gnueabi
+# FIXME: Move to the new location for native builds too
+ifeq ($(DEB_CROSS),yes)
+ libgcc_dirhf = $(RPF)/libhf
+ libgcc_dirsf = $(RPF)/libsf
+else
+ libgcc_dirhf = $(RPF)/lib/arm-linux-gnueabihf
+ libgcc_dirsf = $(RPF)/lib/arm-linux-gnueabi
+endif
# install_gcc_lib(lib,soname,flavour,package)
define install_gcc_lib