From c77e4dc0f531caa8f3302a5aa5d755efb7c5725b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 19 Jun 2018 02:32:41 +0200 Subject: [PATCH] hurd: Fix "Missing required PLT reference" * 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 | 6 +++++ sysdeps/mach/hurd/{ => i386}/localplt.data | 30 ++++++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) rename sysdeps/mach/hurd/{ => i386}/localplt.data (69%) diff --git a/ChangeLog b/ChangeLog index fd6e171be2..e83db88929 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-06-18 Samuel Thibault + + * 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 * sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC] diff --git a/sysdeps/mach/hurd/localplt.data b/sysdeps/mach/hurd/i386/localplt.data similarity index 69% rename from sysdeps/mach/hurd/localplt.data rename to sysdeps/mach/hurd/i386/localplt.data index a1f1ae626a..e0745edac9 100644 --- a/sysdeps/mach/hurd/localplt.data +++ b/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 ? -- 2.43.5