Skip to content

Commit ad0baf3

Browse files
committed
statically link libffi from the truffle dist
1 parent f376322 commit ad0baf3

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

graalpython/com.oracle.graal.python.cext/CMakeLists.txt

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -365,16 +365,39 @@ set(CTYPES_SRC
365365
"${SRC_DIR}/modules/_ctypes/callproc.c"
366366
"${SRC_DIR}/modules/_ctypes/cfield.c"
367367
"${SRC_DIR}/modules/_ctypes/ctypes.h"
368-
"${SRC_DIR}/modules/_ctypes/malloc_closure.c"
369368
"${SRC_DIR}/modules/_ctypes/stgdict.c"
370369
)
371370
native_module("_ctypes" TRUE "${CTYPES_SRC}")
372371
target_include_directories("_ctypes" PUBLIC "${SRC_DIR}/modules/_ctypes")
373-
find_library(FFI_LIBRARY NAMES ffi)
374-
if (NOT FFI_LIBRARY)
375-
message(FATAL_ERROR "libffi not found")
376-
endif()
372+
find_library(FFI_LIBRARY
373+
NAMES "ffi.lib" "libffi.a"
374+
PATHS "${LIBFFI_DIST}"
375+
REQUIRED
376+
NO_DEFAULT_PATH
377+
NO_PACKAGE_ROOT_PATH
378+
NO_CMAKE_PATH
379+
NO_CMAKE_ENVIRONMENT_PATH
380+
NO_SYSTEM_ENVIRONMENT_PATH
381+
NO_CMAKE_SYSTEM_PATH
382+
NO_CMAKE_INSTALL_PREFIX
383+
)
384+
find_path(FFI_INCLUDE
385+
NAMES "ffi.h"
386+
PATHS "${LIBFFI_DIST}"
387+
PATH_SUFFIXES "include"
388+
REQUIRED
389+
NO_DEFAULT_PATH
390+
NO_PACKAGE_ROOT_PATH
391+
NO_CMAKE_PATH
392+
NO_CMAKE_ENVIRONMENT_PATH
393+
NO_SYSTEM_ENVIRONMENT_PATH
394+
NO_CMAKE_SYSTEM_PATH
395+
NO_CMAKE_INSTALL_PREFIX
396+
)
377397
target_link_libraries("_ctypes" PRIVATE ${FFI_LIBRARY})
398+
399+
target_include_directories("_ctypes" BEFORE PRIVATE ${FFI_INCLUDE})
400+
378401
if(WIN32)
379402
target_compile_definitions("_ctypes" PRIVATE
380403
MS_WIN32

mx.graalpython/suite.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,7 @@
703703
"TRUFFLE_NFI_H_INC": "<path:com.oracle.truffle.nfi.native>/include",
704704
"GRAALPY_PARENT_DIR": "<suite_parent:graalpython>",
705705
"GRAALPY_EXT": "<graalpy_ext>",
706+
"LIBFFI_DIST": "<output_root:truffle:LIBFFI_DIST>/<os>-<arch>/<multitarget_libc_selection>/"
706707
},
707708
"results": [
708709
"bin/<lib:python-native>",
@@ -725,6 +726,7 @@
725726
"buildDependencies": [
726727
"graalpy-pyconfig",
727728
"com.oracle.graal.python",
729+
"truffle:LIBFFI_DIST",
728730
],
729731
},
730732

0 commit comments

Comments
 (0)