自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 手斧Linux – 从LFS到Funtoo (35)

第20节 编译安装ncurses命令如下:tar xvfz ../ncurses-5.9.tar.gz mkdir ncurses-buildcd ncurses-buildCFLAGS+='-mstackrealign -fPIC -O3' ../ncurses-5.9/configure --prefix=/tools --with-shared     --without

2014-12-24 21:09:26 257

原创 手斧Linux – 从LFS到Funtoo (34)

第18节 编译安装dejagnu命令如下:tar xvfz ../dejagnu-1.5.tar.gz cd dejagnu-1.5mkdir ../dejagnu-buildcd ../dejagnu-build/../dejagnu-1.5/configure --prefix=/toolsmake 2>&1|tee out.makemake install 2

2014-12-24 21:08:12 246

原创 手斧Linux – 从LFS到Funtoo (33)

第16节 编译安装tcl命令如下:tar xvfz ../tcl8.5.10-src.tar.gz cd tcl8.5.10cd unix./configure --prefix=/toolsmake 2>&1|tee out.makemake install 2>&1|tee out.installchmod -v u+w /tools/lib/libtcl8

2014-12-24 21:07:16 226

原创 手斧Linux – 从LFS到Funtoo (32)

第15节 再次调整工具链分布ln -sv /tools/bin/x86_64-wolf-linux-gnu-addr2line  /tools/bin/addr2lineln -sv /tools/bin/x86_64-wolf-linux-gnu-ar  /tools/bin/arln -sv /tools/bin/x86_64-wolf-linux-gnu-as  /tools/b

2014-12-24 21:06:29 303

原创 手斧Linux – 从LFS到Funtoo (31)

CFLAGS='-mstackrealign -fPIC -O3' CC="$LFS_TGT-gcc -B/tools/lib64/ "  AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib ../gcc-4.6.1-p2/configure --prefix=/tools --libdir=/tools/lib64 --with-local-prefix=/tools -

2014-12-24 21:05:06 229

原创 手斧Linux – 从LFS到Funtoo (30)

第14节 编译gcc 64位 pass2类似bintuils pass2来编译gcc pass2。因为gcc要打的补丁与之前不同,重新取一分源码。tar xvfj ../gcc-4.6.1.tar.bz2mv gcc-4.6.1 gcc-4.6.1-p2cd gcc-4.6.1-p2patch -Np1 -i ../../gcc-4.6.1-startfiles_fix-1

2014-12-24 21:04:27 279

原创 手斧Linux – 从LFS到Funtoo (29)

readelf -l /tools/x86_64-wolf-linux-gnu/bin/ldreadelf -l /tools/bin/x86_64-wolf-linux-gnu-ld这两个ld都在使用这个加载器/tools/lib64/ld-linux-x86-64.so.2/tools/x86_64-wolf-linux-gnu/bin/ld -verbose|grep SEA

2014-12-24 21:03:52 286

原创 手斧Linux – 从LFS到Funtoo (28)

第1节 编译binutils 64位  pass2 现在,用LFS_TGT工具做WOLF64_TGT的工具,参照lfs手册上指定CC AR RANLIB,按非交叉方式编译。而如果指定了  --host=$WOLF64_TGT --build=$LFS_TGT,则变成了以交叉方式编译了。mkdir binutils-build-p2-x86_64cd binutils-build

2014-12-24 21:03:16 299

原创 手斧Linux – 从LFS到Funtoo (27)

readelf -l a.outRequesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2可以看到加载器己为/tools/lib64下的ld-linux-x86-64rm dummy.c a.out开始测试32位:echo "main(){};">dummy.c$LFS32_TGT-gcc dumm

2014-12-24 21:02:38 351

原创 手斧Linux – 从LFS到Funtoo (26)

第12节 调整工具链以下命令调整64位工具链,将LFS_TGT工具的加载器目录指向/tools/lib,还有include的目录.SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs$LFS_TGT-gcc -dumpspecs >${SPECS}.old$LFS_TGT-gcc -dumpspecs | s

2014-12-24 21:01:56 293

原创 手斧Linux – 从LFS到Funtoo (25)

统环境,需将它改向/tools/下的库文件目录,这个动作在后面的描述中讲解。rm dummy.* a.out

2014-12-24 21:00:13 264

原创 手斧Linux – 从LFS到Funtoo (24)

第11节 安装glibc并测试在之前的glibc编译中,并没有将结果安装到/tools目录下,都还在各自(32位和64位)的编译目录下的临时安装点。ls glibc-build-64/img/tools/  bin  etc  include  lib64  libexec  sbin  sharels glibc-build-i686/img/tools/bin 

2014-12-24 20:59:29 300

原创 手斧Linux – 从LFS到Funtoo (23)

