#+(and x86-64 darwin) "-arch" #+(and x86-64 darwin) "x86_64"
"stack-alignment-offset.c" "-o" "stack-alignment-offset")
#+(and x86-64 darwin) "-arch" #+(and x86-64 darwin) "x86_64"
"stack-alignment-offset.c" "-o" "stack-alignment-offset")
;;;; Build the tool again, this time as a shared object, and load it
(run "cc" "stack-alignment-offset.c"
;;;; Build the tool again, this time as a shared object, and load it
(run "cc" "stack-alignment-offset.c"
#+(and x86-64 darwin) "-arch" #+(and x86-64 darwin) "x86_64"
#+darwin "-bundle" #-darwin "-shared"
"-o" "stack-alignment-offset.so")
#+(and x86-64 darwin) "-arch" #+(and x86-64 darwin) "x86_64"
#+darwin "-bundle" #-darwin "-shared"
"-o" "stack-alignment-offset.so")
(define-alien-routine stack-alignment-offset int (alignment int))
(define-alien-routine trampoline int (callback (function int)))
(define-alien-routine stack-alignment-offset int (alignment int))
(define-alien-routine trampoline int (callback (function int)))
(assert (= *good-offset* (trampoline (alien-lambda int ()
(stack-alignment-offset *required-alignment*))))))
(assert (= *good-offset* (trampoline (alien-lambda int ()
(stack-alignment-offset *required-alignment*))))))