[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1020705: glibc: Keep DT_HASH



Source: glibc
Version: 2.36-1
Tags: patch

Please consider restoring DT_HASH in your glibc 2.36 packaging. Here's
an article with more details:

https://lwn.net/Articles/904892/

Below is the patch that Ubuntu 22.10 is applying. Or you could use the
Arch Linux patch
https://github.com/archlinux/svntogit-packages/blob/packages/glibc/trunk/reenable_DT_HASH.patch


diff -pruN 2.36-1/debian/patches/restore-libc-DT_HASH.patch
2.36-0ubuntu2/debian/patches/restore-libc-DT_HASH.patch
--- 2.36-1/debian/patches/restore-libc-DT_HASH.patch 1970-01-01
00:00:00.000000000 +0000
+++ 2.36-0ubuntu2/debian/patches/restore-libc-DT_HASH.patch 2022-08-22
01:24:09.000000000 +0000
@@ -0,0 +1,32 @@
+Description: restore DT_HASH tag for libc.so.6
+ Should consider upstreaming a configure flag for this, perhaps.
+Author: Michael Hudson-Doyle
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29456
+Last-Update: 2022-08-22
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/Makerules
++++ b/Makerules
+@@ -558,6 +558,9 @@
+  -Wl,--verbose 2>/dev/null | \
+  sed > $@T \
+      -e '/^=========/,/^=========/!d;/^=========/d' \
++              -e 's/^.*\.gnu\.hash[        ]*:.*$$/  .note.ABI-tag :
{ *(.note.ABI-tag) } &/' \
++              -e '/^[      ]*\.hash[       ]*:.*$$/{h;d;}' \
++              -e '/DATA_SEGMENT_ALIGN/{H;g}' \
+      -e 's/^.*\*(\.dynbss).*$$/& \
+ PROVIDE(__start___libc_freeres_ptrs = .); \
+ *(__libc_freeres_ptrs) \
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -367,6 +367,10 @@
+ LDFLAGS.so += $(relro-LDFLAGS)
+ LDFLAGS-rtld += $(relro-LDFLAGS)
+
++hashstyle-LDFLAGS = -Wl,--hash-style=both
++LDFLAGS.so += $(hashstyle-LDFLAGS)
++LDFLAGS-rtld += $(hashstyle-LDFLAGS)
++
+ # Linker options to enable and disable DT_RELR.
+ ifeq ($(have-dt-relr),yes)
+ dt-relr-ldflag = -Wl,-z,pack-relative-relocs


Thank you,
Jeremy Bicha


Reply to: