After switching to the llvm backend, I'm seeing a problem with a library built with libtool. These warnings are generated:
libtool: link: /home/ubuntu/emsdk/upstream/emscripten/emcc -shared .libs/check.o .libs/check_error.o .libs/check_list.o .libs/check_log.o .libs/check_msg.o .libs/check_pack.o .libs/check_print.o .libs/check_run.o .libs/check_str.o .libs/libcheck.lax/libcompat.a/fpclassify.o .libs/libcheck.lax/libcompat.a/libcompat.o .libs/libcheck.lax/libcompat.a/timer_create.o .libs/libcheck.lax/libcompat.a/timer_delete.o .libs/libcheck.lax/libcompat.a/timer_settime.o -lm -lc -O2 -Wl,-soname -Wl,libcheck.so.0 -Wl,-version-script -Wl,.libs/libcheck.ver -o .libs/libcheck.so.0.0.0
shared:WARNING: Assuming object file output in the absence of `-c`, based on output filename. Please add with `-c` or `-r` to avoid this warning
shared:WARNING: ignoring unsupported linker flag: `-soname`
shared:WARNING: ignoring unsupported linker flag: `libcheck.so.0`
shared:WARNING: ignoring unsupported linker flag: `-version-script`
shared:WARNING: ignoring unsupported linker flag: `.libs/libcheck.ver`
And the generated library has symbols defined from the standard libraries. E.g.
~/emsdk/upstream/bin/llvm-nm .libs/libcheck.so | grep unlink
0000840f T unlink
where with the old backend these would be U. This causes link errors due to duplicate symbols when later linking against the library.
Looks like the linker cli is incompatible with the old backend. Is there a work-around?