Commit 3302289c authored by Marius Gerbershagen's avatar Marius Gerbershagen
Browse files

Merge branch 'apple-arm64' into 'develop'

config-internal.h: automatically set ECL_C_COMPATIBLE_VARIADIC_DISPATCH for apple/arm64

See merge request embeddable-common-lisp/ecl!243
parents 19780e20 d4e5a96c
......@@ -98,7 +98,7 @@ Hint provided by Pascal J. Bourguignon.
#+END_SRC
3. Build and install the target library
#+BEGIN_SRC shell-script
export CFLAGS="$CFLAGS -DECL_C_COMPATIBLE_VARIADIC_DISPATCH -DGC_DISABLE_INCREMENTAL -DECL_RWLOCK"
export CFLAGS="$CFLAGS -DGC_DISABLE_INCREMENTAL -DECL_RWLOCK"
export CXXFLAGS="$CFLAGS"
./configure --host=aarch64-apple-darwin \
--prefix=`pwd`/ecl-iOS \
......
......@@ -248,3 +248,12 @@
#else
#define ECL_DEFAULT_C_STACK_SIZE @ECL_DEFAULT_C_STACK_SIZE@
#endif
/* Do the fixed and optional arguments of a variadic function use a
* different calling convention?
* Hardcoded since there's no easy way to determine this from a
* configure check and currently ARM64 apple is the only platform
* known to do this. */
#if defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__))
#define ECL_C_COMPATIBLE_VARIADIC_DISPATCH
#endif
......@@ -769,7 +769,7 @@ struct ecl_cfun { /* compiled function header */
cl_object block; /* descriptor of C code block for GC */
cl_objectfn entry; /* entry address */
#ifdef ECL_C_COMPATIBLE_VARIADIC_DISPATCH
/* Some architectures (i.e. ARM64 on iOS) use a different
/* Some architectures (i.e. ARM64 on iOS/Mac OS X) use a different
* calling convention for the fixed and variadic arguments of
* a variadic function. The only portable way to allow for
* function redefinitions during runtime in these
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment