hurd: Fix "Missing required PLT reference"
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 19 Jun 2018 00:32:41 +0000 (02:32 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 19 Jun 2018 00:32:41 +0000 (02:32 +0200)
* 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.

ChangeLog
sysdeps/mach/hurd/i386/localplt.data [moved from sysdeps/mach/hurd/localplt.data with 69% similarity]

index fd6e171..e83db88 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index a1f1ae6..e0745ed 100644 (file)
@@ -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 ?