diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2013-06-18 09:44:18 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2013-06-18 09:44:18 +0000 |
commit | baebc3c28774210e23d3467adcd6c1cf3b45eaf2 (patch) | |
tree | 541969a9a46301e611eea3fddaed82b09c43e280 | |
parent | 7251b28cdd750b596cd84c2b5092ea6232a60b30 (diff) | |
download | gcc-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/changelog | 2 | ||||
-rw-r--r-- | debian/patches/arm-multilib-soft-cross.diff | 27 | ||||
-rw-r--r-- | debian/patches/arm-multilib-soft.diff | 4 | ||||
-rw-r--r-- | debian/patches/arm-multilib-softfp-cross.diff | 27 | ||||
-rw-r--r-- | debian/patches/arm-multilib-softfp.diff | 4 | ||||
-rw-r--r-- | debian/rules.patch | 4 | ||||
-rw-r--r-- | debian/rules2 | 20 |
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 |