The mypyc-compiled extension modules fail to load on some systems due to missing linkage against the math library (libm). This causes undefined symbol errors for mathematical functions like sin, cos, tan, sqrt, exp, fmod, pow, and log.
bash[./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so]:
linux-vdso.so.1 (0x0000ffff9aa03000)
libc.so.6 => /lib64/libc.so.6 (0x0000ffff9a77c000)
/lib/ld-linux-aarch64.so.1 (0x0000ffff9a9b6000)
undefined symbol: sin (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: cos (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: tan (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: sqrt (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: exp (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: fmod (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: pow (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
undefined symbol: log (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)
Workaround is to use a sed patch to explicitly link the math library to all mypyc modules:
sed -i '/^ )$/a\
for ext in MYPYC_MODULES:\
if "m" not in ext.libraries:\
ext.libraries.append("m")
' "./setup.py"
Environment
Platform: aarch64-linux-gnu
Python version: 3.12
Architecture: ARM64
Commit: ba0a7e3
The mypyc-compiled extension modules fail to load on some systems due to missing linkage against the math library (libm). This causes undefined symbol errors for mathematical functions like sin, cos, tan, sqrt, exp, fmod, pow, and log.
bash[./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so]: linux-vdso.so.1 (0x0000ffff9aa03000) libc.so.6 => /lib64/libc.so.6 (0x0000ffff9a77c000) /lib/ld-linux-aarch64.so.1 (0x0000ffff9a9b6000) undefined symbol: sin (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: cos (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: tan (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: sqrt (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: exp (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: fmod (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: pow (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so) undefined symbol: log (./lib/python3.12/site-packages/charset_normalizer/md__mypyc.cpython-312-aarch64-linux-gnu.so)Workaround is to use a sed patch to explicitly link the math library to all mypyc modules:
Environment
Platform: aarch64-linux-gnu
Python version: 3.12
Architecture: ARM64
Commit: ba0a7e3