I posted this on the Stable Updates announcement thread:
But it might be better suited to Support than to Announcements.
I posted this on the Stable Updates announcement thread:
But it might be better suited to Support than to Announcements.
Reporting breakage to CMake as a result of this stable update.
When compiling a well-used project from source, this new error showed up.
/usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): warning: relocation against `_ZTIN3fmt3v1012format_errorE' in read-only section `.text.unlikely'
/usr/bin/ld: /usr/local/lib/libfmt.a(format.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
Adding -fPIC
to the project’s build flags did not solve it.
It turns out that the new file /usr/local/lib/libfmt.a
was added only on Jun 5, at the same time as the latest update to Manjaro stable.
Renaming /usr/local/lib/libfmt.a
to /usr/local/lib/old_libfmt.a_old
caused CMake to issue this error:
CMake Error at /usr/local/lib/cmake/fmt/fmt-targets.cmake:94 (message):
The imported target "fmt::fmt" references the file
"/usr/local/lib/libfmt.a"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/local/lib/cmake/fmt/fmt-targets.cmake"
but not all the files it references.
This is likely a mistake with CMake, or in how it was packaged, because there is a perfectly good libfmt.so
in /usr/lib
:
lrwxrwxrwx 1 root root 11 2023-01-11 08:23 libfmt.so -> libfmt.so.9*
lrwxrwxrwx 1 root root 15 2023-01-11 08:23 libfmt.so.9 -> libfmt.so.9.1.0*
-rwxr-xr-x 1 root root 132968 2023-01-11 08:23 libfmt.so.9.1.0*
and that libfmt.so has worked normally.
Please also note that /usr/lib/cmake
contains a lot more than /usr/local/lib/cmake
.
Indeed.
How’s that? Packages do not install anything in /usr/local/
.
Anything in /usr/local/lib
didn’t come from Manjaro. It’s from AUR or somewhere else. I have cmake installed and there is no /usr/local/lib/cmake
directory on my system.
Use pacman -Qo /usr/local/lib/libfmt.a
to find out which package owns that file.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.