summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-07-23 01:42:26 +0100
committerGitHub <noreply@github.com>2024-07-23 02:42:26 +0200
commit8a7ed17ea29a5cc3f1fbf46cc848e3dad5b72f89 (patch)
tree28aa9ef2254738841de77b788001c9400a4004cb
parent3f8efe5289d88097ab49e7a8fcda763c2823376b (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.rs47
-rw-r--r--cli/mainrt.rs1
-rw-r--r--tests/integration/compile_tests.rs63
-rw-r--r--tests/testdata/compile/napi/main.ts7
-rw-r--r--tests/testdata/compile/napi/module.c68
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)