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