第10节 编译glibc 32位 (可选)mkdir glibc-build-i686cd glibc-build-i686echo "install_root = $(pwd)/img" >configparmscase `uname -m` in   i?86) echo "CFLAGS += -march=i486 -mtune=native" >> configparm

2014-12-24 20:58:38 261

原创 手斧Linux – 从LFS到Funtoo (22)

第9节 编译glibc  64位用上面做的$LFS_TGT binutils gcc生成用于$LFS_TGT的c库。tar xvfj ../glibc-2.14.1.tar.bz2 cd glibc-2.14.1patch -Np1 -i ../../glibc-2.14.1-gcc_fix-1.patchpatch -Np1 -i ../../glibc-2.14.1-c

2014-12-24 20:48:19 332

原创 手斧Linux – 从LFS到Funtoo (21)

第8节 安装linux header在以后的编译中,需要这些头文件,要在这里将它们安装到编译依惯例搜索的地方。tar xvf ../linux_3.2.29.orig.tar.xzcd linux-3.2.29make mrproper 2>&1|tee out.make1make ARCH=x86_64 headers_check 2>&1|tee out.make2

2014-12-24 20:46:20 272

原创 手斧Linux – 从LFS到Funtoo (20)

linux-vdso.so.1 =>  (0x00007fff843ff000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbeab20c000)/lib64/ld-linux-x86-64.so.2 (0x00007fbeab5ab000)readelf -l /tools/bin/$LFS32_TGT-gccR

2014-12-18 20:20:03 265

原创 手斧Linux – 从LFS到Funtoo (19)

第7节 编译gcc  32位 pass1 (可选)和之前的32位的binutils一样,这个步骤也是可选的,也是为了尽早获得相关的实验经验。配置时,使用了32位的target和lib32。mkdir -v gcc-build-p1-i686cd gcc-build-p1-i686../gcc-4.6.1-p1/configure     --target=$LFS32_TG

2014-12-18 20:19:06 272

原创 手斧Linux – 从LFS到Funtoo (18)

检查一下生成的$LFS_TGT-gcc。file /tools/bin/$LFS_TGT-gcc/tools/bin/x86_64-lfs-linux-gnu-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.1

2014-12-18 20:18:15 360

原创 手斧Linux – 从LFS到Funtoo (17)

第6节 编译gcc  64位 pass1用lfs用户所在的系统的gcc做出/tools/bin/x86_64-lfs-linux-gnu-gcc。编译时,将mpfr gmp mpc的源码拷入gcc的目录下编译。tar xvfj ../gcc-4.6.1.tar.bz2mv gcc-4.6.1 gcc-4.6.1-p1cd gcc-4.6.1-p1tar -jxf ../

2014-12-18 20:17:12 338

原创 手斧Linux – 从LFS到Funtoo (16)

libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f83bf7ca000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f83bf5c6000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f83bf226000

2014-12-18 20:16:13 279

原创 手斧Linux – 从LFS到Funtoo (15)

第5节 编译binutils 32位 pass1 (可选)类似于64位,并行地制作一个32位的binutils。这个步骤是可选的,现在做32位的编译器并没什么实际的用处,而之所以这样做,是为了尽早练习如何在64位的环境里做32位的编译器。在最后,我们需要一个既能编译出64位代码,又能编译出32位代码的multilib gcc。 与其在后面的实验中失败来返工,还不如尽早做这个实验。命

2014-12-18 20:14:38 309

原创 手斧Linux – 从LFS到Funtoo (14)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc2a64ee000)/lib64/ld-linux-x86-64.so.2 (0x00007fc2a6ccf000)ldd指出/tools/bin/x86_64-lfs-linux-gnu-ld本身运行时需要哪些库的支撑,因为它是用宿主系统的gcc编译出来的,所以,它运行时要有

2014-12-18 20:13:57 329

原创 手斧Linux – 从LFS到Funtoo (13)

第4节 编译binutils 64位 pass1现在用lfs用户所在的系统的gcc做出/tools/bin/x86_64-lfs-linux-gnu-{ld,ar,as,readelf,ranlib,objcopy}等,还有 /tools/lib/libibery.a 。命令如下:tar xvfj ../binutils-2.21.1a.tar.bz2mkdir binutil

2014-12-18 20:12:51 338

原创 手斧Linux – 从LFS到Funtoo (12)

