You are not logged in.
Two "invalid symlink" errors came up during a mkinitcpio - for libnss_files.so.2 and libnss_dns.so.2. I don't have a copy of it because I fixed it and the error message scrolled well off my screen, but to fix it, I had to do the following:
mv /usr/lib/libnss_dns.so.2 /usr/lib/libnss_dns.so
ln -sf /usr/lib/libnss_dns.so /usr/lib/libnss_dns.so.2
mv /usr/lib/libnss_files.so.2 /usr/lib/libnss_files.so
ln -sf /usr/lib/libnss_files.so /usr/lib/libnss_files.so.2
The glibc package includes libnss_files.so.2, but not libnss_files.so. Same with libnss_dns. To fix it, you have to move the .so.2 file to a .so, then create a symlink to the .so, with filename ending in .so.2 (ln -sf libnss_files.so libnss_files.so.2).
There are other issues with glibc - like this interesting build error:
-- Configuring done
-- Generating done
-- Build files have been written to: /distro/repository/calamares-plasma-bluestar/src/calamares-3.2.61/build
[ 0%] Building CXX object lang/CMakeFiles/txload.dir/txload.cpp.o
[ 0%] Linking CXX executable txload
/usr/bin/ld: /usr/lib/libQt5Xml.so.5.15.7: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.7: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13'
/usr/bin/ld: /usr/lib/libicuuc.so.72: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.7: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
/usr/bin/ld: /usr/lib/libQt5Xml.so.5.15.7: undefined reference to `std::__glibcxx_assert_fail(char const*, int, char const*, char const*)@GLIBCXX_3.4.30'
collect2: error: ld returned 1 exit status
make[2]: *** [lang/CMakeFiles/txload.dir/build.make:99: lang/txload] Error 1
make[1]: *** [CMakeFiles/Makefile2:2031: lang/CMakeFiles/txload.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Note the undefined references which, I know, are happening because qt5 and everything that depends on glibc needs to be rebuilt.
Edit: here's the error output from mkinitcpio:
==> Starting build: 6.1.2-arch1-1.0
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [memdisk]
-> Running build hook: [archiso]
-> Running build hook: [archiso_loop_mnt]
-> Running build hook: [archiso_pxe_common]
==> ERROR: invalid symlink: /usr/lib/libnss_files.so.2
==> ERROR: invalid symlink: /usr/lib/libnss_dns.so.2
-> Running build hook: [archiso_pxe_nbd]
-> Running build hook: [archiso_pxe_http]
-> Running build hook: [archiso_pxe_nfs]
-> Running build hook: [archiso_kms]
-> Running build hook: [bslx_kms]
-> Running build hook: [block]
-> Running build hook: [pcmcia]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [bslx_live_desktop]
==> Generating module dependencies
==> Creating xz-compressed initcpio image: /boot/archiso.img
Last edited by jghodd (2023-01-06 02:43:47)
Offline
The disappearance of *.so files is an upstream thing, not sure why it disappeared. The second thinks looks more like a libc++ issue and not a glibc issue (or even a Qt 5 issue or
a LTO issue). Which package did you compile there? This is nothing I can find in the packages or in the AUR..
Offline
@abaumann - i'm actually seeing these kinds of link errors everywhere right now. seems every other thing i try to build throws the same *kind* of errors. here are the ones thrown while building mixxx:
/usr/bin/ld: /usr/lib/libicuuc.so.72: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
/usr/bin/ld: /usr/lib/libprotobuf-lite.so: undefined reference to `std::__glibcxx_assert_fail(char const*, int, char const*, char const*)@GLIBCXX_3.4.30'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.8: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13'
/usr/bin/ld: /usr/lib/libchromaprint.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.8: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
been trying for some time now to do a calamares build and am getting the libicuuc.so error (as above). rebuilding icu makes no difference.
is there something y'all are building against that hasn;t been released yet?
Offline
@abaumann - i'm going to attempt an i686 rebuild of libc++ and see if that resolves that second issue. it's getting pretty annoying every time i try to build anything.
Edit: rebuilding didn't help. same errors:
-- Build files have been written to: /distro/repository/calamares-plasma-bluestar/src/calamares-3.2.61/build
Consolidate compiler generated dependencies of target txload
[ 0%] Linking CXX executable txload
/usr/bin/ld: /usr/lib/libQt5Xml.so.5.15.8: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.8: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()@CXXABI_1.3.13'
/usr/bin/ld: /usr/lib/libicuuc.so.72: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
/usr/bin/ld: /usr/lib/libQt5Core.so.5.15.8: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()@CXXABI_1.3.13'
/usr/bin/ld: /usr/lib/libQt5Xml.so.5.15.8: undefined reference to `std::__glibcxx_assert_fail(char const*, int, char const*, char const*)@GLIBCXX_3.4.30'
collect2: error: ld returned 1 exit status
looking at these linker errors, obviously it's looking for version-specific functions within libc++ and glibc.
Last edited by jghodd (2023-02-01 22:30:28)
Offline
Looks like an ABI mismatch between icu, Qt and the current toolchain to me. The only thing that helps is to rebuild icu and Qt (or rather: everything using the libstdc++).
This is more than just annoying and ABI breakages in glibc and libstd++ used to be a rare thing in the past..
Offline