claude-prism/apps/desktop/src-tauri/symbols.map
delibae 37957aacb8 fix: resolve Windows project creation failure and Linux segfault
Windows (#101): Add explicit FS scopes to each permission in
default.json so Tauri's scope validator accepts Windows paths.
Remove silent .catch(() => {}) on mkdir/writeTextFile so errors
surface via toast instead of failing silently. Replace all
.split("/").pop() with .split(/[/\\]/).pop() (14 occurrences)
for correct path parsing on Windows.

Linux (#100): Add ELF linker version script (symbols.map) that
hides statically linked ICU/HarfBuzz/FreeType/Fontconfig/Graphite2
symbols from the dynamic symbol table. This prevents symbol
collisions with WebKit2GTK's own dynamic copies of these libraries,
which caused a segfault at startup. The static linking introduced
in v1.0.10 to fix #91 is preserved—ICU remains embedded in the
binary so it works across distros.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 15:50:11 +09:00

50 lines
974 B
Text

/* Version script to hide statically linked library symbols.
*
* Prevents symbol collisions between our statically linked
* ICU/HarfBuzz/FreeType/Fontconfig (from vcpkg, used by Tectonic)
* and the dynamically linked versions used by WebKit2GTK at runtime.
*
* Without this, the ELF dynamic linker resolves WebKit2GTK's ICU
* calls to our static symbols (different version), causing a segfault
* at startup. Fixes #100; preserves #91 fix (static ICU = no
* libicuuc.so.70 not-found error on newer distros).
*/
{
local:
/* ICU4C */
u_*;
ucnv_*;
ucol_*;
ures_*;
udata_*;
ucal_*;
udat_*;
unum_*;
uset_*;
ustr_*;
ubidi_*;
ubrk_*;
uidna_*;
uloc_*;
unorm_*;
unorm2_*;
utrans_*;
icu_*;
UCNV_*;
/* HarfBuzz */
hb_*;
/* FreeType */
FT_*;
ft_*;
/* Fontconfig */
Fc*;
/* Graphite2 */
gr_*;
/* libpng (often pulled in by FreeType) */
png_*;
};