coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

building old coreutils versions on new glibc systems


From: Assaf Gordon
Subject: building old coreutils versions on new glibc systems
Date: Thu, 1 Aug 2019 20:47:56 -0600
User-agent: Mutt/1.11.4 (2019-03-13)

Hello,

While trying to find out the first version with the 'seq' bug
(my previous email), I realized it has become quite hard to build
old coreutils version on newer glibc system.

In particular:
1. At some point 'gets' was removed from glibc, but old sources refer it.
2. Older gnulib used internal glibc symbols (libio.h) and the detection
method changed (_IO_ftrylockfile vs _IO_EOF_SEEN).
See:  https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=74d9d6a2
3. Old coreutils defined 'futimens','tee','eaccess' functions which conflict
with later glibc functions of same name.

In short, it's not trivial to download a tarball from
https://ftp.gnu.org/gnu/coreutils/ and build it on modern systems
(and it seems even more complicated to build from git).

The attached patches enable building old tarballs on modern systems
(tested on Debian 10 with GLIBC 2.28-10, gcc 8.3.0-6).

The sequence should be:

    wget https://ftp.gnu.org/gnu/coreutils/coreutils-5.97.tar.gz
    tar -xf coreutils-5.97.tar.gz
    cd coreutils-5.97
    patch -p1 < ../coreutils-5.97-on-glibc-2.28.patch
    ./configure
    make

Coreutils Versions             Patch file
5.0                            coreutils-5.0-on-glibc-2.28.patch
5.97 to 6.9                    coreutils-5.97-on-glibc-2.28.patch
6.10                           coreutils-6.10-on-glibc-2.28.patch
6.11                           coreutils-6.11-on-glibc-2.28.patch
6.12                           coreutils-6.12-on-glibc-2.28.patch
7.2  to 8.3                    coreutils-7.2-on-glibc-2.28.patch
8.4  to 8.12                   coreutils-8.4-on-glibc-2.28.patch
8.13 to 8.16                   coreutils-8.13-on-glibc-2.28.patch
8.17                           coreutils-8.17-on-glibc-2.28.patch
8.18 to 8.23                   coreutils-8.18-on-glibc-2.28.patch
8.24 to 8.29                   coreutils-8.24-on-glibc-2.28.patch
8.30 and newer                 [builds without patching]


Hope this helps someone.

regards,
 - assaf

Attachment: coreutils-5.0-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-5.97-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-6.10-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-6.11-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-6.12-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-7.2-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-8.4-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-8.13-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-8.17-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-8.18-on-glibc-2.28.patch
Description: Text document

Attachment: coreutils-8.24-on-glibc-2.28.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]