Skip to content

0.3.6 + all up to b62c902d: test suite is failing when source code is configured with --disable-static and LTO is used #61

@kloczek

Description

@kloczek

Looks like test suite is using some non-public symbols and it fails on linking when source code is configured with --disable-static and LTO is used.

/usr/bin/make  UnitTests
make[3]: Entering directory '/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile'
/usr/bin/g++ -DHAVE_CONFIG_H -I. -I..  -I..  -fno-rtti -fno-exceptions -DGTEST_HAS_RTTI=0 -DGTEST_HAS_EXCEPTIONS=0 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -c -o UnitTests-UT_RebufferModule.o `test -f 'modules/UT_RebufferModule.cpp' || echo './'`modules/UT_RebufferModule.cpp
make[3]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile'
make[3]: Entering directory '/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile'
/bin/sh ../libtool  --tag=CXX   --mode=link /usr/bin/g++ -fno-rtti -fno-exceptions -DGTEST_HAS_RTTI=0 -DGTEST_HAS_EXCEPTIONS=0 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -static -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -o UnitTests UnitTests-UT_RebufferModule.o libaudiofile.la ../gtest/libgtest.la
libtool: link: /usr/bin/g++ -fno-rtti -fno-exceptions -DGTEST_HAS_RTTI=0 -DGTEST_HAS_EXCEPTIONS=0 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Wl,-z -Wl,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -o UnitTests UnitTests-UT_RebufferModule.o  ./.libs/libaudiofile.so -lFLAC ../gtest/.libs/libgtest.a -lpthread -Wl,-rpath -Wl,/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/.libs
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `TestSourceModule::~TestSourceModule()':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:52: undefined reference to `Module::~Module()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `TestSourceModule::~TestSourceModule()':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:52: undefined reference to `Module::~Module()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `TestSinkModule::~TestSinkModule()':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:87: undefined reference to `Module::~Module()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `TestSinkModule::~TestSinkModule()':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:87: undefined reference to `Module::~Module()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `testVariableToFixed(bool)':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:281: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:282: undefined reference to `RebufferModule::RebufferModule(RebufferModule::Direction, int, int, bool)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:92: undefined reference to `Module::Module()'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:284: undefined reference to `Module::setSink(Module*)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:291: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:294: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `testFixedToVariable(bool)':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:138: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:139: undefined reference to `RebufferModule::RebufferModule(RebufferModule::Direction, int, int, bool)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:58: undefined reference to `Module::Module()'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:142: undefined reference to `Module::setSource(Module*)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:149: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:152: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /tmp/cckKJAUP.lto.o: in function `testBufferingAfterShortChunk(bool)':
/home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:220: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:221: undefined reference to `RebufferModule::RebufferModule(RebufferModule::Direction, int, int, bool)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:58: undefined reference to `Module::Module()'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:224: undefined reference to `Module::setSource(Module*)'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:231: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /home/tkloczko/rpmbuild/BUILD/audiofile-audiofile-0.3.6/libaudiofile/modules/UT_RebufferModule.cpp:234: undefined reference to `AudioFormat::bytesPerFrame() const'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV14TestSinkModule+0x20): undefined reference to `Module::name() const'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV14TestSinkModule+0x28): undefined reference to `Module::describe()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV14TestSinkModule+0x30): undefined reference to `Module::maxPull()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV14TestSinkModule+0x38): undefined reference to `Module::maxPush()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV14TestSinkModule+0x40): undefined reference to `Module::runPull()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV16TestSourceModule+0x20): undefined reference to `Module::name() const'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV16TestSourceModule+0x28): undefined reference to `Module::describe()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV16TestSourceModule+0x30): undefined reference to `Module::maxPull()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV16TestSourceModule+0x38): undefined reference to `Module::maxPush()'
/usr/bin/ld: /tmp/cckKJAUP.lto.o:(.data.rel.ro._ZTV16TestSourceModule+0x58): undefined reference to `Module::runPush()'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:816: UnitTests] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions