From 6cdf0df01be9bd4befd9509df07354c0f4461a32 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 6 Mar 2017 16:44:24 -0800 Subject: Use CHOST instead of CROSS_PREFIX The latter does not prevent zlib's configure from overriding 'AR' with /usr/bin/libtool on macos, and that breaks canadian crosses. Signed-off-by: Alexey Neyman diff --git a/scripts/build/companion_libs/050-zlib.sh b/scripts/build/companion_libs/050-zlib.sh index 6e17819..10779af 100644 --- a/scripts/build/companion_libs/050-zlib.sh +++ b/scripts/build/companion_libs/050-zlib.sh @@ -86,7 +86,7 @@ do_zlib_backend() { CT_DoExecLog CFG \ CFLAGS="${cflags}" \ LDFLAGS="${ldflags}" \ - CROSS_PREFIX="${host}-" \ + CHOST="${host}" \ ${CONFIG_SHELL} \ "${CT_SRC_DIR}/zlib-${CT_ZLIB_VERSION}/configure" \ --prefix="${prefix}" \ -- cgit v0.10.2-6-g49f6 From b3b94e4807f4048ce924c9f1776a1bd2df740d0b Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 6 Mar 2017 18:41:57 -0800 Subject: Only add clang-specific flags to clang I.e., only to CFLAGS_FOR_BUILD if the build is canadian. Signed-off-by: Alexey Neyman diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 4dc7a69..56517d3 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -340,6 +340,7 @@ do_gcc_core_backend() { local complibs local lang_list local cflags + local cflags_for_build local ldflags local build_step local log_txt @@ -579,17 +580,30 @@ do_gcc_core_backend() { CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" + # We may need to modify host/build CFLAGS separately below + cflags_for_build="${cflags}" + # Clang's default bracket-depth is 256, and building GCC # requires somewhere between 257 and 512. - if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then - cflags="$cflags "-fbracket-depth=512 + if [ "${host}" = "${CT_BUILD}" ]; then + if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then + cflags="$cflags "-fbracket-depth=512 + cflags_for_build="$cflags_for_build "-fbracket-depth=512 + fi + else + # FIXME we currently don't support clang as host compiler, only as build + if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then + cflags_for_build="$cflags_for_build "-fbracket-depth=512 + fi fi # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532) CT_DoExecLog CFG \ CC_FOR_BUILD="${CT_BUILD}-gcc" \ CFLAGS="${cflags}" \ + CFLAGS_FOR_BUILD="${cflags_for_build}" \ CXXFLAGS="${cflags}" \ + CXXFLAGS_FOR_BUILD="${cflags_for_build}" \ LDFLAGS="${core_LDFLAGS[*]}" \ CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ @@ -867,6 +881,7 @@ do_gcc_backend() { local complibs local lang_list local cflags + local cflags_for_build local ldflags local build_manuals local -a host_libstdcxx_flags @@ -1102,16 +1117,29 @@ do_gcc_backend() { CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" + # We may need to modify host/build CFLAGS separately below + cflags_for_build="${cflags}" + # Clang's default bracket-depth is 256, and building GCC # requires somewhere between 257 and 512. - if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then - cflags="$cflags "-fbracket-depth=512 + if [ "${host}" = "${CT_BUILD}" ]; then + if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then + cflags="$cflags "-fbracket-depth=512 + cflags_for_build="$cflags_for_build "-fbracket-depth=512 + fi + else + # FIXME we currently don't support clang as host compiler, only as build + if ${CT_BUILD}-gcc --version 2>&1 | grep clang; then + cflags_for_build="$cflags_for_build "-fbracket-depth=512 + fi fi CT_DoExecLog CFG \ CC_FOR_BUILD="${CT_BUILD}-gcc" \ CFLAGS="${cflags}" \ + CFLAGS_FOR_BUILD="${cflags_for_build}" \ CXXFLAGS="${cflags}" \ + CXXFLAGS_FOR_BUILD="${cflags_for_build}" \ LDFLAGS="${final_LDFLAGS[*]}" \ CFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ CXXFLAGS_FOR_TARGET="${CT_TARGET_CFLAGS}" \ -- cgit v0.10.2-6-g49f6