From fa22956a8616c34482b10bb3ae1aed76ad017c3e Mon Sep 17 00:00:00 2001 From: Luke Channings <461449+LukeChannings@users.noreply.github.com> Date: Sat, 15 Oct 2022 16:21:04 +0100 Subject: refactor(build): better handle old glibc (#16238) Follow-up to #16208. - Refactors build.rs behaviour to use `-exported_symbols_list` / `--export-dynamic-symbol-list` - Since all build systems now rely on a symbols list file, I have added `generate_exported_symbols_list`, which derives the symbol list file depending on the platform, which makes `tools/napi/generate_link_win.js` redundant. - Fixes a missed instance of `i8` being used instead of `c_char` Co-authored-by: Divy Srivastava --- tools/napi/generate_symbols_lists.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 tools/napi/generate_symbols_lists.js (limited to 'tools/napi/generate_symbols_lists.js') diff --git a/tools/napi/generate_symbols_lists.js b/tools/napi/generate_symbols_lists.js new file mode 100755 index 000000000..3e41c3f06 --- /dev/null +++ b/tools/napi/generate_symbols_lists.js @@ -0,0 +1,20 @@ +#!/usr/bin/env -S deno run --unstable --allow-read --allow-write +// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. + +import exports from "../../cli/napi_sym/symbol_exports.json" assert { + type: "json", +}; + +for await (const os of ["linux", "macos", "windows"]) { + let def = os === "windows" ? "LIBRARY\nEXPORTS\n" : ""; + const prefix = os === "windows" ? " " : os === "macos" ? "_" : ""; + for (const symbol of exports.symbols) { + def += `${prefix}${symbol}\n`; + } + + const defUrl = new URL( + `../../cli/generated_symbol_exports_list_${os}.def`, + import.meta.url, + ); + await Deno.writeTextFile(defUrl.pathname, def, { create: true }); +} -- cgit v1.2.3