diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-07-28 14:57:10 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-07-28 14:57:10 +0200 |
commit | 99bc62413665dbfcc2c9ec0434bd668323f422e8 (patch) | |
tree | 9b3b47a4e627b7a1abe659a24a4a85185dae1251 /sysdeps | |
parent | bcb1c4afd8941d4248cc4925f4a7e63118cf56a7 (diff) | |
download | glibc-99bc62413665dbfcc2c9ec0434bd668323f422e8.tar glibc-99bc62413665dbfcc2c9ec0434bd668323f422e8.tar.gz glibc-99bc62413665dbfcc2c9ec0434bd668323f422e8.tar.bz2 glibc-99bc62413665dbfcc2c9ec0434bd668323f422e8.zip |
hurd: Fix some ld.so symbol override from libc
ld.so symbols to be overriden by libc need to be extern to really get
overriden.
* sysdeps/mach/hurd/dl-unistd.h (__access, __brk, __lseek, __read,
__sbrk): Do not set attribute_hidden.
* sysdeps/mach/hurd/i386/ld.abilist: Update accordingly.
* sysdeps/mach/hurd/i386/localplt.data: Update accordingly.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/mach/hurd/dl-unistd.h | 10 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/ld.abilist | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/localplt.data | 8 |
3 files changed, 8 insertions, 12 deletions
diff --git a/sysdeps/mach/hurd/dl-unistd.h b/sysdeps/mach/hurd/dl-unistd.h index 81cdd9a8c5..da7f0ed18d 100644 --- a/sysdeps/mach/hurd/dl-unistd.h +++ b/sysdeps/mach/hurd/dl-unistd.h @@ -17,12 +17,6 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -/* __close, __getcwd, __getpid, __libc_read and __libc_write can't be - hidden in ld.so on Hurd since they will be preempted by the ones in - libc.so after bootstrap. */ -extern __typeof (__access) __access attribute_hidden; -extern __typeof (__brk) __brk attribute_hidden; -extern __typeof (__lseek) __lseek attribute_hidden; +/* Most stubs mustn't be hidden in ld.so on Hurd since they need to be preempted + by functions from libc.so after bootstrap. */ extern __typeof (__profil) __profil attribute_hidden; -extern __typeof (__read) __read attribute_hidden; -extern __typeof (__sbrk) __sbrk attribute_hidden; diff --git a/sysdeps/mach/hurd/i386/ld.abilist b/sysdeps/mach/hurd/i386/ld.abilist index 3a89b5a10e..c76b913486 100644 --- a/sysdeps/mach/hurd/i386/ld.abilist +++ b/sysdeps/mach/hurd/i386/ld.abilist @@ -6,6 +6,8 @@ GLIBC_2.2.6 __libc_stack_end D 0x4 GLIBC_2.2.6 __mmap F GLIBC_2.2.6 __open F GLIBC_2.2.6 __open64 F +GLIBC_2.2.6 __read F +GLIBC_2.2.6 __sbrk F GLIBC_2.2.6 __strtoul_internal F GLIBC_2.2.6 __write F GLIBC_2.2.6 __writev F diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data index 69d3a2568d..78f8c877c6 100644 --- a/sysdeps/mach/hurd/i386/localplt.data +++ b/sysdeps/mach/hurd/i386/localplt.data @@ -23,10 +23,10 @@ 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 ? -ld.so: __open64 ? +ld.so: __open64 ld.so: __close -ld.so: __read ? -ld.so: __write ? +ld.so: __read +ld.so: __write ld.so: __writev ld.so: __libc_lseek64 ld.so: __mmap @@ -36,7 +36,7 @@ ld.so: __xstat64 #ld.so: __access_noerrno ld.so: __getpid #ld.so: __getcwd -#ld.so: __sbrk +ld.so: __sbrk ld.so: __strtoul_internal #ld.so: _exit ld.so: abort |