Skip to content

Support ICU 76.1. Build fails on macOS. Runtime missing symbols on Linux #2152

@cho-m

Description

@cho-m

Seen while updating to new ICU 76.1 release in Homebrew Homebrew/homebrew-core#193114

Might be related to unicode-org/icu@199bc82. May need a direct icu-i18n in

sile/configure.ac

Lines 149 to 150 in 3b62dab

PKG_CHECK_MODULES(ICU, icu-uc icu-io, [
with_icu=yes

On macOS, build fails with:

libtool: link: clang  -o .libs/justenoughicu.so -bundle  .libs/justenoughicu_la-justenoughicu.o .libs/justenoughicu_la-compat-5.3.o   -L/opt/homebrew/opt/luajit/lib -L/opt/homebrew/Cellar/icu4c@76/76.1/lib -licuuc -licuio -lluajit-5.1  -g -O2  
libtool: link: ar cr .libs/svg.a  svg_la-svg.o svg_la-compat-5.3.o
Undefined symbols for architecture arm64:
  "_ucol_close_76", referenced from:
      _je_icu_collation_destroy in justenoughicu_la-justenoughicu.o

On Linux, sile builds but then fails at runtime:

error loading module 'justenoughicu' from file '/home/linuxbrew/.linuxbrew/Cellar/sile/0.15.5_2/lib/sile/justenoughicu.so':
	/home/linuxbrew/.linuxbrew/Cellar/sile/0.15.5_2/lib/sile/justenoughicu.so: undefined symbol: ucol_strcollUTF8_76
stack traceback:
	[C]: in ?
	[C]: in ?
	[C]: in function 'require'
	...llar/sile/0.15.5_2/share/sile/core/utilities/numbers.lua:4: in main chunk
	[C]: in function 'require'
	.../Cellar/sile/0.15.5_2/share/sile/core/utilities/init.lua:818: in main chunk
	[C]: in function 'require'
	....linuxbrew/Cellar/sile/0.15.5_2/share/sile/core/sile.lua:64: in main chunk
	[C]: in function 'require'

I believe these symbols are part of libicui18n.{dylib,so}.

Metadata

Metadata

Assignees

Labels

bugSoftware bug issue

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions