You are not logged in.

#1 2023-01-05 22:15:37

jghodd
Member
From: Jetersville, VA
Registered: 2019-07-14
Posts: 54

glibc - libnss_files and libnss_dns were set up incorrectly

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

#2 2023-01-07 17:22:12

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 969
Website

Re: glibc - libnss_files and libnss_dns were set up incorrectly

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

#3 2023-01-19 03:40:48

jghodd
Member
From: Jetersville, VA
Registered: 2019-07-14
Posts: 54

Re: glibc - libnss_files and libnss_dns were set up incorrectly

@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

#4 2023-02-01 22:11:33

jghodd
Member
From: Jetersville, VA
Registered: 2019-07-14
Posts: 54

Re: glibc - libnss_files and libnss_dns were set up incorrectly

@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

#5 2023-02-02 07:51:10

abaumann
Administrator
From: Zurich
Registered: 2019-11-14
Posts: 969
Website

Re: glibc - libnss_files and libnss_dns were set up incorrectly

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

Board footer

Powered by FluxBB