From c88bbca7ab489fc8cf9ca34b9878e8b8be23f668 Mon Sep 17 00:00:00 2001 From: Bernhard Walle Date: Sun, 7 Dec 2014 15:57:11 +0100 Subject: comptools/make: Install 'gmake' symlink We had following problem: We're building a toolchain with an old glibc version for compatibility with old Linux distributions (glibc 2.9). This version requires make < 4 to build. However, the configure script of glibc looks for make in the order "gnumake", "gmake" and "make". So when "gmake" is available in the system (which is the case on Gentoo Linux per default, unfortunately), then configure finds the system gmake 4.1 instead of the ct-ng make 3.82. This patch adds an option to install a symlink so that 'gmake' is also available in the old version when building toolchains. Signed-off-by: Bernhard Walle diff --git a/config/companion_tools.in b/config/companion_tools.in index 18811e6..f922388 100644 --- a/config/companion_tools.in +++ b/config/companion_tools.in @@ -35,6 +35,11 @@ config COMP_TOOLS_make bool prompt "make" +config COMP_TOOLS_make_gmake + bool + prompt "Add gmake symlink to companion gnu/make" + depends on COMP_TOOLS_make + config COMP_TOOLS_m4 bool prompt "m4" diff --git a/scripts/build/companion_tools/050-make.sh b/scripts/build/companion_tools/050-make.sh index 601e267..4247545 100644 --- a/scripts/build/companion_tools/050-make.sh +++ b/scripts/build/companion_tools/050-make.sh @@ -22,6 +22,9 @@ do_companion_tools_make_build() { --prefix="${CT_BUILDTOOLS_PREFIX_DIR}" CT_DoExecLog ALL make CT_DoExecLog ALL make install + if [ "${CT_COMP_TOOLS_make_gmake}" = "y" ]; then + CT_DoExecLog ALL ln -sv make "${CT_BUILDTOOLS_PREFIX_DIR}/bin/gmake" + fi CT_Popd CT_EndStep } -- cgit v0.10.2-6-g49f6 From 1a6e9782e2a7239f2534347a4ef5b35542dd4e41 Mon Sep 17 00:00:00 2001 From: Bernhard Walle Date: Thu, 9 Oct 2014 10:46:07 +0200 Subject: cc/gcc: Fix dynamic linker path for hard float libc When compiling glibc 2.16 and gcc 4.7.4 with CT_ARCH_FLOAT="hard", I end up in a dynamic linker called /lib/ld-linux-armhf.so.3, but gcc compiles the binaries with an ELF interpreter /lib/ld-linux.so.3. That doesn't work. This patch (which is included in recent gcc version and also is included in Linaro 4.7 versions) fixes the problem. I just stripped the ChangeLog diff from the original commit. Signed-off-by: Bernhard Walle diff --git a/patches/gcc/4.7.4/100-hardfloat-ld.patch b/patches/gcc/4.7.4/100-hardfloat-ld.patch new file mode 100644 index 0000000..0e97b6f --- /dev/null +++ b/patches/gcc/4.7.4/100-hardfloat-ld.patch @@ -0,0 +1,44 @@ +From 9dd1a0668e5ab10a5943fdd1aee2e1616d7fc7ed Mon Sep 17 00:00:00 2001 +From: michaelh +Date: Thu, 26 Apr 2012 04:33:08 +0000 +Subject: [PATCH] 2012-04-26 Michael Hope + Richard Earnshaw + + * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define. + (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define. + (GLIBC_DYNAMIC_LINKER_DEFAULT): Define. + (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path. + + + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186859 138bc75d-0d04-0410-961f-82ee72b054a4 +--- + gcc/config/arm/linux-eabi.h | 12 +++++++++++- + 2 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h +index 80bd825..2ace6f0 100644 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -62,7 +62,17 @@ + /* Use ld-linux.so.3 so that it will be possible to run "classic" + GNU/Linux binaries on an EABI system. */ + #undef GLIBC_DYNAMIC_LINKER +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3" ++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" ++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" ++#if TARGET_DEFAULT_FLOAT_ABI == ARM_FLOAT_ABI_HARD ++#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_HARD_FLOAT ++#else ++#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT ++#endif ++#define GLIBC_DYNAMIC_LINKER \ ++ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \ ++ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ ++ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" + + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ +-- +2.1.0 + -- cgit v0.10.2-6-g49f6