From 6de49cb73cedb7b132fd556829774bb61cad0122 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Fri, 5 Jan 2024 04:03:08 +0800 Subject: [PATCH] mips64el: binutils: Rewrite the explanation of --enable-default-hash-style=gnu On MIPS there are some differences in the classic ELF hash table vs. GNU-style hash table decision. --- chapter05/binutils-pass1.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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.