From 02cbbecced9b1dd3ba971fcebbbcb13b2d5464d0 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Wed, 22 Apr 2026 22:20:16 +0900 Subject: [PATCH] build,simdjson: export symbols in component build In component builds on POSIX, simdjson.h defines SIMDJSON_DLLIMPORTEXPORT as empty. Combined with Chromium's default -fvisibility=hidden, this causes all simdjson symbols to be hidden in the resulting .so, leading to: ld.lld: error: undefined symbol: simdjson::internal::to_chars(...) ld.lld: error: undefined symbol: simdjson::internal::structural_or_whitespace_negated ld.lld: error: undefined symbol: simdjson::internal::error_codes ld.lld: error: undefined symbol: simdjson::get_active_implementation() Switch the simdjson component to default symbol visibility on POSIX similar to deps/uv. --- deps/simdjson/unofficial.gni | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deps/simdjson/unofficial.gni b/deps/simdjson/unofficial.gni index 826e5b4a517004..6847a3d300c905 100644 --- a/deps/simdjson/unofficial.gni +++ b/deps/simdjson/unofficial.gni @@ -18,5 +18,10 @@ template("simdjson_gn_build") { forward_variables_from(invoker, "*") public_configs = [ ":simdjson_config" ] sources = gypi_values.simdjson_sources + + if (is_component_build && is_posix) { + configs -= [ "//build/config/gcc:symbol_visibility_hidden" ] + configs += [ "//build/config/gcc:symbol_visibility_default" ] + } } }