Commit 0cff34e
committed
devel/libffi: fix build with lld 17
As reported in bug 273753#c12, devel/libffi fails to link with lld 17,
at least on i386:
libtool: link: cc -shared -fPIC -DPIC src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/.libs/tramp.o src/x86/.libs/ffi.o src/x86/.libs/sysv.o -O2 -fstack-protector-strong -Wl,--version-script -Wl,libffi.map -fstack-protector-strong -Wl,-soname -Wl,libffi.so.8 -o .libs/libffi.so.8.1.2
ld: error: version script assignment of 'LIBFFI_BASE_8.0' to symbol 'ffi_java_raw_call' failed: symbol not defined
ld: error: version script assignment of 'LIBFFI_CLOSURE_8.0' to symbol 'ffi_prep_java_raw_closure' failed: symbol not defined
ld: error: version script assignment of 'LIBFFI_CLOSURE_8.0' to symbol 'ffi_prep_java_raw_closure_loc' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because the symbols it complains about are not implemented on
i386, due to the FFI_NATIVE_RAW_API define being nonzero.
Fix it by adding more #if statements to libffi.map.in.
PR: 274056
Approved by: kbowling (maintainer)
MFH: 2023Q31 parent b26a85b commit 0cff34e
1 file changed
+23
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
0 commit comments