@@ -1,3 +1,9 @@
+2018-06-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * sysdeps/mach/hurd/localplt.data: Move to...
+ * sysdeps/mach/hurd/i386/localplt.data: new file. Add + REL
+ R_386_GLOB_DAT like on Linux i386.
+
2018-06-18 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC]
similarity index 69%
rename from sysdeps/mach/hurd/localplt.data
rename to sysdeps/mach/hurd/i386/localplt.data
@@ -1,23 +1,25 @@
# See scripts/check-localplt.awk for how this file is processed.
# PLT use is required for the malloc family and for matherr because
# users can define their own functions and have library internals call them.
-libc.so: calloc
-libc.so: free
-libc.so: malloc
-libc.so: memalign
-libc.so: realloc
-libm.so: matherr
+# Linker in binutils 2.26 and newer consolidates R_X86_64_JUMP_SLOT
+# relocation with R_386_GLOB_DAT relocation against the same symbol.
+libc.so: calloc + REL R_386_GLOB_DAT
+libc.so: free + REL R_386_GLOB_DAT
+libc.so: malloc + REL R_386_GLOB_DAT
+libc.so: memalign + REL R_386_GLOB_DAT
+libc.so: realloc + REL R_386_GLOB_DAT
+libm.so: matherr + REL R_386_GLOB_DAT
# The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
-ld.so: malloc
-ld.so: calloc
-ld.so: realloc
-ld.so: free
+ld.so: malloc + REL R_386_GLOB_DAT
+ld.so: calloc + REL R_386_GLOB_DAT
+ld.so: realloc + REL R_386_GLOB_DAT
+ld.so: free + REL R_386_GLOB_DAT
# The TLS-enabled version of these functions is interposed from libc.so.
-ld.so: _dl_signal_error
-ld.so: _dl_catch_error
-ld.so: _dl_signal_exception
-ld.so: _dl_catch_exception
+ld.so: _dl_signal_error + REL R_386_GLOB_DAT
+ld.so: _dl_catch_error + REL R_386_GLOB_DAT
+ld.so: _dl_signal_exception + REL R_386_GLOB_DAT
+ld.so: _dl_catch_exception + REL R_386_GLOB_DAT
# The dynamic linker has its own versions of basic functions for initial loading
# of shared libraries. These need to be overriden by libc once loaded.
ld.so: __open ?