Now that has been resolved, I still have another problem, though. It especially regards kde related binaries, but could possibly affect any app or lib written in c++
Here's what I have to report:
prelink -avmf cannot link several libraries, for example it prints:
Code: Select all
prelink: Could not prelink /usr/lib/libfam.so.0 because it doesn't use /lib/libgcc_s.so.1, but one of its dependencies has been prelinked against it
ldd /usr/lib/libfam.so.0 printed out
Code: Select all
libstdc++.so.6 => //usr/lib/gcc/i686-pc-linux-gnu/3.4.3/libstdc++.so.6 (0xb7f26000)
libgcc_s.so.1 => //usr/lib/gcc/i686-pc-linux-gnu/3.4.3/libgcc_s.so.1
ldd /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/libstdc++.so.6 printed out
Code: Select all
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x41c0b000)
Code: Select all
Laying out 243 libraries in virtual address space 41000000-50000000
Assigned virtual address space slots for libraries:
...
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.4.3/libgcc_s.so.1 41c0b000-41c13504
...
/lib/libgcc_s.so.1 41c0b000-41c13504
...It is obvious that prelink fails for libfam.so.0, it links against libgcc_s.so.1 (the one in /usr/lib/gcc) AND libstdc++.so.6, but libstdc++.so.6 links against the one in /lib. Since both have the same address space but are treated as different files, prelink cannot possibly pre-link libfam.so.1 as this would cause an address space conflict. A re-install of gcc did not help, as that created the same file setup.
Now my questions is: /lib/libgcc_s.so.1 obviously is a copy of the file in /usr/lib/gcc, made by gcc-config. Should that not be a symlink instead of a copy then? Why does gcc-config not create a symlink instead of making a copy then? I cannot really blame prelink for putting the libs into the same address space. Both libs have the same name and no single binary is ever going to link against BOTH of them. But could then prelink not realise both files are the same and symlink them?
This weird behavious leads to prelink failing for quite a few binaries, therefore effectively failing to prelink kde and maybe some other c++ apps, as well.
I am sort of hesitant to convert /lib/libgcc_s.so.1 into a symlink to the file in /usr/lib/gcc. I suspect that would solve my problem but could break gcc profiles. Doing gcc-config would probably re-create the problem again.
Any serious advice is appreciated.
Cheers,
Dominik


