文章目录
1. 前言
构建和测试glibc的wiki主页为:https://sourceware.org/glibc/wiki/Testing/Builds
本章将介绍glibc的构建和使用……
2. 构建
我们知道一般linux系统中都会存在已有的glibc库,现在我们要构建自己的glibc库,那新构建的glibc会不会破坏已有的glibc呢?如果破坏了将会带来什么危害呢?
这里我们测试glibc构建,然后并不将它安装到系统路径下,在系统上安装新的glibc可是一件非常大胆的事情,弄不好就会把系统环境破坏了,所以我们最好不要这么做。
2.1. 只构建不安装
只构建不安装,可以执行标准的configure和make,例如:
$ mkdir $HOME/src
$ cd $HOME/src
$ git clone git://sourceware.org/git/glibc.git
$ mkdir -p $HOME/build/glibc
$ cd $HOME/build/glibc
$ $HOME/src/glibc/configure --prefix=/usr
$ make
切记:不要执行make install
通过使用前缀/usr来创建glibc,它将加载和使用来自标准位置的所有配置文件。前缀/usr被认为是系统glibc的正确前缀。更高级的用户会注意到前缀实际上是 glibc ABI 的一部分。
最后,如果您想使用一组替代的 Linux 内核头文件进行构建,您将需要使用--with-headers=指向 Linux 头文件和 glibc 在构建期间所需的其他头文件的统一安装,这些头文件可能包含也可能不包含 SELinux头文件(–with-selinux)或 NSS头文件(–enable-nss-crypt)。
测试如下:

错误:
- bison缺少或版本太老
作者第一次构建glibc,所以难免会缺少一些工具(glibc的依赖),只需要进行安装相应的工具即可。不同的操作系统安装方法不一样,作者的的系统是fedora,所以可以通过dnf进行安装,比如:sudo dnf install bison

修复configure中出现的所有错误,直到执行成功。成功后,在构建目录下会生成Makefile,之后执行make进行构建即可,构建时间比较漫长……(读者可以尝试用make -jn来并行构建(n表示任务数))

构建成功后,如下图所示:


2.2. 构建并安装
上面我们提到最好不要在系统中安装新的glibc,是指将glibc安装到系统默认环境中。如果我们将其安装到用户自定义的临时目录中,就不会破坏系统中的glibc了,本节将简述如何将构建的glibc安装到临时目录。
先做带–prefix=/usr目录的configure,然后make和make install DESTDIR=xxx(其中xxx即为用户指定的临时安装目录,将GNU标准变量DESTDIR设置为某个临时安装目录xxx),例如:
$ DESTDIR=<path to the GLIBC install directory>
$ mkdir $HOME/src
$ cd $HOME/src
$ git clone git://sourceware.org/git/glibc.git
$ mkdir -p $HOME/build/glibc
$ cd $HOME/build/glibc
$ $HOME/src/glibc/configure --prefix=/usr
$ make
$ make install DESTDIR=${DESTDIR}
基于上节的构建结果,进行安装测试,如下所示:


您现在已经在$DESTDIR 的子目录中安装了新构建的 glibc ,您可以构建针对

本文介绍了glibc的构建过程及不同场景下的测试方法,包括只构建不安装、构建并安装到临时目录,以及如何在新glibc环境下编译和调试应用程序。
最低0.47元/天 解锁文章
8285

被折叠的 条评论
为什么被折叠?



