Enable forcing the usage of the static CRT in libffi's msvc wrapper This is required for AddressSanitizer builds with clang-cl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
diff --git a/msvcc.sh b/msvcc.sh
index 4a65b0b..65fbfef 100755
--- a/msvcc.sh
+++ b/msvcc.sh
@@ -44,7 +44,8 @@
args_orig=$@
args="-nologo -W3"
-md=-MD
+static_crt=
+debug_crt=
cl="cl"
ml="ml"
safeseh="-safeseh"
@@ -114,9 +115,14 @@ do
defines="$defines $1"
shift 1
;;
+ -DUSE_STATIC_RTL)
+ # Link against static CRT.
+ static_crt=1
+ shift 1
+ ;;
-DUSE_DEBUG_RTL)
# Link against debug CRT.
- md=-MDd
+ debug_crt=1
shift 1
;;
-c)
@@ -211,6 +217,16 @@ if [ -n "$opt" ]; then
args="$args -link -OPT:REF -OPT:ICF -INCREMENTAL:NO"
fi
+if [ -n "$static_crt" ]; then
+ md=-MT
+else
+ md=-MD
+fi
+
+if [ -n "$debug_crt" ]; then
+ md="${md}d"
+fi
+
if [ -n "$assembly" ]; then
if [ -z "$outdir" ]; then
outdir="."