diff options
-rw-r--r-- | config/companion_libs/isl.in | 5 | ||||
-rw-r--r-- | docs/B - Known issues.txt | 8 | ||||
-rw-r--r-- | patches/binutils/2.25/300-012_check_ldrunpath_length.patch | 2 | ||||
-rw-r--r-- | scripts/build/libc/glibc.sh | 4 | ||||
-rw-r--r-- | scripts/build/libc/mingw.sh | 31 |
5 files changed, 42 insertions, 8 deletions
diff --git a/config/companion_libs/isl.in b/config/companion_libs/isl.in index a6b53fb3..92e659bd 100644 --- a/config/companion_libs/isl.in +++ b/config/companion_libs/isl.in @@ -6,6 +6,10 @@ choice # Don't remove next line # CT_INSERT_VERSION_BELOW +config ISL_V_0_14 + bool + prompt "0.14" + config ISL_V_0_12_2 bool prompt "0.12.2" @@ -20,5 +24,6 @@ config ISL_VERSION string # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW + default "0.14" if ISL_V_0_14 default "0.12.2" if ISL_V_0_12_2 default "0.11.1" if ISL_V_0_11_1 diff --git a/docs/B - Known issues.txt b/docs/B - Known issues.txt index 656ac343..1d2db198 100644 --- a/docs/B - Known issues.txt +++ b/docs/B - Known issues.txt @@ -79,15 +79,15 @@ Symptoms: Explanations: This is not related to crosstool-NG. Mounts under Cygwin are by default not - case-sensitive. You have to use so-called "managed" mounts. See: - http://cygwin.com/faq.html section 4, question 32. + case-sensitive. You have to change a registry setting to disable + case-insensitivity. See: + http://cygwin.com/faq.html section 4, question 30. Status: DEPRECATED Fix: - Use "managed" mounts for the directories where you build *and* install your - toolchains. + Change the registry value as per the instructions on the Cygwin website. Workaround: None. diff --git a/patches/binutils/2.25/300-012_check_ldrunpath_length.patch b/patches/binutils/2.25/300-012_check_ldrunpath_length.patch index 16365b93..f1f31af9 100644 --- a/patches/binutils/2.25/300-012_check_ldrunpath_length.patch +++ b/patches/binutils/2.25/300-012_check_ldrunpath_length.patch @@ -15,7 +15,7 @@ index 137446f..bb8391a 100644 rpath = command_line.rpath; if (rpath == NULL) rpath = (const char *) getenv ("LD_RUN_PATH"); -+ if ((rpath) && (strlen (rpath) == 0)) ++ if ((rpath) && (*rpath == '\0')) + rpath = NULL; for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 50adf958..672e6725 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -371,6 +371,10 @@ do_libc_backend_once() { ;; esac + CT_CFLAGS_FOR_BUILD+=" ${CT_EXTRA_CFLAGS_FOR_BUILD}" + CT_LDFLAGS_FOR_BUILD+=" ${CT_EXTRA_LDFLAGS_FOR_BUILD}" + extra_make_args+=( "BUILD_CFLAGS=${CT_CFLAGS_FOR_BUILD}" "BUILD_LDFLAGS=${CT_LDFLAGS_FOR_BUILD}" ) + if [ "${libc_headers}" = "y" ]; then CT_DoLog EXTRA "Installing C library headers" diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh index 9a89df71..94b77053 100644 --- a/scripts/build/libc/mingw.sh +++ b/scripts/build/libc/mingw.sh @@ -17,6 +17,13 @@ do_libc_check_config() { : } +do_set_mingw_install_prefix(){ + MINGW_INSTALL_PREFIX=/usr/${CT_TARGET} + if [[ ${CT_WINAPI_VERSION} == 2* ]]; then + MINGW_INSTALL_PREFIX=/usr + fi +} + do_libc_start_files() { local -a sdk_opts @@ -33,11 +40,12 @@ do_libc_start_files() { CT_DoLog EXTRA "Configuring Headers" + do_set_mingw_install_prefix CT_DoExecLog CFG \ "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-headers/configure" \ --build=${CT_BUILD} \ --host=${CT_TARGET} \ - --prefix=/usr \ + --prefix=${MINGW_INSTALL_PREFIX} \ "${sdk_opts[@]}" CT_DoLog EXTRA "Compile Headers" @@ -45,7 +53,7 @@ do_libc_start_files() { CT_DoLog EXTRA "Installing Headers" CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR} - + CT_Popd # It seems mingw is strangely set up to look into /mingw instead of @@ -56,16 +64,33 @@ do_libc_start_files() { CT_EndStep } +do_check_mingw_vendor_tuple() +{ + if [[ ${CT_WINAPI_VERSION} == 4* ]]; then + CT_DoStep INFO "Checking vendor tuple configured in crosstool-ng .config" + if [[ ${CT_TARGET_VENDOR} == w64 ]]; then + CT_DoLog EXTRA "The tuple is set to '${CT_TARGET_VENDOR}', as recommended by mingw-64 team." + else + CT_DoLog WARN "WARNING! The tuple '${CT_TARGET_VENDOR}', is not equal to w64 and might break the toolchain! WARNING!" + fi + CT_EndStep + fi +} + do_libc() { + do_check_mingw_vendor_tuple + CT_DoStep INFO "Building mingw-w64 files" CT_DoLog EXTRA "Configuring mingw-w64-crt" CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-crt" + do_set_mingw_install_prefix CT_DoExecLog CFG \ "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \ - --prefix=/usr \ + --with-sysroot=${CT_SYSROOT_DIR} \ + --prefix=${MINGW_INSTALL_PREFIX} \ --build=${CT_BUILD} \ --host=${CT_TARGET} \ |