diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index b7353dfa..2c5d45e6 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -188,7 +188,8 @@ config CC_GCC_LIBMPX prompt "Compile libmpx" depends on CC_GCC_HAS_LIBMPX depends on ARCH_x86 - depends on !LIBC_musl # MUSL does not define libc types that GCC requires + # MUSL does not define libc types that GCC requires. Mingw lacks certain headers. + depends on !LIBC_musl && ! LIBC_mingw help Enable GCC support for Intel Memory Protection Extensions (MPX). diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 14edcd4a..bab4c7b0 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -780,8 +780,20 @@ gcc_movelibs() { # Move only files, directories are for other multilibs gcc_dir="${CT_PREFIX_DIR}/${CT_TARGET}/lib/${multi_os_dir}" + if [ ! -d "${gcc_dir}" ]; then + # GCC didn't install anything outside of sysroot + return + fi ls "${gcc_dir}" | while read f; do + case "${f}" in + *.ld) + # Linker scripts remain in GCC's directory; elf2flt insists on + # finding them there. + continue + ;; + esac if [ -f "${gcc_dir}/${f}" ]; then + CT_DoExecLog ALL mkdir -p "${multi_root}/lib/${multi_os_dir}" CT_DoExecLog ALL mv "${gcc_dir}/${f}" "${multi_root}/lib/${multi_os_dir}/${f}" fi done