diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-07-23 01:42:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-23 02:42:26 +0200 |
commit | 8a7ed17ea29a5cc3f1fbf46cc848e3dad5b72f89 (patch) | |
tree | 28aa9ef2254738841de77b788001c9400a4004cb | |
parent | 3f8efe5289d88097ab49e7a8fcda763c2823376b (diff) |
Revert "fix(cli): add NAPI support in standalone mode (#24642)" (#24682)
This reverts commit 4e8f5875bc59ddfb84c8b0b26071a547b49823a9.
Reverting because, it caused a failure during v1.45.3 publish:
https://github.com/denoland/deno/actions/runs/10048730693/job/27773718095
CC @Mutefish0
-rw-r--r-- | cli/build.rs | 47 | ||||
-rw-r--r-- | cli/mainrt.rs | 1 | ||||
-rw-r--r-- | tests/integration/compile_tests.rs | 63 | ||||
-rw-r--r-- | tests/testdata/compile/napi/main.ts | 7 | ||||
-rw-r--r-- | tests/testdata/compile/napi/module.c | 68 |
5 files changed, 12 insertions, 174 deletions
diff --git a/cli/build.rs b/cli/build.rs index f131bc1dc..4fe6fd1ea 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -404,28 +404,16 @@ fn main() { ); #[cfg(target_os = "windows")] - { - println!( - "cargo:rustc-link-arg-bin=deno=/DEF:{}", - symbols_path.display() - ); - println!( - "cargo:rustc-link-arg-bin=denort=/DEF:{}", - symbols_path.display() - ); - } + println!( + "cargo:rustc-link-arg-bin=deno=/DEF:{}", + symbols_path.display() + ); #[cfg(target_os = "macos")] - { - println!( - "cargo:rustc-link-arg-bin=deno=-Wl,-exported_symbols_list,{}", - symbols_path.display() - ); - println!( - "cargo:rustc-link-arg-bin=denort=-Wl,-exported_symbols_list,{}", - symbols_path.display() - ); - } + println!( + "cargo:rustc-link-arg-bin=deno=-Wl,-exported_symbols_list,{}", + symbols_path.display() + ); #[cfg(target_os = "linux")] { @@ -438,30 +426,19 @@ fn main() { { println!("cargo:warning=Compiling with all symbols exported, this will result in a larger binary. Please use glibc 2.35 or later for an optimised build."); println!("cargo:rustc-link-arg-bin=deno=-rdynamic"); - println!("cargo:rustc-link-arg-bin=denort=-rdynamic"); } else { println!( "cargo:rustc-link-arg-bin=deno=-Wl,--export-dynamic-symbol-list={}", symbols_path.display() ); - println!( - "cargo:rustc-link-arg-bin=denort=-Wl,--export-dynamic-symbol-list={}", - symbols_path.display() - ); } } #[cfg(target_os = "android")] - { - println!( - "cargo:rustc-link-arg-bin=deno=-Wl,--export-dynamic-symbol-list={}", - symbols_path.display() - ); - println!( - "cargo:rustc-link-arg-bin=denort=-Wl,--export-dynamic-symbol-list={}", - symbols_path.display() - ); - } + println!( + "cargo:rustc-link-arg-bin=deno=-Wl,--export-dynamic-symbol-list={}", + symbols_path.display() + ); // To debug snapshot issues uncomment: // op_fetch_asset::trace_serializer(); diff --git a/cli/mainrt.rs b/cli/mainrt.rs index ef163dd00..aafbf7932 100644 --- a/cli/mainrt.rs +++ b/cli/mainrt.rs @@ -15,7 +15,6 @@ mod errors; mod file_fetcher; mod http_util; mod js; -mod napi; mod node; mod npm; mod resolver; diff --git a/tests/integration/compile_tests.rs b/tests/integration/compile_tests.rs index b4f8aa814..c902adfb2 100644 --- a/tests/integration/compile_tests.rs +++ b/tests/integration/compile_tests.rs @@ -1285,66 +1285,3 @@ fn standalone_jsr_dynamic_import() { output.assert_exit_code(0); output.assert_matches_text("Hello world\n"); } - -#[test] -fn standalone_require_node_addons() { - #[cfg(not(target_os = "windows"))] - { - let context = TestContextBuilder::for_jsr().build(); - let dir = context.temp_dir(); - let libout = dir.path().join("module.node"); - - let cc = context - .new_command() - .name("cc") - .current_dir(util::testdata_path()); - - #[cfg(not(target_os = "macos"))] - let c_module = cc - .arg("./compile/napi/module.c") - .arg("-shared") - .arg("-o") - .arg(&libout); - - #[cfg(target_os = "macos")] - let c_module = { - cc.arg("./compile/napi/module.c") - .arg("-undefined") - .arg("dynamic_lookup") - .arg("-shared") - .arg("-Wl,-no_fixup_chains") - .arg("-dynamic") - .arg("-o") - .arg(&libout) - }; - let c_module_output = c_module.output().unwrap(); - - assert!(c_module_output.status.success()); - - let exe = if cfg!(windows) { - dir.path().join("main.exe") - } else { - dir.path().join("main") - }; - - context - .new_command() - .env("NPM_CONFIG_REGISTRY", "https://registry.npmjs.org/") - .args_vec([ - "compile", - "--allow-read", - "--allow-ffi", - "--output", - &exe.to_string_lossy(), - "./compile/napi/main.ts", - ]) - .run() - .skip_output_check() - .assert_exit_code(0); - - let output = context.new_command().name(&exe).arg(&libout).run(); - - output.assert_exit_code(0); - output.assert_matches_text("{}\n"); - } -} diff --git a/tests/testdata/compile/napi/main.ts b/tests/testdata/compile/napi/main.ts deleted file mode 100644 index 91e8a0561..000000000 --- a/tests/testdata/compile/napi/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Module from "node:module"; - -const mod = new Module(""); - -const filepath = Deno.args[0]; - -console.log(mod.require(filepath)); diff --git a/tests/testdata/compile/napi/module.c b/tests/testdata/compile/napi/module.c deleted file mode 100644 index 4548aa37f..000000000 --- a/tests/testdata/compile/napi/module.c +++ /dev/null @@ -1,68 +0,0 @@ -typedef struct napi_module { - int nm_version; - unsigned int nm_flags; - const char* nm_filename; - void* nm_register_func; - const char* nm_modname; - void* nm_priv; - void* reserved[4]; -} napi_module; - -#ifdef _WIN32 -#define NAPI_EXTERN __declspec(dllexport) -#define NAPI_CDECL __cdecl -#else -#define NAPI_EXTERN __attribute__((visibility("default"))) -#define NAPI_CDECL -#endif - -NAPI_EXTERN void NAPI_CDECL -napi_module_register(napi_module* mod); - -#if defined(_MSC_VER) -#if defined(__cplusplus) -#define NAPI_C_CTOR(fn) \ - static void NAPI_CDECL fn(void); \ - namespace { \ - struct fn##_ { \ - fn##_() { fn(); } \ - } fn##_v_; \ - } \ - static void NAPI_CDECL fn(void) -#else // !defined(__cplusplus) -#pragma section(".CRT$XCU", read) -// The NAPI_C_CTOR macro defines a function fn that is called during CRT -// initialization. -// C does not support dynamic initialization of static variables and this code -// simulates C++ behavior. Exporting the function pointer prevents it from being -// optimized. See for details: -// https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-initialization?view=msvc-170 -#define NAPI_C_CTOR(fn) \ - static void NAPI_CDECL fn(void); \ - __declspec(dllexport, allocate(".CRT$XCU")) void(NAPI_CDECL * fn##_)(void) = \ - fn; \ - static void NAPI_CDECL fn(void) -#endif // defined(__cplusplus) -#else -#define NAPI_C_CTOR(fn) \ - static void fn(void) __attribute__((constructor)); \ - static void fn(void) -#endif - -#define NAPI_MODULE_TEST(modname, regfunc) \ - static napi_module _module = { \ - 1, \ - 0, \ - __FILE__, \ - regfunc, \ - #modname, \ - 0, \ - {0}, \ - }; \ - NAPI_C_CTOR(_register_##modname) { napi_module_register(&_module); } \ - -void* init(void* env __attribute__((unused)), void* exports) { - return exports; -} - -NAPI_MODULE_TEST(TEST_NAPI_MODULE_NAME, init) |