Merge pull request #123 from ehsan/clang-cl

Add support for building with clang-cl
This commit is contained in:
Anthony Green
2014-09-18 18:27:15 -04:00
3 changed files with 30 additions and 5 deletions
+6 -1
View File
@@ -146,12 +146,17 @@ It's also possible to build libffi on Windows platforms with
Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
wrapper script during configuration like so:
path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64" and
CXX="path/to/msvcc.sh -m64". You may also need to specify --build
appropriately.
It is also possible to build libffi on Windows platforms with the LLVM
project's clang-cl compiler, like below:
path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP"
When building with MSVC under a MingW environment, you may need to
remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
command. ('cygpath' is not present in MingW, and is not required when
+1 -1
View File
@@ -68,7 +68,7 @@ extern "C" {
#ifndef LIBFFI_ASM
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(__clang__)
#define __attribute__(X)
#endif
+23 -3
View File
@@ -44,7 +44,8 @@
args_orig=$@
args="-nologo -W3"
md=-MD
static_crt=
debug_crt=
cl="cl"
ml="ml"
safeseh="-safeseh"
@@ -63,11 +64,15 @@ do
shift 1
;;
-m64)
cl="cl" # "$MSVC/x86_amd64/cl"
ml="ml64" # "$MSVC/x86_amd64/ml64"
safeseh=
shift 1
;;
-clang-cl)
cl="clang-cl"
safeseh=
shift 1
;;
-O0)
args="$args -Od"
shift 1
@@ -110,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)
@@ -207,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="."