summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-05-04 05:28:10 (GMT)
committerAlexey Neyman <stilor@att.net>2018-05-04 05:28:10 (GMT)
commite1610ee7b61bb7c99b0e1d24cb98b4fba4957ce3 (patch)
tree7a23549abf626fd13923f599dfd8ed0c9759510a /scripts
parentd7eed4ee52a793663ab364e2c0bb6b4303d4d6a5 (diff)
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 <stilor@att.net>
Diffstat (limited to 'scripts')
-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"