I tried currently with the stable build and the
.a produced seems bogus, on macos it works as intended, anybody willing to point me where I should look at?
$ nm target/release/librav1e.a | grep rav1e_ 0000000000000000 T rav1e_config_default 0000000000000000 T rav1e_config_parse 0000000000000000 T rav1e_config_unref 0000000000000000 T rav1e_container_sequence_header 0000000000000000 T rav1e_container_sequence_header_unref 0000000000000000 T rav1e_context_new 0000000000000000 T rav1e_context_unref 0000000000000000 T rav1e_frame_fill_plane 0000000000000000 T rav1e_frame_new 0000000000000000 T rav1e_frame_unref 0000000000000000 T rav1e_packet_unref 0000000000000000 T rav1e_receive_packet 0000000000000000 T rav1e_send_frame
$ nm target/release/librav1e.so | grep rav1e_ 0000000000011340 T rav1e_config_default 0000000000011440 T rav1e_config_parse 0000000000011430 T rav1e_config_unref 0000000000011a20 T rav1e_container_sequence_header 0000000000011a70 T rav1e_container_sequence_header_unref 0000000000011550 T rav1e_context_new 0000000000011600 T rav1e_context_unref 0000000000011a80 T rav1e_frame_fill_plane 00000000000117d0 T rav1e_frame_new 0000000000011810 T rav1e_frame_unref 0000000000011a10 T rav1e_packet_unref 00000000000118c0 T rav1e_receive_packet 0000000000011830 T rav1e_send_frame
Seems good to me. Are you complaining about offset being shown as 0?
the linker complains
complains how? Are you sure you pass your libraries to the linker in the right order?
I'm sure, the same code on macos works
switching from staticlib to cdylib works as well
it is only 1 library and the linker complains only about those symbols
dropping lto seems to fix it
using LTO would explain it, as the static library would get filled with LLVM bytecode rather than actual machine code
but the code’s there nevertheless
and the linker in use would not use it ^^;
let see if travis now is happy and I can go back chasing other funny bugs ^^
This is getting quite strange, I cannot it to link again and the lto is still off...
simple_encoding.c:(.text+0x3e): undefined reference to `rav1e_config_default' simple_encoding.c:(.text+0x60): undefined reference to `rav1e_config_parse' simple_encoding.c:(.text+0x6c): undefined reference to `rav1e_context_new' simple_encoding.c:(.text+0x7c): undefined reference to `rav1e_frame_new' simple_encoding.c:(.text+0xa8): undefined reference to `rav1e_send_frame' simple_encoding.c:(.text+0xda): undefined reference to `rav1e_receive_packet' simple_encoding.c:(.text+0x102): undefined reference to `rav1e_packet_unref' simple_encoding.c:(.text+0x118): undefined reference to `rav1e_frame_unref' simple_encoding.c:(.text+0x124): undefined reference to `rav1e_context_unref' simple_encoding.c:(.text+0x130): undefined reference to `rav1e_config_unref' collect2: error: ld returned 1 exit status
if somebody is willing to try here is the code ^^,
make examples should take care of everything
--print native-static-libs is the problem...
no apparently not