link failure with linux libtool on macos
In the release candidate tarball, using libtool generated on a Linux system, the example encoder (and presumedly other applications) fails to link because of the duplicate inclusion of oc_cpu_flags_get() in both libtheoraenc and libtheoradec.
/bin/sh ../libtool --tag=CC --mode=link gcc -Wall -Wno-parentheses -O3 -fforce-addr -fomit-frame-pointer -finline-functions -funroll-loops -o encoder_example encoder_example-encoder_example.o ../lib/libtheoraenc.la ../lib/libtheoradec.la -logg -lvorbis -lm -lvorbisenc gcc -Wall -Wno-parentheses -O3 -fforce-addr -fomit-frame-pointer -finline-functions -funroll-loops -o .libs/encoder_example encoder_example-encoder_example.o ../lib/.libs/libtheoraenc.dylib ../lib/.libs/libtheoradec.dylib /usr/local/lib/libvorbisenc.2.0.2.dylib /usr/local/lib/libvorbis.0.3.1.dylib /usr/local/lib/libogg.0.5.3.dylib -lm /usr/bin/ld: multiple definitions of symbol _oc_cpu_flags_get ../lib/.libs/libtheoradec.dylib(single module) definition of _oc_cpu_flags_get ../lib/.libs/libtheoraenc.dylib(single module) definition of _oc_cpu_flags_get /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used symbol _oc_cpu_flags_get used from dynamic library ../lib/.libs/libtheoradec.dylib(single module) not from earlier dynamic library /usr/local/lib/libtheoraenc.1.dylib(single module) collect2: ld returned 1 exit status
This wasn't noticed building from svn because the native apple libtool doesn't show the problem.
Removing -single_module from the library link lines avoids the problem. This can be done either by setting LT_MULTI_MODULE=1 in the environment before calling configure (this is a work-around) or by changing the definition of single_module to an empty string on line 1171. This doesn't seem to harm the Linux x86_64 build, but I don't know what other implications it might have.