summary refs log tree commit diff
path: root/sysdeps/mach/hurd
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2019-12-01 20:48:46 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2019-12-01 21:05:51 +0000
commitdb25266c9202a1235ce2e2f8a4f84cfb86254196 (patch)
treeb23f1944793f1c15c8cda8b659034454c34fea4e /sysdeps/mach/hurd
parent892badc9bbcd4a6f8c2eb6c8a99be3aa22517532 (diff)
downloadglibc-db25266c9202a1235ce2e2f8a4f84cfb86254196.tar.gz
glibc-db25266c9202a1235ce2e2f8a4f84cfb86254196.tar.xz
glibc-db25266c9202a1235ce2e2f8a4f84cfb86254196.zip
hurd: Fix ld.so __getcwd override from libc
ld.so symbols to be overriden by libc need to be extern to really get
overriden. __getcwd happens to have never been exposed, putting it to
GLIBC_PRIVATE.
Diffstat (limited to 'sysdeps/mach/hurd')
-rw-r--r--sysdeps/mach/hurd/Versions8
-rw-r--r--sysdeps/mach/hurd/getcwd.c1
-rw-r--r--sysdeps/mach/hurd/i386/localplt.data2
3 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions
index c0b73cf0bf..dc199bfd66 100644
--- a/sysdeps/mach/hurd/Versions
+++ b/sysdeps/mach/hurd/Versions
@@ -1,7 +1,7 @@
 libc {
   GLIBC_2.0 {
     # functions with a weak definition in the dynamic linker
-    __access; __getcwd; __mmap;
+    __access; __mmap;
   }
   GLIBC_2.2.6 {
     # functions with a weak definition in the dynamic linker
@@ -10,7 +10,7 @@ libc {
   GLIBC_PRIVATE {
     # Functions shared with the dynamic linker
     __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
-    __libc_lock_self0; __sigprocmask;
+    __libc_lock_self0; __sigprocmask; __getcwd;
 
     _dl_init_first;
   }
@@ -22,7 +22,7 @@ ld {
     __hurd_threadvar_stack_mask;  __hurd_threadvar_stack_offset;
 
     # functions that must be shared with libc
-    __access; __close; __getcwd; __getpid;
+    __access; __close; __getpid;
     __mmap; __open; __read; __sbrk; __strtoul_internal;
     __write; __writev; __xstat64; __fxstat64;
     _exit; _hurd_intr_rpc_mach_msg;
@@ -41,6 +41,6 @@ ld {
 
     # functions that must be shared with libc
     __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
-    __libc_lock_self0; __sigprocmask;
+    __libc_lock_self0; __sigprocmask; __getcwd;
   }
 }
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index 2757ac7ce8..4114991144 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -306,4 +306,5 @@ __getcwd (char *buf, size_t size)
 							    buf, size));
   return cwd;
 }
+libc_hidden_def (__getcwd)
 weak_alias (__getcwd, getcwd)
diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data
index 1aef944337..0c1cf0ffa9 100644
--- a/sysdeps/mach/hurd/i386/localplt.data
+++ b/sysdeps/mach/hurd/i386/localplt.data
@@ -35,7 +35,7 @@ ld.so: __xstat64
 #ld.so: __access
 ld.so: __access_noerrno
 ld.so: __getpid
-#ld.so: __getcwd
+ld.so: __getcwd
 ld.so: __sbrk
 ld.so: __strtoul_internal
 #ld.so: _exit