From 3418d7e1d3ac64e0b0d9b142767492f8270f4bd9 Mon Sep 17 00:00:00 2001 From: Paolo Insogna Date: Tue, 14 Apr 2026 14:22:12 +0100 Subject: [PATCH 1/4] build: fix ffi dependency compilation Signed-off-by: Paolo Insogna --- deps/libffi/libffi.gyp | 1 + node.gyp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/deps/libffi/libffi.gyp b/deps/libffi/libffi.gyp index 00a6bc1a3a2b89..e52c3c99927d8f 100644 --- a/deps/libffi/libffi.gyp +++ b/deps/libffi/libffi.gyp @@ -96,6 +96,7 @@ { 'target_name': 'libffi', 'type': 'static_library', + 'hard_dependency': 1, 'cflags': ['-fvisibility=hidden'], 'xcode_settings': { 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', diff --git a/node.gyp b/node.gyp index b62e4f6fe3404c..1286003c7a0557 100644 --- a/node.gyp +++ b/node.gyp @@ -1015,6 +1015,10 @@ 'include_dirs': [ '<(PRODUCT_DIR)/obj/libffi', ], + }, 'OS=="mac"', { + 'include_dirs': [ + '<(PRODUCT_DIR)/obj/deps/libffi/libffi.gen', + ], }, { 'include_dirs': [ '<(PRODUCT_DIR)/obj.target/libffi/geni', @@ -1093,6 +1097,10 @@ 'include_dirs': [ '<(PRODUCT_DIR)/obj/libffi', ], + }, 'OS=="mac"', { + 'include_dirs': [ + '<(PRODUCT_DIR)/obj/deps/libffi/libffi.gen', + ], }, { 'include_dirs': [ '<(PRODUCT_DIR)/obj.target/libffi/geni', From 83051999ddd2bc5c219bb8c0d889f1d98b00d389 Mon Sep 17 00:00:00 2001 From: Paolo Insogna Date: Tue, 14 Apr 2026 15:20:04 +0100 Subject: [PATCH 2/4] fixup Signed-off-by: Paolo Insogna --- deps/libffi/libffi.gyp | 12 ++++++------ node.gyp | 30 ------------------------------ 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/deps/libffi/libffi.gyp b/deps/libffi/libffi.gyp index e52c3c99927d8f..e057d71b58c0d5 100644 --- a/deps/libffi/libffi.gyp +++ b/deps/libffi/libffi.gyp @@ -107,7 +107,7 @@ ], 'include_dirs': [ 'include', - '<(INTERMEDIATE_DIR)', + '<(SHARED_INTERMEDIATE_DIR)/libffi', ], 'sources': [ '<@(libffi_sources)', @@ -124,15 +124,15 @@ 'src/x86/ffitarget.h', ], 'outputs': [ - '<(INTERMEDIATE_DIR)/ffi.h', - '<(INTERMEDIATE_DIR)/fficonfig.h', - '<(INTERMEDIATE_DIR)/ffitarget.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/ffi.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/fficonfig.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/ffitarget.h', ], 'action': [ '<(python)', 'generate-headers.py', '--output-dir', - '<(INTERMEDIATE_DIR)', + '<(SHARED_INTERMEDIATE_DIR)/libffi', ], }, ], @@ -213,7 +213,7 @@ 'direct_dependent_settings': { 'include_dirs': [ 'include', - '<(INTERMEDIATE_DIR)', + '<(SHARED_INTERMEDIATE_DIR)/libffi', ], 'defines': [ 'FFI_STATIC_BUILD', diff --git a/node.gyp b/node.gyp index 1286003c7a0557..6a21e715c89d22 100644 --- a/node.gyp +++ b/node.gyp @@ -1010,21 +1010,6 @@ 'dependencies': [ 'deps/libffi/libffi.gyp:libffi', ], - 'conditions': [ - [ 'OS=="win"', { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj/libffi', - ], - }, 'OS=="mac"', { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj/deps/libffi/libffi.gen', - ], - }, { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj.target/libffi/geni', - ], - }], - ], }], ], }], @@ -1092,21 +1077,6 @@ 'dependencies': [ 'deps/libffi/libffi.gyp:libffi', ], - 'conditions': [ - [ 'OS=="win"', { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj/libffi', - ], - }, 'OS=="mac"', { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj/deps/libffi/libffi.gen', - ], - }, { - 'include_dirs': [ - '<(PRODUCT_DIR)/obj.target/libffi/geni', - ], - }], - ], }], ], }], From 94677570c62fc79f067add110c281fefad3d8bb7 Mon Sep 17 00:00:00 2001 From: Paolo Insogna Date: Tue, 14 Apr 2026 16:29:09 +0100 Subject: [PATCH 3/4] fixup Signed-off-by: Paolo Insogna --- deps/libffi/libffi.gyp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deps/libffi/libffi.gyp b/deps/libffi/libffi.gyp index e057d71b58c0d5..eb9725c5cb4bfd 100644 --- a/deps/libffi/libffi.gyp +++ b/deps/libffi/libffi.gyp @@ -184,8 +184,8 @@ 'include/ffi_cfi.h', 'src/aarch64/internal.h', 'src/aarch64/win64_armasm.S', - '<(INTERMEDIATE_DIR)/ffi.h', - '<(INTERMEDIATE_DIR)/fficonfig.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/ffi.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/fficonfig.h', ], 'outputs': [ '<(INTERMEDIATE_DIR)/win64_armasm.obj', @@ -201,6 +201,8 @@ 'include', '--include-dir', 'src/aarch64', + '--include-dir', + '<(SHARED_INTERMEDIATE_DIR)/libffi', '--define', 'FFI_STATIC_BUILD', '--assemble', From c68e4f7a02206b970af9be2aebd9b3957e0c6d04 Mon Sep 17 00:00:00 2001 From: Paolo Insogna Date: Tue, 14 Apr 2026 17:28:52 +0100 Subject: [PATCH 4/4] fixup Signed-off-by: Paolo Insogna --- deps/libffi/libffi.gyp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deps/libffi/libffi.gyp b/deps/libffi/libffi.gyp index eb9725c5cb4bfd..a6ca819188ef6f 100644 --- a/deps/libffi/libffi.gyp +++ b/deps/libffi/libffi.gyp @@ -147,8 +147,8 @@ 'include/ffi_cfi.h', 'src/x86/asmnames.h', 'src/x86/win64_intel.S', - '<(INTERMEDIATE_DIR)/ffi.h', - '<(INTERMEDIATE_DIR)/fficonfig.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/ffi.h', + '<(SHARED_INTERMEDIATE_DIR)/libffi/fficonfig.h', ], 'outputs': [ '<(INTERMEDIATE_DIR)/win64_intel.asm', @@ -164,6 +164,8 @@ 'include', '--include-dir', 'src/x86', + '--include-dir', + '<(SHARED_INTERMEDIATE_DIR)/libffi', '--define', 'FFI_STATIC_BUILD', ],