commit: bcc54bb4417cc632cbbfddb89240793307929ea0 Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at> AuthorDate: Wed Oct 2 16:45:57 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Oct 4 08:26:10 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcc54bb4
sys-libs/glibc: remove unused patches/file Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at> Closes: https://github.com/gentoo/gentoo/pull/38311 Signed-off-by: Sam James <sam <AT> gentoo.org> .../glibc/files/2.25/glibc-2.25-gentoo-chk_fail.c | 303 --------------------- .../glibc-2.34-hppa-asm-getcontext-fixes.patch | 214 --------------- sys-libs/glibc/files/glibc-2.40-libio-legacy.patch | 30 -- 3 files changed, 547 deletions(-) diff --git a/sys-libs/glibc/files/2.25/glibc-2.25-gentoo-chk_fail.c b/sys-libs/glibc/files/2.25/glibc-2.25-gentoo-chk_fail.c deleted file mode 100644 index 2ef96b75eacf..000000000000 --- a/sys-libs/glibc/files/2.25/glibc-2.25-gentoo-chk_fail.c +++ /dev/null @@ -1,303 +0,0 @@ -/* Copyright (C) 2004-2014 Free Software Foundation, Inc. - Copyright (C) 2006-2014 Gentoo 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, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* Hardened Gentoo SSP and FORTIFY handler - - A failure handler that does not use functions from the rest of glibc; - it uses the INTERNAL_SYSCALL methods directly. This helps ensure no - possibility of recursion into the handler. - - Direct all bug reports to http://bugs.gentoo.org/ - - People who have contributed significantly to the evolution of this file: - Ned Ludd - <solar[@]gentoo.org> - Alexander Gabert - <pappy[@]gentoo.org> - The PaX Team - <pageexec[@]freemail.hu> - Peter S. Mazinger - <ps.m[@]gmx.net> - Yoann Vandoorselaere - <yoann[@]prelude-ids.org> - Robert Connolly - <robert[@]linuxfromscratch.org> - Cory Visi <cory[@]visi.name> - Mike Frysinger <vapier[@]gentoo.org> - Magnus Granberg <zorry[@]gentoo.org> - Kevin F. Quinn - <kevquinn[@]gentoo.org> - */ - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <signal.h> - -#include <sys/types.h> - -#include <sysdep-cancel.h> -#include <sys/syscall.h> - -#include <kernel-features.h> - -#include <alloca.h> -/* from sysdeps */ -#include <socketcall.h> -/* for the stuff in bits/socket.h */ -#include <sys/socket.h> -#include <sys/un.h> - -/* Sanity check on SYSCALL macro names - force compilation - * failure if the names used here do not exist - */ -#if !defined __NR_socketcall && !defined __NR_socket -# error Cannot do syscall socket or socketcall -#endif -#if !defined __NR_socketcall && !defined __NR_connect -# error Cannot do syscall connect or socketcall -#endif -#ifndef __NR_write -# error Cannot do syscall write -#endif -#ifndef __NR_close -# error Cannot do syscall close -#endif -#ifndef __NR_getpid -# error Cannot do syscall getpid -#endif -#ifndef __NR_kill -# error Cannot do syscall kill -#endif -#ifndef __NR_exit -# error Cannot do syscall exit -#endif -#ifdef SSP_SMASH_DUMPS_CORE -# define ENABLE_SSP_SMASH_DUMPS_CORE 1 -# if !defined _KERNEL_NSIG && !defined _NSIG -# error No _NSIG or _KERNEL_NSIG for rt_sigaction -# endif -# if !defined __NR_sigaction && !defined __NR_rt_sigaction -# error Cannot do syscall sigaction or rt_sigaction -# endif -/* Although rt_sigaction expects sizeof(sigset_t) - it expects the size - * of the _kernel_ sigset_t which is not the same as the user sigset_t. - * Most arches have this as _NSIG bits - mips has _KERNEL_NSIG bits for - * some reason. - */ -# ifdef _KERNEL_NSIG -# define _SSP_NSIG _KERNEL_NSIG -# else -# define _SSP_NSIG _NSIG -# endif -#else -# define _SSP_NSIG 0 -# define ENABLE_SSP_SMASH_DUMPS_CORE 0 -#endif - -/* Define DO_SIGACTION - default to newer rt signal interface but - * fallback to old as needed. - */ -#ifdef __NR_rt_sigaction -# define DO_SIGACTION(signum, act, oldact) \ - INLINE_SYSCALL(rt_sigaction, 4, signum, act, oldact, _SSP_NSIG/8) -#else -# define DO_SIGACTION(signum, act, oldact) \ - INLINE_SYSCALL(sigaction, 3, signum, act, oldact) -#endif - -/* Define DO_SOCKET/DO_CONNECT functions to deal with socketcall vs socket/connect */ -#if defined(__NR_socket) && defined(__NR_connect) -# define USE_OLD_SOCKETCALL 0 -#else -# define USE_OLD_SOCKETCALL 1 -#endif - -/* stub out the __NR_'s so we can let gcc optimize away dead code */ -#ifndef __NR_socketcall -# define __NR_socketcall 0 -#endif -#ifndef __NR_socket -# define __NR_socket 0 -#endif -#ifndef __NR_connect -# define __NR_connect 0 -#endif -#define DO_SOCKET(result, domain, type, protocol) \ - do { \ - if (USE_OLD_SOCKETCALL) { \ - socketargs[0] = domain; \ - socketargs[1] = type; \ - socketargs[2] = protocol; \ - socketargs[3] = 0; \ - result = INLINE_SYSCALL(socketcall, 2, SOCKOP_socket, socketargs); \ - } else \ - result = INLINE_SYSCALL(socket, 3, domain, type, protocol); \ - } while (0) -#define DO_CONNECT(result, sockfd, serv_addr, addrlen) \ - do { \ - if (USE_OLD_SOCKETCALL) { \ - socketargs[0] = sockfd; \ - socketargs[1] = (unsigned long int)serv_addr; \ - socketargs[2] = addrlen; \ - socketargs[3] = 0; \ - result = INLINE_SYSCALL(socketcall, 2, SOCKOP_connect, socketargs); \ - } else \ - result = INLINE_SYSCALL(connect, 3, sockfd, serv_addr, addrlen); \ - } while (0) - -#ifndef _PATH_LOG -# define _PATH_LOG "/dev/log" -#endif - -static const char path_log[] = _PATH_LOG; - -/* For building glibc with SSP switched on, define __progname to a - * constant if building for the run-time loader, to avoid pulling - * in more of libc.so into ld.so - */ -#ifdef IS_IN_rtld -static const char *__progname = "<ldso>"; -#else -extern const char *__progname; -#endif - -#ifdef GENTOO_SSP_HANDLER -# define ERROR_MSG "stack smashing" -#else -# define ERROR_MSG "buffer overflow" -#endif - -/* Common handler code, used by chk_fail - * Inlined to ensure no self-references to the handler within itself. - * Data static to avoid putting more than necessary on the stack, - * to aid core debugging. - */ -__attribute__ ((__noreturn__, __always_inline__)) -static inline void -__hardened_gentoo_fail(void) -{ -#define MESSAGE_BUFSIZ 512 - static pid_t pid; - static int plen, i, hlen; - static char message[MESSAGE_BUFSIZ]; - /* <11> is LOG_USER|LOG_ERR. A dummy date for loggers to skip over. */ - static const char msg_header[] = "<11>" __DATE__ " " __TIME__ " glibc-gentoo-hardened-check: "; - static const char msg_ssd[] = "*** " ERROR_MSG " detected ***: "; - static const char msg_terminated[] = " terminated; "; - static const char msg_report[] = "report to " REPORT_BUGS_TO "\n"; - static const char msg_unknown[] = "<unknown>"; - static int log_socket, connect_result; - static struct sockaddr_un sock; - static unsigned long int socketargs[4]; - - /* Build socket address */ - sock.sun_family = AF_UNIX; - i = 0; - while (path_log[i] != '\0' && i < sizeof(sock.sun_path) - 1) { - sock.sun_path[i] = path_log[i]; - ++i; - } - sock.sun_path[i] = '\0'; - - /* Try SOCK_DGRAM connection to syslog */ - connect_result = -1; - DO_SOCKET(log_socket, AF_UNIX, SOCK_DGRAM, 0); - if (log_socket != -1) - DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); - if (connect_result == -1) { - if (log_socket != -1) - INLINE_SYSCALL(close, 1, log_socket); - /* Try SOCK_STREAM connection to syslog */ - DO_SOCKET(log_socket, AF_UNIX, SOCK_STREAM, 0); - if (log_socket != -1) - DO_CONNECT(connect_result, log_socket, &sock, sizeof(sock)); - } - - /* Build message. Messages are generated both in the old style and new style, - * so that log watchers that are configured for the old-style message continue - * to work. - */ -#define strconcat(str) \ - ({ \ - i = 0; \ - while ((str[i] != '\0') && ((i + plen) < (MESSAGE_BUFSIZ - 1))) { \ - message[plen + i] = str[i]; \ - ++i; \ - } \ - plen += i; \ - }) - - /* Tersely log the failure */ - plen = 0; - strconcat(msg_header); - hlen = plen; - strconcat(msg_ssd); - if (__progname != NULL) - strconcat(__progname); - else - strconcat(msg_unknown); - strconcat(msg_terminated); - strconcat(msg_report); - - /* Write out error message to STDERR, to syslog if open */ - INLINE_SYSCALL(write, 3, STDERR_FILENO, message + hlen, plen - hlen); - if (connect_result != -1) { - INLINE_SYSCALL(write, 3, log_socket, message, plen); - INLINE_SYSCALL(close, 1, log_socket); - } - - /* Time to kill self since we have no idea what is going on */ - pid = INLINE_SYSCALL(getpid, 0); - - if (ENABLE_SSP_SMASH_DUMPS_CORE) { - /* Remove any user-supplied handler for SIGABRT, before using it. */ -#if 0 - /* - * Note: Disabled because some programs catch & process their - * own crashes. We've already enabled this code path which - * means we want to let core dumps happen. - */ - static struct sigaction default_abort_act; - default_abort_act.sa_handler = SIG_DFL; - default_abort_act.sa_sigaction = NULL; - __sigfillset(&default_abort_act.sa_mask); - default_abort_act.sa_flags = 0; - if (DO_SIGACTION(SIGABRT, &default_abort_act, NULL) == 0) -#endif - INLINE_SYSCALL(kill, 2, pid, SIGABRT); - } - - /* SIGKILL is only signal which cannot be caught */ - INLINE_SYSCALL(kill, 2, pid, SIGKILL); - - /* In case the kill didn't work, exit anyway. - * The loop prevents gcc thinking this routine returns. - */ - while (1) - INLINE_SYSCALL(exit, 1, 137); -} - -__attribute__ ((__noreturn__)) -#ifdef GENTOO_SSP_HANDLER -void __stack_chk_fail(void) -#else -void __chk_fail(void) -#endif -{ - __hardened_gentoo_fail(); -} - -#ifdef GENTOO_SSP_HANDLER -strong_alias (__stack_chk_fail, __stack_chk_fail_local) -#endif diff --git a/sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch b/sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch deleted file mode 100644 index 299a6dae7dbe..000000000000 --- a/sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch +++ /dev/null @@ -1,214 +0,0 @@ -https://sourceware.org/git/?p=glibc.git;a=patch;h=738ee53f0ce5e39b9b7a6777f5d3057afbaac498 -https://sourceware.org/git/?p=glibc.git;a=patch;h=d53b9cc391c72a1011ea8fe7a9f70dc5060a0db2 - -From 738ee53f0ce5e39b9b7a6777f5d3057afbaac498 Mon Sep 17 00:00:00 2001 -From: John David Anglin <dang...@gcc.gnu.org> -Date: Tue, 15 Mar 2022 23:12:37 +0000 -Subject: [PATCH] hppa: Implement swapcontext in assembler (bug 28960) - -When swapcontext.c is compiled without -g, the following error occurs: -Error: CFI instruction used without previous .cfi_startproc - -Fix by converting swapcontext routine to assembler. ---- - sysdeps/unix/sysv/linux/hppa/swapcontext.S | 72 +++++++++++++++++++ - sysdeps/unix/sysv/linux/hppa/swapcontext.c | 83 ---------------------- - 2 files changed, 72 insertions(+), 83 deletions(-) - create mode 100644 sysdeps/unix/sysv/linux/hppa/swapcontext.S - delete mode 100644 sysdeps/unix/sysv/linux/hppa/swapcontext.c - -diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.S b/sysdeps/unix/sysv/linux/hppa/swapcontext.S -new file mode 100644 -index 0000000000..94b164dc63 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.S -@@ -0,0 +1,72 @@ -+/* Swap to new context. -+ Copyright (C) 2008-2022 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/>. */ -+ -+#include <sysdep.h> -+#include "ucontext_i.h" -+ -+ .text -+ENTRY(__swapcontext) -+ -+ /* Copy rp to ret0 (r28). */ -+ copy %rp,%ret0 -+ -+ /* Create a frame. */ -+ ldo 64(%sp),%sp -+ .cfi_def_cfa_offset -64 -+ -+ /* Save the current machine context to oucp. */ -+ bl __getcontext,%rp -+ -+ /* Copy oucp to register ret1 (r29). __getcontext saves and -+ restores it on a normal return. It is restored from oR29 -+ on reactivation. */ -+ copy %r26,%ret1 -+ -+ /* Pop frame. */ -+ ldo -64(%sp),%sp -+ .cfi_def_cfa_offset 0 -+ -+ /* Load return pointer from oR28. */ -+ ldw oR28(%ret1),%rp -+ -+ /* Return if error. */ -+ or,= %r0,%ret0,%r0 -+ bv,n %r0(%rp) -+ -+ /* Load sc_sar flag. */ -+ ldb oSAR(%ret1),%r20 -+ -+ /* Return if oucp context has been reactivated. */ -+ or,= %r0,%r20,%r0 -+ bv,n %r0(%rp) -+ -+ /* Mark sc_sar flag. */ -+ ldi 1,%r20 -+ stb %r20,oSAR(%ret1) -+ -+ /* Activate the machine context in ucp. */ -+ bl __setcontext,%rp -+ ldw oR25(%ret1),%r26 -+ -+ /* Load return pointer. */ -+ ldw oR28(%ret1),%rp -+ bv,n %r0(%rp) -+ -+PSEUDO_END(__swapcontext) -+ -+weak_alias (__swapcontext, swapcontext) -diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/sysdeps/unix/sysv/linux/hppa/swapcontext.c -deleted file mode 100644 -index 1664f68c7b..0000000000 ---- a/sysdeps/unix/sysv/linux/hppa/swapcontext.c -+++ /dev/null -@@ -1,83 +0,0 @@ --/* Swap to new context. -- Copyright (C) 2008-2021 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Helge Deller <del...@gmx.de>, 2008. -- -- 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/>. */ -- --#include <ucontext.h> --#include "ucontext_i.h" -- --extern int __getcontext (ucontext_t *ucp); --extern int __setcontext (const ucontext_t *ucp); -- --int --__swapcontext (ucontext_t *oucp, const ucontext_t *ucp) --{ -- /* Save rp for debugger. */ -- asm ("stw %rp,-20(%sp)"); -- asm (".cfi_offset 2, -20"); -- -- /* Copy rp to ret0 (r28). */ -- asm ("copy %rp,%ret0"); -- -- /* Create a frame. */ -- asm ("ldo 64(%sp),%sp"); -- asm (".cfi_def_cfa_offset -64"); -- -- /* Save the current machine context to oucp. */ -- asm ("bl __getcontext,%rp"); -- -- /* Copy oucp to register ret1 (r29). __getcontext saves and restores it -- on a normal return. It is restored from oR29 on reactivation. */ -- asm ("copy %r26,%ret1"); -- -- /* Pop frame. */ -- asm ("ldo -64(%sp),%sp"); -- asm (".cfi_def_cfa_offset 0"); -- -- /* Load return pointer from oR28. */ -- asm ("ldw %0(%%ret1),%%rp" : : "i" (oR28)); -- -- /* Return if error. */ -- asm ("or,= %r0,%ret0,%r0"); -- asm ("bv,n %r0(%rp)"); -- -- /* Load sc_sar flag. */ -- asm ("ldb %0(%%ret1),%%r20" : : "i" (oSAR)); -- -- /* Return if oucp context has been reactivated. */ -- asm ("or,= %r0,%r20,%r0"); -- asm ("bv,n %r0(%rp)"); -- -- /* Mark sc_sar flag. */ -- asm ("1: ldi 1,%r20"); -- asm ("stb %%r20,%0(%%ret1)" : : "i" (oSAR)); -- -- /* Activate the machine context in ucp. */ -- asm ("bl __setcontext,%rp"); -- asm ("ldw %0(%%ret1),%%r26" : : "i" (oR25)); -- -- /* Load return pointer. */ -- asm ("ldw %0(%%ret1),%%rp" : : "i" (oR28)); -- -- /* A successful call to setcontext does not return. */ -- asm ("bv,n %r0(%rp)"); -- -- /* Make gcc happy. */ -- return 0; --} -- --weak_alias (__swapcontext, swapcontext) --- -2.27.0 - - -From d53b9cc391c72a1011ea8fe7a9f70dc5060a0db2 Mon Sep 17 00:00:00 2001 -From: John David Anglin <dang...@gcc.gnu.org> -Date: Tue, 15 Mar 2022 23:04:39 +0000 -Subject: [PATCH] hppa: Use END instead of PSEUDO_END in swapcontext.S - -(cherry picked from commit 7a5c440102d4ec7fafd9bbd98eca9bd90ecaaafd) ---- - sysdeps/unix/sysv/linux/hppa/swapcontext.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.S b/sysdeps/unix/sysv/linux/hppa/swapcontext.S -index 94b164dc63..fbc22586d1 100644 ---- a/sysdeps/unix/sysv/linux/hppa/swapcontext.S -+++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.S -@@ -67,6 +67,6 @@ ENTRY(__swapcontext) - ldw oR28(%ret1),%rp - bv,n %r0(%rp) - --PSEUDO_END(__swapcontext) -+END(__swapcontext) - - weak_alias (__swapcontext, swapcontext) --- -2.27.0 diff --git a/sys-libs/glibc/files/glibc-2.40-libio-legacy.patch b/sys-libs/glibc/files/glibc-2.40-libio-legacy.patch deleted file mode 100644 index e0b3b6c35455..000000000000 --- a/sys-libs/glibc/files/glibc-2.40-libio-legacy.patch +++ /dev/null @@ -1,30 +0,0 @@ -https://bugs.gentoo.org/939446 -https://sourceware.org/PR32164 -https://sourceware.org/git/?p=glibc.git;a=commit;h=7073164add3b874cf0c19ca0fb84236f6bb0985d - -From 7073164add3b874cf0c19ca0fb84236f6bb0985d Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar <siddh...@sourceware.org> -Date: Tue, 3 Sep 2024 14:58:33 -0400 -Subject: [PATCH] libio: Attempt wide backup free only for non-legacy code - -_wide_data and _mode are not available in legacy code, so do not attempt -to free the wide backup buffer in legacy code. - -Resolves: BZ #32137 and BZ #27821 - -Signed-off-by: Siddhesh Poyarekar <siddh...@sourceware.org> -Reviewed-by: Florian Weimer <fwei...@redhat.com> -(cherry picked from commit ae4d44b1d501421ad9a3af95279b8f4d1546f1ce) ---- a/libio/genops.c -+++ b/libio/genops.c -@@ -819,7 +819,7 @@ _IO_unbuffer_all (void) - /* Free up the backup area if it was ever allocated. */ - if (_IO_have_backup (fp)) - _IO_free_backup_area (fp); -- if (fp->_mode > 0 && _IO_have_wbackup (fp)) -+ if (!legacy && fp->_mode > 0 && _IO_have_wbackup (fp)) - _IO_free_wbackup_area (fp); - - if (! (fp->_flags & _IO_UNBUFFERED) --- -2.43.5