summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-05-05 01:51:40 (GMT)
committerGitHub <noreply@github.com>2018-05-05 01:51:40 (GMT)
commit9bd57827bea4f99f1c2d671c8fa366dcb304aceb (patch)
tree7a23549abf626fd13923f599dfd8ed0c9759510a
parentd7eed4ee52a793663ab364e2c0bb6b4303d4d6a5 (diff)
parente1610ee7b61bb7c99b0e1d24cb98b4fba4957ce3 (diff)
Merge pull request #956 from stilor/mingw-multilib
Preserve each variant of libwinpthread.dll
-rw-r--r--scripts/build/libc/mingw-w64.sh18
1 files changed, 18 insertions, 0 deletions
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"