From 08d91d41f3c0bceed264a24920b4daa98fa18b9a Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 17 Mar 2016 22:54:43 -0700 Subject: musl: config is broken for !EXPERIMENTAL If EXPERIMENTAL is not set, the only choice for version is the set of released versions - currently, 1.1.14. But this only option is disabled because it is also marked EXPERIMENTAL; this leaves no available choices in the configuration. Marking MUSL as experimental: it seems to have header issues which prevent, for example, gdbserver from building. musl copied chunks of ptrace.h code from the kernel into its own headers, which now clash with Linux kernel headers. Manifests at least on SH4 target. Also, musl breaks in powerpc builds: GCC balks at it with "unsupported DEFAULT_LIBC" message. Also, 64-bit powerpc and mips are not supported. So, until someone figures out the dependencies for musl in config/, mark it experimental. Signed-off-by: Alexey Neyman --- config/libc/musl.in | 1 + 1 file changed, 1 insertion(+) (limited to 'config') diff --git a/config/libc/musl.in b/config/libc/musl.in index 00d98eae..ff84448b 100644 --- a/config/libc/musl.in +++ b/config/libc/musl.in @@ -1,6 +1,7 @@ # musl options ## depends on ! WINDOWS && ! BARE_METAL +## depends on EXPERIMENTAL ## ## select LIBC_SUPPORT_THREADS_NATIVE ## select CC_CORE_PASSES_NEEDED -- cgit v1.2.3 From a49e13fb4edeefba406d98754fb0ca04b707ff4c Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 19 Mar 2016 15:56:26 -0700 Subject: sh: require multilib Now that libc backend installs the libraries into the directory reported by gcc as 'multi-os-directory', sh4 libraries are installed into a '!m4' subdirectory. This directory then confuses GNU ld, which assumes the exclamation mark to be a word separator and attempts to link to '/usr/lib' (a directory). However, if multilib is enabled, the default libraries are installed into the [expected] '/usr/lib/./'. This looks like an artifact of SuperH's unique way of specifying the multilibs to be built in GCC (which may list exclusions, starting with '!'). Signed-off-by: Alexey Neyman --- config/arch/sh.in | 1 + 1 file changed, 1 insertion(+) (limited to 'config') diff --git a/config/arch/sh.in b/config/arch/sh.in index 68d31200..60de3133 100644 --- a/config/arch/sh.in +++ b/config/arch/sh.in @@ -5,6 +5,7 @@ ## select ARCH_USE_MMU ## select ARCH_SUPPORTS_BOTH_ENDIAN ## select ARCH_DEFAULT_LE +## select ARCH_REQUIRES_MULTILIB ## ## help The Super-H architecture, as defined by: ## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/ -- cgit v1.2.3 From aa30d0bc4fdf6480a5a24c69e5537f8c41011470 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Fri, 11 Jul 2014 13:39:24 +0100 Subject: gcc: Add --with-multilib-list option Written by Bryan Hundven. Modified by Alexey Neyman to actually add the option to gcc.in. Signed-off-by: Bryan Hundven Signed-off-by: Ray Donnelly Signed-off-by: Alexey Neyman --- config/cc/gcc.in.2 | 10 ++++++++++ scripts/build/cc/100-gcc.sh | 6 ++++++ 2 files changed, 16 insertions(+) (limited to 'config') diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index 17b41ccf..c200d22c 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -37,6 +37,16 @@ config CC_GCC_EXTRA_CONFIG_ARRAY if they are properly quoted (or escaped, but prefer quotes). Eg.: --with-foo="1st arg with 4 spaces" --with-bar=2nd-arg-without-space +config CC_GCC_MULTILIB_LIST + string + prompt "List of multilib variants" + depends on MULTILIB + help + Architecture-specific option of expanding or restricting the list of + the multilib variants to be built. Refer to GCC installation manual + for the format of this option for a particular architecture. + Leave empty to use the default list for this architecture. + config CC_GCC_TARGET_FINAL bool prompt "Use the default targets all and install for the final compiler" diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 75721db5..7bb3610f 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -414,6 +414,9 @@ do_gcc_core_backend() { extra_config+=("--disable-multilib") else extra_config+=("--enable-multiarch") + if [ -n "${CT_CC_GCC_MULTILIB_LIST}" ]; then + extra_config+=("--with-multilib-list=${CT_CC_GCC_MULTILIB_LIST}") + fi fi CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" @@ -893,6 +896,9 @@ do_gcc_backend() { extra_config+=("--disable-multilib") else extra_config+=("--enable-multiarch") + if [ -n "${CT_CC_GCC_MULTILIB_LIST}" ]; then + extra_config+=("--with-multilib-list=${CT_CC_GCC_MULTILIB_LIST}") + fi fi CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" -- cgit v1.2.3