我正在尝试编译 glibc 2.3(https://ftp.gnu.org/gnu/glibc/glibc-2.3.tar.gz) 和附加组件 linuxthreads (https://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.tar.gz) 在 ubuntu 18.04 下。自述文件中的要求是:
- gcc (3.2 或更新版本)
- GNU make 版本 3.79 或更新版本
- binutils 2.10.1 或更高版本
- 2.2 内核头文件
我应该安装较旧的发行版还是可以在较新的发行版上完成此任务。任何建议或指示都非常感谢。
我可以使用支持 linuxthreads 的最新版本,即 glibc 2.5。我选择 2.3 是因为我已经阅读了 README。
到目前为止,我已成功安装 gcc 3.3。但我在尝试安装 gnu make 3.x(3.82 或 3.79)时遇到困难。
CC=gcc-3.3 ./configure --enable-add-ons=linuxthreads --prefix=<mypath>/glibc
loading cache ./config.cache
checking host system type... x86_64-unknown-linux-gnu
checking sysdep dirs... sysdeps/x86_64/elf linuxthreads/sysdeps/unix/sysv/linux/x86_64 linuxthreads/sysdeps/unix/sysv/linux linuxthreads/sysdeps/pthread sysdeps/pthread linuxthreads/sysdeps/unix/sysv linuxthreads/sysdeps/unix linuxthreads/sysdeps/x86_64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv sysdeps/unix/x86_64 sysdeps/unix sysdeps/posix sysdeps/x86_64/fpu sysdeps/x86_64 sysdeps/wordsize-64 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for pwd... /bin/pwd
checking build system type... x86_64-unknown-linux-gnu
checking for gcc... gcc-3.3
checking version of gcc-3.3... 3.3.6, ok
checking for gnumake... no
checking for gmake... no
checking for make... no
configure: error:
*** These critical programs are missing or too old: make
*** Check the INSTALL file for required versions.
make 必须在版本 4 之下。
答案1
最后我终于用 linuxthreads 编译了 glibc。我将发布操作步骤:
我使用 Ubuntu 6.06.2 LTS (Dapper Drake)
修改/etc/apt/source.list
deb http://archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://archive.ubuntu.com/ubuntu dapper main restricted
...
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
到
deb http://old-releases.ubuntu.com/ubuntu dapper main restricted
deb-src http://old-releases.ubuntu.com/ubuntu dapper main restricted
...
#deb http://security.ubuntu.com/ubuntu dapper-security main restricted
#deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
然后
sudo apt-get update
sudo apt-get install gcc g++ make
下载并解压:
将插件 linuxthreads、linuxthreads_db 和 libidn 复制到文件夹 glibc-2.3.6
创建构建文件夹
mkdir build && cd build
../glibc-2.3.6/configure --prefix=/home/ubuntu/glib --enable-add-ons=libio,libidn,linuxthreads --without-__thread
make
make install
检查 libc.so.6 是否确实有该插件。
运行可共享对象 /home/ubuntu/glib/lib/libc.so.6
你会得到这个输出