From 6fec3f51e71f36219829eddd63b1cf6e11bcd447 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Sun, 31 Dec 2023 02:33:59 +0800 Subject: binutils: Add --enable-default-hash-style=gnu for configure (#5401) --- chapter01/changelog.xml | 5 +++++ chapter05/binutils-pass1.xml | 19 ++++++++++++++++++- chapter06/binutils-pass2.xml | 3 ++- chapter08/binutils.xml | 14 ++++---------- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 756e9d5fc..de94d85d9 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -43,6 +43,11 @@ 2023-12-31 + + [xry111] - Add --enable-default-hash-style=gnu configuring + binutils. Fixes + #5401. + [xry111] - Fix CVE-2023-7008 for systemd-255. Fixes #5405. diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index 65e8dd2ae..c3bf1f117 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -75,7 +75,8 @@ cd build --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ - --disable-werror + --disable-werror \ + --enable-default-hash-style=gnu The meaning of the configure options: @@ -132,6 +133,22 @@ cd build + + --enable-default-hash-style=gnu + + By default, the linker would generate both the GNU-style + hash table and the classic ELF hash table for shared libraries and + dynamically linked executables. The hash tables are only intended + for a dynamic linker to perform symbol lookup. On LFS the dynamic + linker (provided by the Glibc package) will always use the + GNU-style hash table which is faster to query. So the classic + ELF hash table is completely useless. This makes the the linker + only generate the GNU-style hash table by default, so we can avoid + wasting time to generate the classic ELF hash table when we build + the packages, or wasting disk space to store it. + + + Continue with compiling the package: diff --git a/chapter06/binutils-pass2.xml b/chapter06/binutils-pass2.xml index 983aaee2f..15582f937 100644 --- a/chapter06/binutils-pass2.xml +++ b/chapter06/binutils-pass2.xml @@ -72,7 +72,8 @@ cd build --enable-shared \ --enable-gprofng=no \ --disable-werror \ - --enable-64-bit-bfd + --enable-64-bit-bfd \ + --enable-default-hash-style=gnu The meaning of the new configure options: diff --git a/chapter08/binutils.xml b/chapter08/binutils.xml index 1fd436bd1..9e93e55f0 100644 --- a/chapter08/binutils.xml +++ b/chapter08/binutils.xml @@ -57,9 +57,11 @@ cd build --enable-shared \ --disable-werror \ --enable-64-bit-bfd \ - --with-system-zlib + --with-system-zlib \ + --enable-default-hash-style=gnu + - The meaning of the configure parameters: + The meaning of the new configure parameters: --enable-gold @@ -84,14 +86,6 @@ cd build - - --enable-64-bit-bfd - - Enables 64-bit support (on hosts with narrower word sizes). - May not be needed on 64-bit systems, but does no harm. - - - --with-system-zlib -- cgit v1.2.3-54-g00ecf