首页 > 系统管理 > LFS > LFS7.6 017 MPFR-3.1.2 + MPC-1.0.2 + …… + Sed-4.2.2
2015
03-18

LFS7.6 017 MPFR-3.1.2 + MPC-1.0.2 + …… + Sed-4.2.2

LFS7.6 017 MPFR-3.1.2 + MPC-1.0.2 + …… + Sed-4.2.2

从本篇开始,增大篇幅,快速完成LFS7.6。

1.MPFR-3.1.2

代码:

tar xvf mpfr-3.1.2.tar.xz
cd mpfr-3.1.2
patch -Np1 -i ../mpfr-3.1.2-upstream_fixes-2.patch
./configure --prefix=/usr \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-3.1.2
make -j4
make html
make check
make install
make install-html
cd ..
rm -rf mpfr-3.1.2

2.MPC-1.0.2

代码:

tar xvf mpc-1.0.2.tar.gz
cd mpc-1.0.2
./configure --prefix=/usr --docdir=/usr/share/doc/mpc-1.0.2
make -j4
make html
make check
make install
make install-html
cd ..
rm -rf mpc-1.0.2

3.GCC-4.9.1

代码:

tar xvf gcc-4.9.1.tar.bz2 
cd gcc-4.9.1
sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c
patch -Np1 -i ../gcc-4.9.1-upstream_fixes-1.patch
mkdir -v ../gcc-build
cd ../gcc-build
SED=sed \
../gcc-4.9.1/configure \
--prefix=/usr \
--enable-languages=c,c++ \
--disable-multilib \
--disable-bootstrap \
--with-system-zlib
make -j4
ulimit -s 32768
make -k check
../gcc-4.9.1/contrib/test_summary
make install
ln -sv ../usr/bin/cpp /lib
ln -sv gcc /usr/bin/cc
install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/4.9.1/liblto_plugin.so /usr/lib/bfd-

4.测试

(1)

代码:

echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

出现:

[Requesting program interpreter: /lib/ld-linux.so.2]

(2)

grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log

出现:

/usr/lib/gcc/i686-pc-linux-gnu/4.9.1/../../../crt1.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.9.1/../../../crti.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.9.1/../../../crtn.o succeeded

(3)

grep -B4 '^ /usr/include' dummy.log

出现:

#include <...> search starts here:
/usr/lib/gcc/i686-pc-linux-gnu/4.9.1/include
/usr/local/include
/usr/lib/gcc/i686-pc-linux-gnu/4.9.1/include-fixed
/usr/include

(4)

grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'

出现:

32位:

SEARCH_DIR("/usr/i686-pc-linux-gnu/lib32")
SEARCH_DIR("/usr/local/lib32")
SEARCH_DIR("/lib32")
SEARCH_DIR("/usr/lib32")
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");

64位是

SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/lib64")
SEARCH_DIR("/usr/local/lib64")
SEARCH_DIR("/lib64")
SEARCH_DIR("/usr/lib64")
SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/lib")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");

(5)

grep "/lib.*/libc.so.6 " dummy.log

出现:

attempt to open /lib/libc.so.6 succeeded

(6)

grep found dummy.log

出现:

found ld-linux.so.2 at /lib/ld-linux.so.2

(7)删除测试文件:

rm -v dummy.c a.out dummy.log

(8)

mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib

(9)

rm -rf gcc-4.9.1
rm -rf gcc-build

5.Bzip2-1.0.6

代码:

tar xvf bzip2-1.0.6.tar.gz 
cd bzip2-1.0.6
patch -Np1 -i ../bzip2-1.0.6-install_docs-1.patch
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
make -f Makefile-libbz2_so
make clean
make -j4
make PREFIX=/usr install
cp -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
ln -sv bzip2 /bin/bunzip2
ln -sv bzip2 /bin/bzcat
cd  ..
rm -rf bzip2-1.0.6

6.Pkg-config-0.28

代码:

tar xvf pkg-config-0.28.tar.gz 
cd pkg-config-0.28
./configure --prefix=/usr \
--with-internal-glib \
--disable-host-tool \
--docdir=/usr/share/doc/pkg-config-0.28
make -j4
make check
make install
cd  ..
rm -rf pkg-config-0.28

7.Ncurses-5.9

代码:

tar xvf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=/usr \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
--enable-pc-files \
--enable-widec
make -j4
make install
mv -v /usr/lib/libncursesw.so.5* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so
for lib in ncurses form panel menu ; do
rm -vf /usr/lib/lib${lib}.so
echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a
ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
done
ln -sfv libncurses++w.a /usr/lib/libncurses++.a
rm -vf /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so /usr/lib/libcurses.so
ln -sfv libncursesw.a /usr/lib/libcursesw.a
ln -sfv libncurses.a /usr/lib/libcurses.a
mkdir -v /usr/share/doc/ncurses-5.9
cp -v -R doc/* /usr/share/doc/ncurses-5.9
cd ..
rm -rf ncurses-5.9

8.Attr-2.4.47

代码:

tar xvf attr-2.4.47.src.tar.gz
cd attr-2.4.47
sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in
./configure --prefix=/usr --bindir=/bin
make -j4
make -j1 tests root-tests
make install install-dev install-lib
chmod -v 755 /usr/lib/libattr.so
mv -v /usr/lib/libattr.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so
cd ..
rm -rf attr-2.4.47

9.Acl-2.2.52

代码:

tar xvf acl-2.2.52.src.tar.gz
cd acl-2.2.52
sed -i -e 's|/@pkg_name@|&-@pkg_version@|' include/builddefs.in
sed -i "s:| sed.*::g" test/{sbits-restore,cp,misc}.test
sed -i -e "/TABS-1;/a if (x > (TABS-1)) x = (TABS-1);" \
libacl/__acl_to_any_text.c
./configure --prefix=/usr \
--bindir=/bin \
--libexecdir=/usr/lib
make -j4
make install install-dev install-lib
chmod -v 755 /usr/lib/libacl.so
mv -v /usr/lib/libacl.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so
cd ..
rm -rf acl-2.2.52

10.Libcap-2.24

代码:

tar xvf libcap-2.24.tar.xz 
cd  libcap-2.24
make -j4
make RAISE_SETFCAP=no prefix=/usr install
chmod -v 755 /usr/lib/libcap.so
mv -v /usr/lib/libcap.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libcap.so) /usr/lib/libcap.so
cd ..
rm -rf libcap-2.24

11.Sed-4.2.2

代码:

tar xvf sed-4.2.2.tar.bz2 
cd sed-4.2.2
./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/sed-4.2.2
make -j4
make html
make check
make install
make -C doc install-html
cd ..
rm -rf sed-4.2.2

下一步:LFS7.6 018 Shadow-4.2.1 + …… + Grep-2.20




最后编辑:
作者:PurStar
PurStar
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复