diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-05-25 22:10:32 (GMT) |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2008-05-25 22:10:32 (GMT) |
commit | 832d6ba314617debfb838569e97c78d9f0a5a41e (patch) | |
tree | 0b089fc57aa0b72c6e20152912d7025ec07aaa48 | |
parent | 5ad450e40345467cb3889f1b8c197395a528f387 (diff) |
Fix building big-endian ARM EABI toolchains (build-tested only).
Patch highly inspired by the one from OpenWRT (http://openwrt.org/)
/trunk/patches/gcc/4.2.3/930-eabi_fixes.patch | 13 13 0 0 +++++++++++++
/trunk/scripts/build/cc_gcc.sh | 6 4 2 0 ++++--
2 files changed, 17 insertions(+), 2 deletions(-)
-rw-r--r-- | patches/gcc/4.2.3/930-eabi_fixes.patch | 13 | ||||
-rw-r--r-- | scripts/build/cc_gcc.sh | 6 |
2 files changed, 17 insertions, 2 deletions
diff --git a/patches/gcc/4.2.3/930-eabi_fixes.patch b/patches/gcc/4.2.3/930-eabi_fixes.patch new file mode 100644 index 0000000..7dce608 --- /dev/null +++ b/patches/gcc/4.2.3/930-eabi_fixes.patch @@ -0,0 +1,13 @@ +diff -durN gcc-4.2.3.orig/gcc/config/arm/linux-eabi.h gcc-4.2.3/gcc/config/arm/linux-eabi.h +--- gcc-4.2.3.orig/gcc/config/arm/linux-eabi.h 2007-09-01 17:28:30.000000000 +0200 ++++ gcc-4.2.3/gcc/config/arm/linux-eabi.h 2008-05-25 23:47:36.000000000 +0200 +@@ -47,7 +47,8 @@ + #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi + + #undef SUBTARGET_EXTRA_LINK_SPEC +-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux_eabi" ++#define SUBTARGET_EXTRA_LINK_SPEC \ ++ " %{mlittle-endian:-m armelf_linux_eabi} %{mbig-endian:-m armelfb_linux_eabi}" + + /* Use ld-linux.so.3 so that it will be possible to run "classic" + GNU/Linux binaries on an EABI system. */ diff --git a/scripts/build/cc_gcc.sh b/scripts/build/cc_gcc.sh index fa74b14..5a6b148 100644 --- a/scripts/build/cc_gcc.sh +++ b/scripts/build/cc_gcc.sh @@ -224,12 +224,12 @@ do_cc() { extra_config="${extra_config} --disable-multilib" extra_config="${extra_config} ${CT_ARCH_WITH_ARCH} ${CT_ARCH_WITH_ABI} ${CT_ARCH_WITH_CPU} ${CT_ARCH_WITH_TUNE} ${CT_ARCH_WITH_FPU} ${CT_ARCH_WITH_FLOAT}" [ "${CT_SHARED_LIBS}" = "y" ] || extra_config="${extra_config} --disable-shared" + [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then extra_config="${extra_config} --enable-__cxa_atexit" else extra_config="${extra_config} --disable-__cxa_atexit" fi - [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" CT_DoLog DEBUG "Extra config passed: '${extra_config}'" @@ -239,7 +239,9 @@ do_cc() { # embedded systems don't really need message catalogs... CC_FOR_BUILD="${CT_CC_NATIVE}" \ CFLAGS="${CT_CFLAGS_FOR_HOST}" \ - TARGET_CFLAGS="${CT_TARGET_CFLAGS}" \ + CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ + CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ + LDFLAGS_FOR_TARGET="${CT_TARGET_LDFLAGS}" \ "${CT_SRC_DIR}/${CT_CC_FILE}/configure" \ ${CT_CANADIAN_OPT} \ --target=${CT_TARGET} --host=${CT_HOST} \ |