Fix hurd build with hidden support
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 25 Nov 2015 01:35:18 +0000 (02:35 +0100)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 25 Nov 2015 01:35:18 +0000 (02:35 +0100)
* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port
of interrupted RPC instead of restoring it.

* sysdeps/i386/setjmp.S (__sigsetjmp): Add hidden_def.
* sysdeps/mach/hurd/accept4.c (__libc_accept4): Remove
libc_hidden_def.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_stack_end): Add relro
attribute, define rtld_hidden_data_def.
* sysdeps/mach/hurd/fxstatat64.c (__fxstatat64): Add libc_hidden_def.
* sysdeps/mach/hurd/if_index.c (__if_freenameindex): Add
libc_hidden_def.
(if_freenameindex): Add libc_hidden_weak.
(if_nameindex): Add libc_hidden_weak.
* sysdeps/mach/hurd/open.c (_open64): Rename libc_hidden_weak into
__open64.
* sysdeps/mach/hurd/sigwait.c (__sigwait): Add libc_hidden_def.
* sysdeps/mach/hurd/xmknodat.c (__xmknodat): Add libc_hidden_def.
* sysdeps/mach/nanosleep.c: Include <time.h>
(__nanosleep): Rename to __libc_nanosleep.
(__nanosleep): Add weak_alias.
(nanosleep): Update alias.
* sysdeps/mach/hurd/configure.ac (NO_HIDDEN): Do not define.
* sysdeps/mach/hurd/configure: Regenerate.

12 files changed:
ChangeLog
sysdeps/i386/setjmp.S
sysdeps/mach/hurd/accept4.c
sysdeps/mach/hurd/configure
sysdeps/mach/hurd/configure.ac
sysdeps/mach/hurd/dl-sysdep.c
sysdeps/mach/hurd/fxstatat64.c
sysdeps/mach/hurd/if_index.c
sysdeps/mach/hurd/open.c
sysdeps/mach/hurd/sigwait.c
sysdeps/mach/hurd/xmknodat.c
sysdeps/mach/nanosleep.c

index 33ea5ab..8a7e96b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,27 @@
        * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Destroy reply port
        of interrupted RPC instead of restoring it.
 
+       * sysdeps/i386/setjmp.S (__sigsetjmp): Add hidden_def.
+       * sysdeps/mach/hurd/accept4.c (__libc_accept4): Remove
+       libc_hidden_def.
+       * sysdeps/mach/hurd/dl-sysdep.c (__libc_stack_end): Add relro
+       attribute, define rtld_hidden_data_def.
+       * sysdeps/mach/hurd/fxstatat64.c (__fxstatat64): Add libc_hidden_def.
+       * sysdeps/mach/hurd/if_index.c (__if_freenameindex): Add
+       libc_hidden_def.
+       (if_freenameindex): Add libc_hidden_weak.
+       (if_nameindex): Add libc_hidden_weak.
+       * sysdeps/mach/hurd/open.c (_open64): Rename libc_hidden_weak into
+       __open64.
+       * sysdeps/mach/hurd/sigwait.c (__sigwait): Add libc_hidden_def.
+       * sysdeps/mach/hurd/xmknodat.c (__xmknodat): Add libc_hidden_def.
+       * sysdeps/mach/nanosleep.c: Include <time.h>
+       (__nanosleep): Rename to __libc_nanosleep.
+       (__nanosleep): Add weak_alias.
+       (nanosleep): Update alias.
+       * sysdeps/mach/hurd/configure.ac (NO_HIDDEN): Do not define.
+       * sysdeps/mach/hurd/configure: Regenerate.
+
 2015-11-24  Joseph Myers  <joseph@codesourcery.com>
 
        * stdlib/strtod_nan.c: New file.
index 5fe4900..cb4f0bd 100644 (file)
@@ -55,3 +55,4 @@ ENTRY (__sigsetjmp)
        jmp __sigjmp_save
 #endif
 END (__sigsetjmp)
+hidden_def (__sigsetjmp)
index 19114f7..13cd593 100644 (file)
@@ -95,5 +95,4 @@ __libc_accept4 (int fd, __SOCKADDR_ARG addrarg, socklen_t *addr_len, int flags)
 
   return _hurd_intern_fd (new, O_IGNORE_CTTY | flags, 1);
 }
