diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index e52ec64c..0f902848 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -151,24 +151,24 @@ do_cc_core() { else extra_config+=("--disable-__cxa_atexit") fi - if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${CT_PREFIX_DIR}") - extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") - fi - if [ "${CT_CC_GCC_USE_PPL_CLOOG_MPC}" = "y" ]; then - extra_config+=("--with-ppl=${CT_PREFIX_DIR}") - extra_config+=("--with-cloog=${CT_PREFIX_DIR}") - extra_config+=("--with-mpc=${CT_PREFIX_DIR}") - fi - - CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" # When companion libraries are build static (eg !shared), # the libstdc++ is not pulled automatically, although it # is needed. Shoe-horn it in our LDFLAGS - if [ -z "${CT_COMPLIBS_SHARED}" ]; then + if [ "${CT_COMPLIBS_SHARED}" != "y" ]; then core_LDFLAGS='-lstdc++' fi + if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then + extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}") + extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}") + fi + if [ "${CT_CC_GCC_USE_PPL_CLOOG_MPC}" = "y" ]; then + extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}") + extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}") + extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}") + fi + + CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532) CC_FOR_BUILD="${CT_BUILD}-gcc" \ @@ -313,14 +313,21 @@ do_cc() { if [ -n "${CC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CC_ENABLE_CXX_FLAGS}") fi + + # When companion libraries are build static (eg !shared), + # the libstdc++ is not pulled automatically, although it + # is needed. Shoe-horn it in our LDFLAGS + if [ "${CT_COMPLIBS_SHARED}" != "y" ]; then + final_LDFLAGS='-lstdc++' + fi if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${CT_PREFIX_DIR}") - extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") + extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}") + extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}") fi if [ "${CT_CC_GCC_USE_PPL_CLOOG_MPC}" = "y" ]; then - extra_config+=("--with-ppl=${CT_PREFIX_DIR}") - extra_config+=("--with-cloog=${CT_PREFIX_DIR}") - extra_config+=("--with-mpc=${CT_PREFIX_DIR}") + extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}") + extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}") + extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}") fi if [ "${CT_THREADS}" = "none" ]; then @@ -334,13 +341,6 @@ do_cc() { CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" - # When companion libraries are build static (eg !shared), - # the libstdc++ is not pulled automatically, although it - # is needed. Shoe-horn it in our LDFLAGS - if [ -z "${CT_COMPLIBS_SHARED}" ]; then - final_LDFLAGS='-lstdc++' - fi - # --enable-symvers=gnu really only needed for sh4 to work around a # detection problem only matters for gcc-3.2.x and later, I think. # --disable-nls to work around crash bug on ppc405, but also because diff --git a/scripts/build/companion_libs/cloog.sh b/scripts/build/companion_libs/cloog.sh index 925ab026..e8589315 100644 --- a/scripts/build/companion_libs/cloog.sh +++ b/scripts/build/companion_libs/cloog.sh @@ -65,9 +65,9 @@ do_cloog() { "${CT_SRC_DIR}/cloog-ppl${_t}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ - --prefix="${CT_PREFIX_DIR}" \ - --with-gmp="${CT_PREFIX_DIR}" \ - --with-ppl="${CT_PREFIX_DIR}" \ + --prefix="${CT_COMPLIBS_DIR}" \ + --with-gmp="${CT_COMPLIBS_DIR}" \ + --with-ppl="${CT_COMPLIBS_DIR}" \ --with-bits=gmp \ "${cloog_opts[@]}" diff --git a/scripts/build/companion_libs/gmp.sh b/scripts/build/companion_libs/gmp.sh index ec92b9a6..5bcc39a2 100644 --- a/scripts/build/companion_libs/gmp.sh +++ b/scripts/build/companion_libs/gmp.sh @@ -44,7 +44,7 @@ do_gmp() { "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ - --prefix="${CT_PREFIX_DIR}" \ + --prefix="${CT_COMPLIBS_DIR}" \ --enable-fft \ --enable-mpbsd \ --enable-cxx \ diff --git a/scripts/build/companion_libs/libelf.sh b/scripts/build/companion_libs/libelf.sh index 7bbc8e47..67e85b4f 100644 --- a/scripts/build/companion_libs/libelf.sh +++ b/scripts/build/companion_libs/libelf.sh @@ -45,7 +45,7 @@ do_libelf() { # --build=${CT_BUILD} \ # --host=${CT_HOST} \ # --target=${CT_TARGET} \ -# --prefix="${CT_PREFIX_DIR}" \ +# --prefix="${CT_COMPLIBS_DIR}" \ # --enable-compat \ # --enable-elf64 \ # --enable-extended-format \ diff --git a/scripts/build/companion_libs/mpc.sh b/scripts/build/companion_libs/mpc.sh index d79ee14a..9631b527 100644 --- a/scripts/build/companion_libs/mpc.sh +++ b/scripts/build/companion_libs/mpc.sh @@ -43,9 +43,9 @@ do_mpc() { "${CT_SRC_DIR}/mpc-${CT_MPC_VERSION}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ - --prefix="${CT_PREFIX_DIR}" \ - --with-gmp="${CT_PREFIX_DIR}" \ - --with-mpfr="${CT_PREFIX_DIR}" \ + --prefix="${CT_COMPLIBS_DIR}" \ + --with-gmp="${CT_COMPLIBS_DIR}" \ + --with-mpfr="${CT_COMPLIBS_DIR}" \ "${mpc_opts[@]}" CT_DoLog EXTRA "Building MPC" diff --git a/scripts/build/companion_libs/mpfr.sh b/scripts/build/companion_libs/mpfr.sh index c26f266f..7787d8c8 100644 --- a/scripts/build/companion_libs/mpfr.sh +++ b/scripts/build/companion_libs/mpfr.sh @@ -95,8 +95,8 @@ do_mpfr() { "${CT_SRC_DIR}/mpfr-${CT_MPFR_VERSION}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ - --prefix="${CT_PREFIX_DIR}" \ - --with-gmp="${CT_PREFIX_DIR}" \ + --prefix="${CT_COMPLIBS_DIR}" \ + --with-gmp="${CT_COMPLIBS_DIR}" \ "${mpfr_opts[@]}" CT_DoLog EXTRA "Building MPFR" diff --git a/scripts/build/companion_libs/ppl.sh b/scripts/build/companion_libs/ppl.sh index 2761a6ee..a2c9a0ed 100644 --- a/scripts/build/companion_libs/ppl.sh +++ b/scripts/build/companion_libs/ppl.sh @@ -46,9 +46,9 @@ do_ppl() { "${CT_SRC_DIR}/ppl-${CT_PPL_VERSION}/configure" \ --build=${CT_BUILD} \ --host=${CT_HOST} \ - --prefix="${CT_PREFIX_DIR}" \ - --with-libgmp-prefix="${CT_PREFIX_DIR}" \ - --with-libgmpxx-prefix="${CT_PREFIX_DIR}" \ + --prefix="${CT_COMPLIBS_DIR}" \ + --with-libgmp-prefix="${CT_COMPLIBS_DIR}" \ + --with-libgmpxx-prefix="${CT_COMPLIBS_DIR}" \ --disable-debugging \ --disable-assertions \ --disable-ppl_lcdd \ diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 471e3e0a..020d8d82 100644 --- a/scripts/crosstool-NG.sh.in +++ b/scripts/crosstool-NG.sh.in @@ -150,6 +150,11 @@ CT_SRC_DIR="${CT_WORK_DIR}/src" CT_BUILD_DIR="${CT_WORK_DIR}/${CT_TARGET}/build" CT_STATE_DIR="${CT_WORK_DIR}/${CT_TARGET}/state" CT_CONFIG_DIR="${CT_BUILD_DIR}/configs" +if [ "${CT_COMPLIBS_SHARED}" = "y" ]; then + CT_COMPLIBS_DIR="${CT_PREFIX_DIR}" +else + CT_COMPLIBS_DIR="${CT_BUILD_DIR}/static" +fi # Note: we'll always install the core compiler in its own directory, so as to # not mix the two builds: core and final.