diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml index ef9f3948c..8cd14ba6b 100644 --- a/chapter05/binutils-pass1.xml +++ b/chapter05/binutils-pass1.xml @@ -136,16 +136,16 @@ 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 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. + By default, the linker would generate the classic ELF hash + table for shared libraries and dynamically linked executables + because the GNU-style hash table is incompatible with the MIPS o32 + ABI. The hash tables are only intended for a dynamic linker to + perform symbol lookup. On LFS the dynamic linker (provided by the + Glibc package) supports the GNU-style hash table, and this LFS + edition does not support the o32 ABI. So this is used to make the + linker generate the GNU-style hash table instead of the classic + ELF hash table by default, as the GNU-style hash table is faster + to query.