I’m looking to solve this error when compiling my program:
make[2]: *** No rule to make target '/usr/lib64/libpthread.so', needed by 'src/specmicp_common/libspecmicp_common.so'. Stop.
I have recently updated my desktop from fedora 34 to 35. It seems that I am missing the synbolic link creating “generic versions” (i.e “.so” → “.so.x.y.z”) of the libraries:
$ ls /usr/lib64/libpthread.
libpthread.a libpthread.so.0
Is it normal ? Was a dnf script not got triggered, or am I missing a pakage ? I have updated glibc/glibc-devel but it didn’t change the problem, and I didn’t saw any errors.
did something change in the packaging process ?
I feel like I’m missing something obvious and I would appreciate any help.
The makefile was generating by CMake. I do not pass intentionally -pthread to gcc or make the dependence upon libpthread.so , I’m not even sure where the requirement is from (I’m guessing openmp).
I’m sure regenerating the build from scratch might solve the issue, but I’m still puzzled why these files do not exist anymore. And if there is a better solution to the problem, in case it’s not the only file.
The explanation is in the release notes in the link; those files are not needed any more. You should re-generate your build after doing a system upgrade.
You’re right, it’s even the first entry, I’m not sure how I missed it ! Thank you, I will try to find what’s wrong in my cmake files, and why it’s explicitly taken into account.