From acc13885ee5bfae0f6710659bd8cdba3147d1af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20D=C3=ADaz?= Date: Wed, 11 Oct 2017 18:55:20 +0100 Subject: gcc-linaro-7.1: add ILP32 patches for correct triplet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GNU name proposed for ILP32 used to be aarch64_ilp32-linux-gnu and then: aarch64-linux-gnuilp32 but finally: aarch64-linux-gnu_ilp32 These patches are a continuation of the effort to correctly establish the right triplet. More information about ARM64 ILP32 can be found here: * https://wiki.linaro.org/Platform/arm64-ilp32 * https://wiki.debian.org/Arm64ilp32Port Change-Id: I560af755d69efe0eb3d89ecf7db4b4453eaab5e0 Signed-off-by: Daniel Díaz --- .../recipes-devtools/gcc/gcc-linaro-7.1.inc | 3 +- .../add-gcc-ilp32-default-support.patch | 61 ++++++++++++++++++++++ .../fix-gcc-multilib-for-ilp32-default.patch | 39 ++++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/add-gcc-ilp32-default-support.patch create mode 100644 meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/fix-gcc-multilib-for-ilp32-default.patch diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1.inc b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1.inc index 92dc327d..602dbe79 100644 --- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1.inc +++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1.inc @@ -55,7 +55,6 @@ SRC_URI = "\ file://0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ file://0027-export-CPP.patch \ file://0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \ - file://0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \ file://0030-Ensure-target-gcc-headers-can-be-included.patch \ file://0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ file://0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ @@ -74,6 +73,8 @@ SRC_URI = "\ file://0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ file://0046-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ file://0047-sync-gcc-stddef.h-with-musl.patch \ + file://add-gcc-ilp32-default-support.patch \ + file://fix-gcc-multilib-for-ilp32-default.patch \ ${BACKPORTS} \ " BACKPORTS = "\ diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/add-gcc-ilp32-default-support.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/add-gcc-ilp32-default-support.patch new file mode 100644 index 00000000..4c231a19 --- /dev/null +++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/add-gcc-ilp32-default-support.patch @@ -0,0 +1,61 @@ +From ebfcbd5ace44eb4db1a8e0a0e0622ff053c69e31 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20D=C3=ADaz?= +Date: Wed, 11 Oct 2017 11:27:58 -0500 +Subject: [PATCH 1/2] Add gcc ilp32 default support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This patch comes from Wookey: + https://people.linaro.org/~wookey/ilp32/patches/gcc-ilp32-default-support.patch + +Signed-off-by: Daniel Díaz +--- + gcc/config.gcc | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index e8aaf2d..72522d0 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -518,11 +518,14 @@ aarch64*-*-*) + tm_p_file="${tm_p_file} arm/aarch-common-protos.h" + case ${with_abi} in + "") +- if test "x$with_multilib_list" = xilp32; then ++ case ${target} in ++ aarch64*-*-*_ilp32) + tm_file="aarch64/biarchilp32.h ${tm_file}" +- else ++ ;; ++ *) + tm_file="aarch64/biarchlp64.h ${tm_file}" +- fi ++ ;; ++ esac + ;; + ilp32) + tm_file="aarch64/biarchilp32.h ${tm_file}" +@@ -971,9 +974,16 @@ aarch64*-*-linux*) + esac + aarch64_multilibs="${with_multilib_list}" + if test "$aarch64_multilibs" = "default"; then +- # TODO: turn on ILP32 multilib build after its support is mature. +- # aarch64_multilibs="lp64,ilp32" +- aarch64_multilibs="lp64" ++ case $target in ++ aarch64*_ilp32*) ++ aarch64_multilibs="ilp32" ++ ;; ++ aarch64*) ++ # TODO: turn on ILP32 multilib build after its support is mature. ++ # aarch64_multilibs="lp64,ilp32" ++ aarch64_multilibs="lp64" ++ ;; ++ esac + fi + aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'` + for aarch64_multilib in ${aarch64_multilibs}; do +-- +2.7.4 + diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/fix-gcc-multilib-for-ilp32-default.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/fix-gcc-multilib-for-ilp32-default.patch new file mode 100644 index 00000000..8a71facb --- /dev/null +++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-7.1/fix-gcc-multilib-for-ilp32-default.patch @@ -0,0 +1,39 @@ +From 50a45089ace8221682852d1c8401aad7824b9ec1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20D=C3=ADaz?= +Date: Wed, 11 Oct 2017 11:45:15 -0500 +Subject: [PATCH 2/2] Fix gcc multilib for ilp32 default +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This comes from Wookey: + https://people.linaro.org/~wookey/ilp32/patches/gcc-fixup-multilib-patch-for-ilp32-default.patch +on top of Debian's gcc-multiarch.diff. + +Signed-off-by: Daniel Díaz +--- + gcc/config/aarch64/t-aarch64-linux | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux +index ab064ab..38b33f6 100644 +--- a/gcc/config/aarch64/t-aarch64-linux ++++ b/gcc/config/aarch64/t-aarch64-linux +@@ -22,7 +22,12 @@ LIB1ASMSRC = aarch64/lib1funcs.asm + LIB1ASMFUNCS = _aarch64_sync_cache_range + + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) ++ifneq (,$(findstring _ilp32,$(target))) + MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES += mabi.ilp32=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) ++MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu_ilp32) ++else ++MULTILIB_OSDIRNAMES = mabi.lp64=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) + MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) +- +-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 ++endif +-- +2.7.4 + -- cgit v1.2.3