summaryrefslogtreecommitdiff
path: root/sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch')
-rw-r--r--sys-libs/glibc/files/2.34/glibc-2.34-hppa-asm-getcontext-fixes.patch214
1 files changed, 0 insertions, 214 deletions
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 299a6dae..00000000
--- 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 <danglin@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 <deller@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 <danglin@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