-libc_hidden_def (__libc_accept4)
 weak_alias (__libc_accept4, accept4)
index 3d155a4..dc43144 100644 (file)
@@ -1,8 +1,5 @@
 # This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
 
-$as_echo "#define NO_HIDDEN 1" >>confdefs.h
-
-
 if test -n "$sysheaders"; then
   OLD_CPPFLAGS=$CPPFLAGS
   CPPFLAGS="$CPPFLAGS $SYSINCLUDES"
index af9a9ea..4e7e260 100644 (file)
@@ -1,8 +1,5 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 
-dnl We need this setting because of the need for PLT calls in ld.so.
-AC_DEFINE([NO_HIDDEN])
-
 if test -n "$sysheaders"; then
   OLD_CPPFLAGS=$CPPFLAGS
   CPPFLAGS="$CPPFLAGS $SYSINCLUDES"
index e446f15..7b3c569 100644 (file)
@@ -55,7 +55,8 @@ rtld_hidden_data_def (__libc_enable_secure)
 int __libc_multiple_libcs = 0; /* Defining this here avoids the inclusion
                                   of init-first.  */
 /* This variable contains the lowest stack address ever used.  */
-void *__libc_stack_end;
+void *__libc_stack_end attribute_relro = NULL;
+rtld_hidden_data_def(__libc_stack_end)
 
 #if HP_TIMING_AVAIL
 hp_timing_t _dl_cpuclock_offset;
index a15c16d..ee7456d 100644 (file)
@@ -43,3 +43,4 @@ __fxstatat64 (int vers, int fd, const char *filename, struct stat64 *buf,
 
   return __hurd_fail (err);
 }
+libc_hidden_def (__fxstatat64)
index 652149b..03b31f9 100644 (file)
@@ -65,7 +65,9 @@ __if_freenameindex (struct if_nameindex *ifn)
     }
   free (ifn);
 }
+libc_hidden_def (__if_freenameindex)
 weak_alias (__if_freenameindex, if_freenameindex)
+libc_hidden_weak (if_freenameindex)
 
 /* Return an array of if_nameindex structures, one for each network
    interface present, plus one indicating the end of the array.  On
@@ -152,6 +154,7 @@ __if_nameindex (void)
   return idx;
 }
 weak_alias (__if_nameindex, if_nameindex)
+libc_hidden_weak (if_nameindex)
 
 /* Store the name of the interface corresponding to index IFINDEX in
    IFNAME (which has space for at least IFNAMSIZ characters).  Return
index c497a7c..6d5c97b 100644 (file)
@@ -56,5 +56,5 @@ weak_alias (__libc_open, open)
 /* open64 is just the same as open for us.  */
 weak_alias (__libc_open, __libc_open64)
 weak_alias (__libc_open, __open64)
-libc_hidden_weak (_open64)
+libc_hidden_weak (__open64)
 weak_alias (__libc_open, open64)
index de024a3..8850f2a 100644 (file)
@@ -129,4 +129,5 @@ all_done:
   return 0;
 }
 
+libc_hidden_def (__sigwait)
 weak_alias (__sigwait, sigwait)
index 6c7d669..82a6eb9 100644 (file)
@@ -115,3 +115,5 @@ __xmknodat (int vers, int fd, const char *path, mode_t mode, dev_t *dev)
     return __hurd_fail (err);
   return 0;
 }
+
+libc_hidden_def (__xmknodat)
index 390d8a7..eabd23e 100644 (file)
 #include <errno.h>
 #include <mach.h>
 #include <sys/time.h>
+#include <time.h>
 #include <unistd.h>
 
 int
-__nanosleep (const struct timespec *requested_time,
+__libc_nanosleep (const struct timespec *requested_time,
             struct timespec *remaining)
 {
   mach_port_t recv;
@@ -64,5 +65,6 @@ __nanosleep (const struct timespec *requested_time,
 
   return 0;
 }
+weak_alias(__libc_nanosleep, __nanosleep)
 libc_hidden_def (__nanosleep)
-weak_alias (__nanosleep, nanosleep)
+weak_alias (__libc_nanosleep, nanosleep)