wrappers: link with the Windows Store specific runtime for UWP

This commit is contained in:
Steve Lhomme authored and Martin Storsjö committed 2019-04-18 12:35:25 +03:00
1 parent a270bc3cad
commit cd73ed8308
4 files changed
+27 -3

No files matched your search

+22 -2
View File
@@ -10,7 +10,23 @@ PREFIX="$1"
export PATH=$PREFIX/bin:$PATH
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
: ${TARGET_OSES:=${TOOLCHAIN_TARGET_OSES-mingw32 mingw32uwp}}
cd test
DEFAULT_OSES="mingw32 mingw32uwp"
cat<<EOF > is-ucrt.c
#include <_mingw.h>
#if __MSVCRT_VERSION__ < 0x1400
#error not ucrt
#endif
EOF
ANY_ARCH=$(echo $ARCHS | awk '{print $1}')
if ! $ANY_ARCH-w64-mingw32-gcc -E is-ucrt.c > /dev/null 2>&1; then
# If the default CRT isn't UCRT, we can't build for mingw32uwp.
DEFAULT_OSES="mingw32"
fi
: ${TARGET_OSES:=${TOOLCHAIN_TARGET_OSES-$DEFAULT_OSES}}
if [ -z "$RUN_X86" ]; then
case $(uname) in
@@ -27,7 +43,6 @@ if [ -z "$RUN_X86" ]; then
fi
cd test
TESTS_C="hello hello-tls crt-test setjmp"
TESTS_C_DLL="autoimport-lib"
TESTS_C_LINK_DLL="autoimport-main"
@@ -143,6 +158,11 @@ for arch in $ARCHS; do
if [ "$arch" = "i686" ]; then
compiler_rt_arch=i386
fi
if [ "$target_os" != "mingw32" ]; then
# The Windows Store specific CRT DLL is usually not available
# outside of such contexts, so skip trying to run those tests.
continue
fi
for i in libc++ libunwind libssp-0 libclang_rt.asan_dynamic-$compiler_rt_arch; do
if [ -f $PREFIX/$arch-w64-mingw32/bin/$i.dll ]; then
cp $PREFIX/$arch-w64-mingw32/bin/$i.dll $TEST_DIR
+2
View File
@@ -305,6 +305,8 @@ int _tmain(int argc, TCHAR* argv[]) {
exec_argv[arg++] = _T("-DUNICODE");
// add the minimum runtime to use for UWP targets
exec_argv[arg++] = _T("-Wl,-lmincore");
// This requires that the default crt is ucrt.
exec_argv[arg++] = _T("-Wl,-lvcruntime140_app");
}
exec_argv[arg++] = _T("-target");
+2
View File
@@ -63,6 +63,8 @@ mingw32uwp)
FLAGS="$FLAGS -DUNICODE"
# add the minimum runtime to use for UWP targets
FLAGS="$FLAGS -Wl,-lmincore"
# This requires that the default crt is ucrt.
FLAGS="$FLAGS -Wl,-lvcruntime140_app"
;;
esac
+1 -1
View File
@@ -36,7 +36,7 @@ esac
FLAGS="-m $M"
case $TARGET_OS in
mingw32uwp)
FLAGS="$FLAGS -lmincore"
FLAGS="$FLAGS -lmincore -lvcruntime140_app"
;;
esac
ld.lld $FLAGS "$@"