From e1610ee7b61bb7c99b0e1d24cb98b4fba4957ce3 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Thu, 3 May 2018 22:28:10 -0700 Subject: Preserve each variant of libwinpthread.dll ... in the corresponding /lib directory. Mingw-w64 installs it to /bin, so multiple variants in a multilib configuration override each other. Signed-off-by: Alexey Neyman diff --git a/scripts/build/libc/mingw-w64.sh b/scripts/build/libc/mingw-w64.sh index 21afb29..3026b87 100644 --- a/scripts/build/libc/mingw-w64.sh +++ b/scripts/build/libc/mingw-w64.sh @@ -161,11 +161,29 @@ do_mingw_pthreads() CT_DoLog EXTRA "Installing mingw-w64-winpthreads" CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR} + # Post-install hackery: all libwinpthread-1.dll end up being installed + # into /bin, which is broken on multilib install. Hence, stash it back + # into /lib - and after iterating over multilibs, copy the default one + # back into /bin. + if [ "${multi_index}" != 1 -o "${multi_count}" != 1 ]; then + CT_DoExecLog ALL mv "${CT_SYSROOT_DIR}${MINGW_INSTALL_PREFIX}/bin/libwinpthread-1.dll" \ + "${CT_SYSROOT_DIR}${libprefix}/libwinpthread-1.dll" + if [ "${multi_index}" = 1 ]; then + default_libprefix="${libprefix}" + elif [ "${multi_index}" = "${multi_count}" ]; then + CT_DoExecLog ALL cp "${CT_SYSROOT_DIR}${default_libprefix}/libwinpthread-1.dll" \ + "${CT_SYSROOT_DIR}${MINGW_INSTALL_PREFIX}/bin/libwinpthread-1.dll" + fi + fi + CT_EndStep } do_libc() { + # Used when iterating over libwinpthread + local default_libprefix + do_check_mingw_vendor_tuple CT_DoStep INFO "Building mingw-w64" -- cgit v0.10.2-6-g49f6