Bruce Dubbs wrote:
Ken Moffat wrote:
On Thu, Mar 12, 2015 at 05:32:21PM -0500, Bruce Dubbs wrote:
There are lots of ways to make mistakes, but I can't really see how someone
can link a static library into one of the LFS packages without really going
far from the book and changing a Makefile or similar. I suppose removing a
.so file may revert back to the complementary .a file.
Long while since I've managed it (on x86_64, which is where all my
development used to happen, most static libs lack -fPIC so they will
not link into a shared lib). But on i686: in one case (bzip2) I
missed the solib version change when I was making the symlink, which
effectively matches your suggestion. Before that, I had screwed up
a symlink with one of the files we moved into /lib - that is the more
general sort of error, and I'm fairly sure that I later saw someone
reporting what turned out to be the same problem on support.
Also, making static libs unavailable even on i686 guards against a
future change accidentally pulling one in.
So you are suggesting that we move all /usr/lib/*.a files at the end of each
package?
Interesting:
$ cat /usr/lib/libc.so
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED (
/lib64/ld-linux-x86-64.so.2 ) )
So libc_nonshared.a is *really* needed.
On 686:
OUTPUT_FORMAT(elf32-i386)
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED (
/lib/ld-linux.so.2 ) )
-- Bruce
--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page