aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-07-28 14:57:10 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-07-28 14:57:10 +0200
commit99bc62413665dbfcc2c9ec0434bd668323f422e8 (patch)
tree9b3b47a4e627b7a1abe659a24a4a85185dae1251 /sysdeps
parentbcb1c4afd8941d4248cc4925f4a7e63118cf56a7 (diff)
downloadglibc-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.h10
-rw-r--r--sysdeps/mach/hurd/i386/ld.abilist2
-rw-r--r--sysdeps/mach/hurd/i386/localplt.data8
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