Summary: | dev-libs/libpreludedb-5.2.0 - rdlibtool: error logged in slbt_exec_link_create_dep_file(), line 962: path not found: ../../src/.li | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | orbea |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=778896 https://bugs.gentoo.org/show_bug.cgi?id=778989 https://bugs.gentoo.org/show_bug.cgi?id=790647 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 765709 | ||
Attachments: |
emerge-info.txt
dev-libs:libpreludedb-5.2.0:20210326-032006.log emerge-history.txt environment etc.portage.tar.bz2 logs.tar.bz2 temp.tar.bz2 |
Description
Toralf Förster
2021-03-26 08:04:00 UTC
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(-) |