第1节 确认环境如果在完成本章的工作之前,需要临时中断再回来,继续之前也需做这些确认工作。1. 确认是先 su - lfs 或直接用lfs用户登录系统的。具体的命令(假设己经登录到系统里了):su - lfsenv(要能看到之前修改到/home/lfs/.bashrc里的设置内容,特别是这几个环境变量的定义PATH LFS LFS_TGT LFS32_TGT MAKEFLA

2014-12-18 20:11:02 322

原创 手斧Linux – 从LFS到Funtoo (11)

第5章 在$LFS/tools下构造临时系统一般来说,在宿主系统里编译出来的程序,需要依赖/lib下的动态库,为了隔开目标系统对宿主系统的依赖,也需要得重新制作这些动态库。可以说,没有gcc就没有linux。首先,用宿主系统编译一个只支持静态链接的gcc,放在/tools下,再用这个gcc编译glibc放在/tools下,然后,回过头来,用/tools下的gcc和glibc编译出一个常规的

2014-12-17 21:52:22 325

原创 手斧Linux – 从LFS到Funtoo (10)

具体步骤在下一章里。

2014-12-17 21:48:44 299

原创 手斧Linux – 从LFS到Funtoo (9)

第4章 准备编译环境step1:修改/home/lfs/.bashrc,增加以下内容。LFS=/home/lfs/buildLFS_TGT=$(uname -m)-lfs-linux-gnu#LFS_TGT=x86_64-lfs-linux-gnuLFS32_TGT=i686-lfs-linux-gnuMAKEFLAGS=-j`expr $(grep '^process

2014-12-17 21:45:03 366

原创 手斧Linux – 从LFS到Funtoo (8)

cp ../7.0/sed-4.2.1.tar.bz2 .cp ../7.0/tar-1.26.tar.bz2 .cp ../7.0/tcl8.5.10-src.tar.gz .cp ../7.0/texinfo-4.13a.tar.gz .cp ../7.0/util-linux-2.20.tar.bz2 .cp ../7.0/xz-5.0.3.tar.bz2 .cp .

2014-12-17 21:44:11 476

原创 手斧Linux – 从LFS到Funtoo (7)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/pax-utils-0.5.tar.xzwget https://github.com/funtoo/portage-funtoo/archive/funtoo-2.3.4-r9.zip(注:这上文件如下载有困难,可以打开这个网页下载:https://github.com/funtoo/port

2014-12-17 21:43:03 541

原创 手斧Linux – 从LFS到Funtoo (6)

第3章 获得源码包step1:创建lfs用户。在ubuntu终端里用root用户执行以下命令:addusr lfs不做特别设置,为了方便描述,将lfs用户的密码也设为lfs。lfs用户的主目录为/home/lfs/。虽然己建立了lfs用户,但并不用登录为它,现在还是以root的身份进入lfs的主目录工作。将lfs用户加进/etc/sudoers。手工编辑,或直接用下面的命令

2014-12-17 21:42:03 491

原创 手斧Linux – 从LFS到Funtoo (5)

系统安装有4G的物理内存。# cat /proc/meminfo MemTotal:        3798464 kBMemFree:          114808 kBBuffers:          264348 kBCached:          2585416 kB系统装有gcc开发环境,版本信息如下:# gcc -v使用内建 specs。C

2014-12-17 21:40:50 450

原创 手斧Linux – 从LFS到Funtoo (4)

第2章 宿主机环境这是一台安装了ubuntu 11.04的x86 64位系统。在整个实验过程中,最初使用了它的gcc编译器生成了目标系统用的编译器,之后还使用了它的内核来测试新生成的目标文件系统。关于这个系统的一些属性信息,摘录如下:# uname -aLinux ubuntu 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 

2014-12-17 21:39:06 481

原创 手斧Linux – 从LFS到Funtoo (3)

码开始编译ubuntu。突然间,我理解了“ubuntu是基于debian”的这个说法。ubuntu由debian所使用的deb包来建造,而deb包有一个称为buildd的多机系统来完成编译构造,buildd是“鸡”,而一个个deb包是它下出来的“蛋“,而这一节,不好理解成from scrash了。关于autobuild和buildd的一些资料信息如下:http://www.debian.org

2014-12-17 21:38:09 632

原创 手斧Linux – 从LFS到Funtoo (2)

第1章 前言2012年春节前,我开始学习LFS,详尽的LFS手册,让我有依有据地体验了一个系统的构造过程,漫长而劳累。接下来,我开始着迷于另一个问题:如何自己动手从源码开始构造出ubuntu的发行版本。于是,我从ubuntu的livecd入手,到处寻找相关的信息,试图了解ubuntu的发行版本是如何被煅造出来的。我在网上找到了一些资料:将一个在硬盘上的ubuntu系统做成Liv

2014-12-17 21:36:28 647

原创 手斧Linux – 从LFS到Funtoo (1)

目录第1章 前言 5第2章 宿主机环境 6第3章 获得源码包 9第4章 准备编译环境 13第5章 在$LFS/tools下构造临时系统 15第1节 确认环境 16第2节 关于lib 和lib64 16第3节 开设本章第一阶段工作目录 16第4节 编译binutils 64位 pass1 17第5节 编译binutils 32位 pass1 (可选

2014-12-17 21:33:34 598

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除