about summary refs log tree commit diff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-12-04 09:13:43 +0100
committerFlorian Weimer <fweimer@redhat.com>2020-12-04 09:16:41 +0100
commit785969a047ad2f23f758901c6816422573544453 (patch)
tree02a98a4f402f44b404c8656a8dcd9e6795871a0d /elf/Makefile
parentdfb3f101c5ef23adf60d389058a2b33e23303d04 (diff)
downloadglibc-785969a047ad2f23f758901c6816422573544453.tar.gz
glibc-785969a047ad2f23f758901c6816422573544453.tar.xz
glibc-785969a047ad2f23f758901c6816422573544453.zip
elf: Implement a string table for ldconfig, with tail merging
This will be used in ldconfig to reduce the ld.so.cache size slightly.

Tail merging is an optimization where a pointer points into another
string if the first string is a suffix of the second string.

The hash function FNV-1a was chosen because it is simple and achieves
good dispersion even for short strings (so that the hash table bucket
count can be a power of two).  It is clearly superior to the hsearch
hash and the ELF hash in this regard.

The hash table uses chaining for collision resolution.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Diffstat (limited to 'elf/Makefile')
-rw-r--r--elf/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile
index db10541829..13320933f3 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -174,7 +174,7 @@ tests-container := \
 
 tests := tst-tls9 tst-leaks1 \
 	tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \
-	tst-auxv
+	tst-auxv tst-stringtable
 tests-internal := tst-tls1 tst-tls2 $(tests-static-internal)
 tests-static := $(tests-static-normal) $(tests-static-internal)