Fernando de Oliveira wrote:
On 11-03-2015 22:13, Bruce Dubbs wrote:
I've been working with static libraries today.
I was able to remove most of them and got through a complete LFS build.
What was left was:
bzip2:/usr/lib/libbz2.a
gcc:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/libgcc.a
gcc:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/libgcc_eh.a
gcc:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/libgcov.a
glibc:/usr/lib/libc.a
glibc:/usr/lib/libc_nonshared.a
glibc:/usr/lib/libcrypt.a
glibc:/usr/lib/libdl.a
glibc:/usr/lib/libg.a
glibc:/usr/lib/libieee.a
glibc:/usr/lib/libm.a
glibc:/usr/lib/libmcheck.a
glibc:/usr/lib/libpthread.a
glibc:/usr/lib/libpthread_nonshared.a
glibc:/usr/lib/librpcsvc.a
However, some additional tests failed. The *new* failures are:
078-binutils-2.25:FAIL: static preinit array
078-binutils-2.25:FAIL: static init array
078-binutils-2.25:FAIL: static fini array
078-binutils-2.25:FAIL: static init array mixed
078-binutils-2.25:FAIL: Could not link a static executable
078-binutils-2.25:FAIL: Run mpx1 with -static
078-binutils-2.25:FAIL: Run mpx2 with -static
103-libtool-2.4.6: 70: Runpath in libtool library files FAILED
103-libtool-2.4.6:117: enforced lib prefix FAILED
103-libtool-2.4.6:170: Run tests with low max_cmd_len FAILED
110-automake-1.15:FAIL: t/lex-clean-cxx.sh
110-automake-1.15:FAIL: t/lex-depend-cxx.sh
I'm having second thoughts about removing the static libraries. There
are really not that many in LFS and some in glibc appear to really be
needed. I'm not sure if the gcc libraries above are needed or not.
OTOH, Ubuntu 14.04.2 has none of the above libraries in a standard install.
Is removing static libaries really worthwhile? I'm leaning to no. It
takes away options from the user that would be hard to replace without
rebuilding the entire system.
Please, I'm having good results. But as I told before, I started
removing *.a from gmp, not before. Nno problem with binutils and libtool
tests. I did remove the two failing tests of automake. I have removed
bzip2:/usr/lib/libbz2.a.
I've installed gperf today. Again, the way I did, only the two automake
tests seem to be new failures, so, if they are essential, we can leave
flex with .a.
I may finish tomorrow or Friday. Binutils, gcc and glibc, I didn't
remove. All three or at least one I noticed there were no shared
matching some static.
I did some more checking on a Ubuntu system. Doing the tests in Adjusting the
Toolchain there I found:
attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a succeeded
attempt to open /usr/lib/x86_64-linux-gnu/libc_nonshared.a succeeded
attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a succeeded
Looking at those directories, I see quite a few static libraries as well as some
object files like crt1.o, etc.
I really think libgcc.a and libc_nonshared.a are pretty essential for allmost
all executables. I'm not sure about others.
-- Bruce
--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page