aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2023-11-23 19:01:32 +0000
committerJoseph Myers <joseph@codesourcery.com>2023-11-23 19:01:32 +0000
commit2e0c0ff95ca0e3122eb5b906ee26a31f284ce5ab (patch)
tree4cba7b7727128374d4c8a659f32b0acef7a13bba /sysdeps/mach/hurd
parent472894d2cfee5751b44c0aaa71ed87df81c8e62e (diff)
downloadglibc-2e0c0ff95ca0e3122eb5b906ee26a31f284ce5ab.tar
glibc-2e0c0ff95ca0e3122eb5b906ee26a31f284ce5ab.tar.gz
glibc-2e0c0ff95ca0e3122eb5b906ee26a31f284ce5ab.tar.bz2
glibc-2e0c0ff95ca0e3122eb5b906ee26a31f284ce5ab.zip
Remove __access_noerrno
A recent commit, apparently commit 6c6fce572fb8f583f14d898e54fd7d25ae91cf56 "elf: Remove /etc/suid-debug support", resulted in localplt failures for i686-gnu and x86_64-gnu: Missing required PLT reference: ld.so: __access_noerrno After that commit, __access_noerrno is actually no longer used at all. So rather than just removing the localplt expectation for that symbol for Hurd, completely remove all definitions of and references to that symbol. Tested for x86_64, and with build-many-glibcs.py for i686-gnu and x86_64-gnu.
Diffstat (limited to 'sysdeps/mach/hurd')
-rw-r--r--sysdeps/mach/hurd/Versions4
-rw-r--r--sysdeps/mach/hurd/access.c10
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c13
-rw-r--r--sysdeps/mach/hurd/i386/localplt.data1
-rw-r--r--sysdeps/mach/hurd/not-errno.h21
-rw-r--r--sysdeps/mach/hurd/x86_64/localplt.data1
6 files changed, 5 insertions, 45 deletions
diff --git a/sysdeps/mach/hurd/Versions b/sysdeps/mach/hurd/Versions
index 20ac0067c7..17592d3569 100644
--- a/sysdeps/mach/hurd/Versions
+++ b/sysdeps/mach/hurd/Versions
@@ -15,7 +15,7 @@ libc {
}
GLIBC_PRIVATE {
# Functions shared with the dynamic linker
- __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
+ __access; __libc_read; __libc_write; __libc_lseek64;
__close_nocancel;
__open_nocancel;
__read_nocancel; __pread64_nocancel;
@@ -56,7 +56,7 @@ ld {
_dl_init_first;
# functions that must be shared with libc
- __access; __access_noerrno; __libc_read; __libc_write; __libc_lseek64;
+ __access; __libc_read; __libc_write; __libc_lseek64;
__close_nocancel;
__open_nocancel;
__read_nocancel; __pread64_nocancel;
diff --git a/sysdeps/mach/hurd/access.c b/sysdeps/mach/hurd/access.c
index 9e8b9014a7..87a15e5a8b 100644
--- a/sysdeps/mach/hurd/access.c
+++ b/sysdeps/mach/hurd/access.c
@@ -19,16 +19,6 @@
#include <unistd.h>
#include <fcntl.h>
-/* Test for access to FILE by our real user and group IDs without setting
- errno. This may be unsafe to run during initialization of tunables
- since access_common calls __hurd_file_name_lookup, which calls
- __hurd_file_name_lookup_retry, which can set errno. */
-int
-__access_noerrno (const char *file, int type)
-{
- return __faccessat_noerrno (AT_FDCWD, file, type, 0);
-}
-
/* Test for access to FILE by our real user and group IDs. */
int
__access (const char *file, int type)
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 6994f8f7b6..38e55acc43 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -542,22 +542,15 @@ __stat64 (const char *file, struct stat64 *buf)
}
libc_hidden_def (__stat64)
-/* This function is called by the dynamic linker (rtld.c) to check
- whether debugging malloc is allowed even for SUID binaries. This
- stub will always fail, which means that malloc-debugging is always
- disabled for SUID binaries. */
+/* This function is called by the dynamic linker (rtld.c) to check for
+ existence of /etc/ld.so.preload. This stub will always fail, which
+ means that /etc/ld.so.preload is unsupported. */
check_no_hidden(__access);
int weak_function
__access (const char *file, int type)
{
return __hurd_fail (ENOSYS);
}
-check_no_hidden(__access_noerrno);
-int weak_function
-__access_noerrno (const char *file, int type)
-{
- return -1;
-}
int
__rtld_execve (const char *file_name, char *const argv[],
diff --git a/sysdeps/mach/hurd/i386/localplt.data b/sysdeps/mach/hurd/i386/localplt.data
index 89b124db9f..b7882d0fbd 100644
--- a/sysdeps/mach/hurd/i386/localplt.data
+++ b/sysdeps/mach/hurd/i386/localplt.data
@@ -27,7 +27,6 @@ ld.so: __mmap
ld.so: __fstat64
ld.so: __stat64
ld.so: __access
-ld.so: __access_noerrno
ld.so: __getpid
ld.so: __getcwd
ld.so: _exit ?
diff --git a/sysdeps/mach/hurd/not-errno.h b/sysdeps/mach/hurd/not-errno.h
deleted file mode 100644
index 956b065974..0000000000
--- a/sysdeps/mach/hurd/not-errno.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Syscall wrapper that do not set errno. Generic version.
- Copyright (C) 2017-2023 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* The __access_noerrno stub mustn't be hidden in ld.so on Hurd since it needs
- to be preempted by __access_noerrno from libc.so after bootstrap. */
-extern __typeof (__access) __access_noerrno;
diff --git a/sysdeps/mach/hurd/x86_64/localplt.data b/sysdeps/mach/hurd/x86_64/localplt.data
index c38821e2fa..b7689b5cb0 100644
--- a/sysdeps/mach/hurd/x86_64/localplt.data
+++ b/sysdeps/mach/hurd/x86_64/localplt.data
@@ -26,7 +26,6 @@ ld.so: __mmap
ld.so: __fstat64
ld.so: __stat64
ld.so: __access
-ld.so: __access_noerrno
ld.so: __getpid
ld.so: __getcwd
ld.so: _exit ?