From 6e45e6ef4de173f8b94de07f9522c35fc230151c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 25 Nov 2015 02:35:18 +0100 Subject: Fix hurd build with hidden support * 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 (__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. --- sysdeps/mach/hurd/accept4.c | 1 - sysdeps/mach/hurd/configure | 3 --- sysdeps/mach/hurd/configure.ac | 3 --- sysdeps/mach/hurd/dl-sysdep.c | 3 ++- sysdeps/mach/hurd/fxstatat64.c | 1 + sysdeps/mach/hurd/if_index.c | 3 +++ sysdeps/mach/hurd/open.c | 2 +- sysdeps/mach/hurd/sigwait.c | 1 + sysdeps/mach/hurd/xmknodat.c | 2 ++ sysdeps/mach/nanosleep.c | 6 ++++-- 10 files changed, 14 insertions(+), 11 deletions(-) (limited to 'sysdeps/mach') diff --git a/sysdeps/mach/hurd/accept4.c b/sysdeps/mach/hurd/accept4.c index 19114f7..13cd593 100644 --- a/sysdeps/mach/hurd/accept4.c +++ b/sysdeps/mach/hurd/accept4.c @@ -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) diff --git a/sysdeps/mach/hurd/configure b/sysdeps/mach/hurd/configure index 3d155a4..dc43144 100644 --- a/sysdeps/mach/hurd/configure +++ b/sysdeps/mach/hurd/configure @@ -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" diff --git a/sysdeps/mach/hurd/configure.ac b/sysdeps/mach/hurd/configure.ac index af9a9ea..4e7e260 100644 --- a/sysdeps/mach/hurd/configure.ac +++ b/sysdeps/mach/hurd/configure.ac @@ -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" diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index e446f15..7b3c569 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -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; diff --git a/sysdeps/mach/hurd/fxstatat64.c b/sysdeps/mach/hurd/fxstatat64.c index a15c16d..ee7456d 100644 --- a/sysdeps/mach/hurd/fxstatat64.c +++ b/sysdeps/mach/hurd/fxstatat64.c @@ -43,3 +43,4 @@ __fxstatat64 (int vers, int fd, const char *filename, struct stat64 *buf, return __hurd_fail (err); } +libc_hidden_def (__fxstatat64) diff --git a/sysdeps/mach/hurd/if_index.c b/sysdeps/mach/hurd/if_index.c index 652149b..03b31f9 100644 --- a/sysdeps/mach/hurd/if_index.c +++ b/sysdeps/mach/hurd/if_index.c @@ -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 diff --git a/sysdeps/mach/hurd/open.c b/sysdeps/mach/hurd/open.c index c497a7c..6d5c97b 100644 --- a/sysdeps/mach/hurd/open.c +++ b/sysdeps/mach/hurd/open.c @@ -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) diff --git a/sysdeps/mach/hurd/sigwait.c b/sysdeps/mach/hurd/sigwait.c index de024a3..8850f2a 100644 --- a/sysdeps/mach/hurd/sigwait.c +++ b/sysdeps/mach/hurd/sigwait.c @@ -129,4 +129,5 @@ all_done: return 0; } +libc_hidden_def (__sigwait) weak_alias (__sigwait, sigwait) diff --git a/sysdeps/mach/hurd/xmknodat.c b/sysdeps/mach/hurd/xmknodat.c index 6c7d669..82a6eb9 100644 --- a/sysdeps/mach/hurd/xmknodat.c +++ b/sysdeps/mach/hurd/xmknodat.c @@ -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) diff --git a/sysdeps/mach/nanosleep.c b/sysdeps/mach/nanosleep.c index 390d8a7..eabd23e 100644 --- a/sysdeps/mach/nanosleep.c +++ b/sysdeps/mach/nanosleep.c @@ -19,10 +19,11 @@ #include #include #include +#include #include 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) -- cgit v1.1