使用 linuxthreads 编译 glibc 2.3

使用 linuxthreads 编译 glibc 2.3

我正在尝试编译 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)

Ubuntu Dapper 实时 CD

修改/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

下载并解压:

glibc 2.3.6

利宾 2.3.6

linuxthreads 2.3.6

将插件 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

你会得到这个输出

libc 与 Linux 线程

相关内容