Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 778323 - dev-libs/libpreludedb-5.2.0 - rdlibtool: error logged in slbt_exec_link_create_dep_file(), line 962: path not found: ../../src/.li
Summary: dev-libs/libpreludedb-5.2.0 - rdlibtool: error logged in slbt_exec_link_creat...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Thomas ANDREJAK
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: slibtool
  Show dependency tree
 
Reported: 2021-03-26 08:04 UTC by Toralf Förster
Modified: 2021-03-26 23:32 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,17.95 KB, text/plain)
2021-03-26 08:04 UTC, Toralf Förster
Details
dev-libs:libpreludedb-5.2.0:20210326-032006.log (dev-libs:libpreludedb-5.2.0:20210326-032006.log,113.27 KB, text/plain)
2021-03-26 08:04 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,268.48 KB, text/plain)
2021-03-26 08:04 UTC, Toralf Förster
Details
environment (environment,125.74 KB, text/plain)
2021-03-26 08:04 UTC, Toralf Förster
Details
etc.portage.tar.bz2 (etc.portage.tar.bz2,76.66 KB, application/x-bzip)
2021-03-26 08:04 UTC, Toralf Förster
Details
logs.tar.bz2 (logs.tar.bz2,21.41 KB, application/x-bzip)
2021-03-26 08:04 UTC, Toralf Förster
Details
temp.tar.bz2 (temp.tar.bz2,39.70 KB, application/x-bzip)
2021-03-26 08:04 UTC, Toralf Förster
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2021-03-26 08:04:00 UTC
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"
Comment 1 Toralf Förster gentoo-dev 2021-03-26 08:04:01 UTC
Created attachment 693906 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2021-03-26 08:04:03 UTC
Created attachment 693909 [details]
dev-libs:libpreludedb-5.2.0:20210326-032006.log
Comment 3 Toralf Förster gentoo-dev 2021-03-26 08:04:05 UTC
Created attachment 693912 [details]
emerge-history.txt
Comment 4 Toralf Förster gentoo-dev 2021-03-26 08:04:08 UTC
Created attachment 693915 [details]
environment
Comment 5 Toralf Förster gentoo-dev 2021-03-26 08:04:09 UTC
Created attachment 693918 [details]
etc.portage.tar.bz2
Comment 6 Toralf Förster gentoo-dev 2021-03-26 08:04:11 UTC
Created attachment 693921 [details]
logs.tar.bz2
Comment 7 Toralf Förster gentoo-dev 2021-03-26 08:04:12 UTC
Created attachment 693924 [details]
temp.tar.bz2
Comment 8 orbea 2021-03-26 18:39:06 UTC
dev-libs/libprelude also fails here.
Comment 9 orbea 2021-03-26 18:43:16 UTC
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.
Comment 10 orbea 2021-03-26 19:08:27 UTC
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
Comment 11 Thomas ANDREJAK 2021-03-26 22:03:29 UTC
What is different from stable portage and make build failed ? New version of GCC ?

Regards
Comment 12 orbea 2021-03-26 23:32:02 UTC
> 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.