diff --git a/pglite-wasm/excluded.pglite.imports b/pglite-wasm/excluded.pglite.imports deleted file mode 100644 index e0d801f2348b5..0000000000000 --- a/pglite-wasm/excluded.pglite.imports +++ /dev/null @@ -1,32 +0,0 @@ -__indirect_function_table -invoke_di -invoke_didi -invoke_dii -invoke_i -invoke_ii -invoke_iii -invoke_iiii -invoke_iiiii -invoke_iiiiii -invoke_iiiiiii -invoke_iiiiiiii -invoke_iij -invoke_ij -invoke_ijj -invoke_j -invoke_ji -invoke_jiiiii -invoke_v -invoke_vi -invoke_vii -invoke_viii -invoke_viiidi -invoke_viiii -invoke_viiiii -invoke_viiiiii -invoke_viiiiii -invoke_viiiiiiii -invoke_viiiiiiiii -invoke_viiji -invoke_vij -invoke_vijiiidjiiii diff --git a/src/backend/Makefile b/src/backend/Makefile index 1c04efeab0099..9825ef4349e74 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -92,12 +92,20 @@ postgres: $(OBJS) # Extensions use functions from the core PG. These need to be exported by the emscripten compiler. # The following target gathers all extension imports + the default ones (included.pglite.imports), -# excludes the one in excluded.pglite.imports and adds a leading _ to each. +# excludes (invoke_* and __indirect_function_table) (Emscripten runtime trampolines) +# exlcudes defined excludes, libpq exports, and libossp-uuid exports +# and adds a leading _ to each. pglite-exported-functions: $(MKDIR_P) '$(emscripten_imports_dir)' - cat $(top_builddir)/pglite-wasm/excluded.*.imports $(top_builddir)/src/interfaces/libpq/exports.list $(LIB_EXPORTS_DIR)/libossp-uuid.exports | sort -u > '$(top_builddir)/pglite-wasm/excluded.imports' + @# Build the exclusion list + cat $(top_builddir)/src/interfaces/libpq/exports.list $(LIB_EXPORTS_DIR)/libossp-uuid.exports | sort -u > '$(top_builddir)/pglite-wasm/excluded.imports' + @# Generate exported_functions.txt: + @# 1. Filter out invoke_* and __indirect_function_table (Emscripten runtime, never export) + @# 2. Filter out symbols in excluded.imports (build in previous step) + @# 3. Add underscore prefix cat $(DESTDIR)$(emscripten_extension_imports_dir)/*.imports '$(top_builddir)/pglite-wasm/included.pglite.imports' | \ sort -u | \ + grep -v -E '^(invoke_|__indirect_function_table)' | \ grep -Fvx -f '$(top_builddir)/pglite-wasm/excluded.imports' | \ sed 's/^/_/' \ > '$(emscripten_imports_dir)/exported_functions.txt'