Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 93d10d7

Browse files
author
Paul Monson
committed
build changes for Windows arm32
1 parent 25ce1ac commit 93d10d7

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ EXTRA_libffi_la_SOURCES = \
8282
src/alpha/ffi.c src/alpha/osf.S \
8383
src/arc/ffi.c src/arc/arcompact.S \
8484
src/arm/ffi.c src/arm/sysv.S \
85+
src/arm/sysv_msvc_arm32.S \
8586
src/avr32/ffi.c src/avr32/sysv.S \
8687
src/bfin/ffi.c src/bfin/sysv.S \
8788
src/cris/ffi.c src/cris/sysv.S \

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,13 +191,16 @@ History
191191

192192
See the git log for details at http://github.com/libffi/libffi.
193193

194-
3.3 TBD
194+
3.4 TBD
195195
Add RISC-V support.
196196
New API in support of GO closures.
197197
Default to Microsoft's 64 bit long double ABI with Visual C++.
198198
GNU compiler uses 80 bits (128 in memory) FFI_GNUW64 ABI.
199199
Many new tests cases and bug fixes.
200200

201+
3.3 Mar-05-19
202+
Add Windows 32-bit arm support.
203+
201204
3.2.1 Nov-12-14
202205
Build fix for non-iOS AArch64 targets.
203206

msvcc.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ do
6060
case $1
6161
in
6262
--verbose)
63-
$verbose=1
63+
verbose=1
6464
shift 1
6565
;;
6666
--version)
@@ -80,6 +80,11 @@ do
8080
safeseh=
8181
shift 1
8282
;;
83+
-marm)
84+
ml='armasm'
85+
safeseh=
86+
shift 1
87+
;;
8388
-clang-cl)
8489
cl="clang-cl"
8590
shift 1
@@ -237,6 +242,7 @@ do
237242
else
238243
output="-Fe$2"
239244
fi
245+
armasm_output="-o $2"
240246
if [ -n "$assembly" ]; then
241247
args="$args $output"
242248
else
@@ -289,13 +295,21 @@ if [ -n "$assembly" ]; then
289295
fi
290296
ppsrc="$outdir/$(basename $src|sed 's/.S$/.asm/g')"
291297

298+
if [ $ml = "armasm" ]; then
299+
defines="$defines -D_M_ARM"
300+
fi
301+
292302
if test -n "$verbose"; then
293303
echo "$cl -nologo -EP $includes $defines $src > $ppsrc"
294304
fi
295305

296306
"$cl" -nologo -EP $includes $defines $src > $ppsrc || exit $?
297307
output="$(echo $output | sed 's%/F[dpa][^ ]*%%g')"
298-
args="-nologo $safeseh $single $output $ppsrc"
308+
if [ $ml = "armasm" ]; then
309+
args="-nologo -g -oldit $armasm_output $ppsrc -errorReport:prompt"
310+
else
311+
args="-nologo $safeseh $single $output $ppsrc"
312+
fi
299313

300314
if test -n "$verbose"; then
301315
echo "$ml $args"

src/arm/ffitarget.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ typedef enum ffi_abi {
5757
signed char vfp_args[16] \
5858

5959
#define FFI_TARGET_SPECIFIC_VARIADIC
60+
#ifndef _M_ARM
6061
#define FFI_TARGET_HAS_COMPLEX_TYPE
62+
#endif
6163

6264
/* ---- Definitions for closures ----------------------------------------- */
6365

0 commit comments

Comments
 (0)