rdlibtool: lconf: found "/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/libtool". rdlibtool: link: ln -s /dev/null .libs/libpreludedbcpp.a.disabled rdlibtool: error logged in slbt_exec_link_create_dep_file(), line 962: path not found: ../../src/.libs/.libs/libpreludedb.a.slibtool.deps. rdlibtool: < returned to > slbt_exec_link_create_library(), line 1291. rdlibtool: < returned to > slbt_exec_link(), line 1868. make[4]: *** [Makefile:1246: libpreludedbcpp.la] Error 2 ------------------------------------------------------------------- This is an unstable amd64 chroot image at a tinderbox (==build bot) name: 17.1_desktop_gnome_systemd-20210318-090503 ------------------------------------------------------------------- gcc-config -l: [1] x86_64-pc-linux-gnu-7.3.1 [2] x86_64-pc-linux-gnu-10.2.0 * clang version 11.1.0 Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/lib/llvm/11/bin /usr/lib/llvm/11 11.1.0 Python 3.8.8 Available Ruby profiles: [1] ruby26 (with Rubygems) [2] ruby27 (with Rubygems) * Available Rust versions: [1] rust-1.50.0 * The following VMs are available for generation-2: 1) IcedTea JDK 3.16.0 [icedtea-bin-8] 2) OpenJDK 8.282_p08 [openjdk-8] *) AdoptOpenJDK 8.282_p08 [openjdk-bin-8] Available Java Virtual Machines: [1] icedtea-bin-8 [2] openjdk-8 [3] openjdk-bin-8 system-vm The Glorious Glasgow Haskell Compilation System, version 8.10.4 timestamp(s) of HEAD at this tinderbox image: /var/db/repos/gentoo Fri Mar 26 02:35:45 UTC 2021 emerge -qpvO dev-libs/libpreludedb [ebuild N ] dev-libs/libpreludedb-5.2.0 USE="-mysql -postgres -python -sqlite" PYTHON_TARGETS="python3_8 -python3_7"
Created attachment 693906 [details] emerge-info.txt
Created attachment 693909 [details] dev-libs:libpreludedb-5.2.0:20210326-032006.log
Created attachment 693912 [details] emerge-history.txt
Created attachment 693915 [details] environment
Created attachment 693918 [details] etc.portage.tar.bz2
Created attachment 693921 [details] logs.tar.bz2
Created attachment 693924 [details] temp.tar.bz2
dev-libs/libprelude also fails here.
They are both failing because they incorrectly link to foo/.libs/bar.la instead of foo/bar.la. Only the $(LIBTOOL) implementation should touch the .libs directory ideally.
In libprelude: sed -e 's/\.libs//' -i "${S}/bindings/c++/Makefile.am" || die "sed failed" sed -e 's/\.libs//' -i "${S}/bindings/lua/Makefile.am" || die "sed failed" In libpreludedb: sed -e 's/\.libs//' -i "${S}/bindings/c++/Makefile.am" || die "sed failed" And now libpreludedb has another instance of -no-undefined revealing undefined references, anyone understand what should be done to resolve this? rdlibtool --tag=CXX --mode=link x86_64-pc-linux-gnu-g++ -O2 -pipe -no-undefined -version-info 6:1:4 -Wl,-O1 -Wl,--as-needed -z relro -z now -o libpreludedbcpp.la -rpath /usr/lib64 libpreludedbcpp_la-preludedb.lo libpreludedbcpp_la-preludedb-sql.lo libpreludedbcpp_la-preludedb-error.lo ../../src//libpreludedb.la rdlibtool: lconf: {.name="libtool"}. rdlibtool: fdcwd: {.fdcwd=AT_FDCWD, .realpath="/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/bindings/c++"}. rdlibtool: lconf: fstatat(AT_FDCWD,".",...) = 0 {.st_dev = 65026, .st_ino = 140924666}. rdlibtool: lconf: openat(AT_FDCWD,"libtool",O_RDONLY,0) = -1 [ENOENT]. rdlibtool: lconf: openat(AT_FDCWD,"../",O_DIRECTORY,0) = 5. rdlibtool: lconf: fstat(5,...) = 0 {.st_dev = 65026, .st_ino = 102418464}. rdlibtool: lconf: openat(5,"libtool",O_RDONLY,0) = -1 [ENOENT]. rdlibtool: lconf: openat(5,"../",O_DIRECTORY,0) = 6. rdlibtool: lconf: fstat(6,...) = 0 {.st_dev = 65026, .st_ino = 135568006}. rdlibtool: lconf: openat(6,"libtool",O_RDONLY,0) = 5. rdlibtool: lconf: found "/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/libtool". rdlibtool: link: ln -s /dev/null .libs/libpreludedbcpp.a.disabled rdlibtool: link: x86_64-pc-linux-gnu-g++ .libs/libpreludedbcpp_la-preludedb.o .libs/libpreludedbcpp_la-preludedb-sql.o .libs/libpreludedbcpp_la-preludedb-error.o -O2 -pipe -Wl,-O1 -Wl,--as-needed -z relro -z now -L../../src//.libs -lpreludedb -L/usr/lib64 -lprelude -lgnutls -lpcre -lltdl -ldl -shared -fPIC -Wl,--no-undefined -Wl,-soname -Wl,libpreludedbcpp.so.2 -o .libs/libpreludedbcpp.so.2.4.1 /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::ResultValues::ResultValuesRow::get(int)': preludedb.cxx:(.text+0x55f): undefined reference to `Prelude::IDMEFValue::IDMEFValue(idmef_value*)' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::ResultValues::ResultValuesRow::toString[abi:cxx11]()': preludedb.cxx:(.text+0x668): undefined reference to `Prelude::IDMEFValue::isNull() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x6a3): undefined reference to `Prelude::IDMEFValue::~IDMEFValue()' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x6c4): undefined reference to `Prelude::IDMEFValue::getType() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x6db): undefined reference to `Prelude::IDMEFValue::toString[abi:cxx11]() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x710): undefined reference to `Prelude::IDMEFValue::getType() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::getValues(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, Prelude::IDMEFCriteria const*, bool, int, int)': preludedb.cxx:(.text+0xcd9): undefined reference to `Prelude::IDMEFCriteria::operator idmef_criteria*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::getAlertIdents(Prelude::IDMEFCriteria*, int, int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': preludedb.cxx:(.text+0xda9): undefined reference to `Prelude::IDMEFCriteria::operator idmef_criteria*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::getHeartbeatIdents(Prelude::IDMEFCriteria*, int, int, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)': preludedb.cxx:(.text+0xe69): undefined reference to `Prelude::IDMEFCriteria::operator idmef_criteria*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::insert(Prelude::IDMEF&)': preludedb.cxx:(.text+0x10db): undefined reference to `Prelude::IDMEF::operator idmef_object*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::getAlert(unsigned long)': preludedb.cxx:(.text+0x113b): undefined reference to `Prelude::IDMEF::IDMEF(idmef_object*)' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::getHeartbeat(unsigned long)': preludedb.cxx:(.text+0x119b): undefined reference to `Prelude::IDMEF::IDMEF(idmef_object*)' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::remove(Prelude::IDMEFCriteria*)': preludedb.cxx:(.text+0x11d0): undefined reference to `Prelude::IDMEFCriteria::operator idmef_criteria*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::updateFromList(std::vector<Prelude::IDMEFPath, std::allocator<Prelude::IDMEFPath> > const&, std::vector<Prelude::IDMEFValue, std::allocator<Prelude::IDMEFValue> > const&, PreludeDB::DB::ResultIdents&)': preludedb.cxx:(.text+0x13b5): undefined reference to `Prelude::IDMEFPath::operator idmef_path*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x13c9): undefined reference to `Prelude::IDMEFValue::operator idmef_value*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::updateFromList(std::vector<Prelude::IDMEFPath, std::allocator<Prelude::IDMEFPath> > const&, std::vector<Prelude::IDMEFValue, std::allocator<Prelude::IDMEFValue> > const&, std::vector<unsigned long long, std::allocator<unsigned long long> >)': preludedb.cxx:(.text+0x14d5): undefined reference to `Prelude::IDMEFPath::operator idmef_path*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x14e9): undefined reference to `Prelude::IDMEFValue::operator idmef_value*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::DB::update(std::vector<Prelude::IDMEFPath, std::allocator<Prelude::IDMEFPath> > const&, std::vector<Prelude::IDMEFValue, std::allocator<Prelude::IDMEFValue> > const&, Prelude::IDMEFCriteria*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int, int)': preludedb.cxx:(.text+0x15f8): undefined reference to `Prelude::IDMEFCriteria::operator idmef_criteria*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x163d): undefined reference to `Prelude::IDMEFPath::operator idmef_path*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: preludedb.cxx:(.text+0x1651): undefined reference to `Prelude::IDMEFValue::operator idmef_value*() const' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::PreludeDBError::~PreludeDBError()': preludedb.cxx:(.text._ZN9PreludeDB14PreludeDBErrorD2Ev[_ZN9PreludeDB14PreludeDBErrorD5Ev]+0x3): undefined reference to `vtable for Prelude::PreludeError' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o: in function `PreludeDB::PreludeDBError::~PreludeDBError()': preludedb.cxx:(.text._ZN9PreludeDB14PreludeDBErrorD0Ev[_ZN9PreludeDB14PreludeDBErrorD5Ev]+0x3): undefined reference to `vtable for Prelude::PreludeError' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb.o:(.data.rel.ro._ZTIN9PreludeDB14PreludeDBErrorE[_ZTIN9PreludeDB14PreludeDBErrorE]+0x10): undefined reference to `typeinfo for Prelude::PreludeError' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb-error.o: in function `PreludeDB::PreludeDBError::PreludeDBError(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': preludedb-error.cxx:(.text+0xb): undefined reference to `Prelude::PreludeError::PreludeError()' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb-error.o: in function `PreludeDB::PreludeDBError::PreludeDBError(int)': preludedb-error.cxx:(.text+0x73): undefined reference to `Prelude::PreludeError::PreludeError()' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb-error.o: in function `Prelude::PreludeError::~PreludeError()': preludedb-error.cxx:(.text._ZN7Prelude12PreludeErrorD2Ev[_ZN7Prelude12PreludeErrorD5Ev]+0x3): undefined reference to `vtable for Prelude::PreludeError' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb-error.o: in function `Prelude::PreludeError::~PreludeError()': preludedb-error.cxx:(.text._ZN7Prelude12PreludeErrorD0Ev[_ZN7Prelude12PreludeErrorD5Ev]+0x3): undefined reference to `vtable for Prelude::PreludeError' /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/libpreludedbcpp_la-preludedb-error.o:(.data.rel.ro._ZTVN9PreludeDB14PreludeDBErrorE[_ZTVN9PreludeDB14PreludeDBErrorE]+0x20): undefined reference to `Prelude::PreludeError::what() const' collect2: error: ld returned 1 exit status rdlibtool: exec error upon slbt_exec_link_create_library(), line 1446: (see child process error messages). rdlibtool: < returned to > slbt_exec_link(), line 1868. make[4]: *** [Makefile:1247: libpreludedbcpp.la] Error 2 make[4]: Leaving directory '/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/bindings/c++' make[3]: *** [Makefile:1320: all-recursive] Error 1 make[3]: Leaving directory '/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/bindings/c++' make[2]: *** [Makefile:1145: all-recursive] Error 1 make[2]: Leaving directory '/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0/bindings' make[1]: *** [Makefile:1316: all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/portage/dev-libs/libpreludedb-5.2.0/work/libpreludedb-5.2.0' make: *** [Makefile:1176: all] Error 2
What is different from stable portage and make build failed ? New version of GCC ? Regards
> What is different from stable portage and make build failed ? New version of GCC ? These are build failures revealed with sys-devel/slibtool, please see this (New) wiki article. https://wiki.gentoo.org/wiki/Slibtool In this case libprelude and libpreludedb are failing because they are including '.libs' for the paths found in the automake file which is not correct. GNU libtool is more permissive and allows this, but slibtool expects the paths without. The instances of '.libs' can be just removed like in my sed example. Additionally libpreludedb is failing because it uses -no-undefined which is something GNU libtool just ignores while slibtool does not. I'm not sure how to fix the actual linking errors which were just hidden before.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a750b6a419a4ed38314dc2f3441a5d59bba00121 commit a750b6a419a4ed38314dc2f3441a5d59bba00121 Author: Jakov Smolić <jsmolic@gentoo.org> AuthorDate: 2022-12-20 13:50:45 +0000 Commit: Jakov Smolić <jsmolic@gentoo.org> CommitDate: 2022-12-20 14:25:24 +0000 dev-libs/libpreludedb: treeclean Closes: https://bugs.gentoo.org/778323 Closes: https://bugs.gentoo.org/815457 Signed-off-by: Jakov Smolić <jsmolic@gentoo.org> dev-libs/libpreludedb/Manifest | 2 - .../libpreludedb-4.0.0-fix-python-bindings.patch | 39 --------- .../files/libpreludedb-5.1.0-fix_gtkdoc_1.32.patch | 13 --- dev-libs/libpreludedb/libpreludedb-5.2.0.ebuild | 93 ---------------------- dev-libs/libpreludedb/metadata.xml | 12 --- profiles/package.mask | 1 - 6 files changed, 160 deletions(-)