Bug#1028455: gcc-11: Drop PLT revert patch on s390x
Package: gcc-11
Version: 11.3.0-1ubuntu1~22.04
Severity: important
Tags: patch
Dear Maintainer,
Please drop the "revert PLT changes" patch from gcc-11, the kernel has
been fixed to work correctly with the upstream/vanilla
toolchain. Separately, this revert is causing livepatch breakakges
now.
See LP: #2002429
I have tried to submit merge proposal on salsa
https://salsa.debian.org/xnox/gcc/-/commits/drop-plt-revert , but it
seems like the https://salsa.debian.org/toolchain-team/gcc project has
merge proposals disabled.
Pleas consider applying the attached patch.
Regards,
Dimitri.
>From 4d49de6f1a7b0a088fee262ab1e572cb0bb5684e Mon Sep 17 00:00:00 2001
From: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
Date: Wed, 11 Jan 2023 10:11:58 +0000
Subject: [PATCH] Revert " * debian/patches/gcc-ibmz-plt-revert.diff: Revert
PLT changes from the gcc-11"
This reverts commit 2cc19790c7b125aa014bd86fe817af8a31eddeff.
---
debian/changelog | 8 +
debian/patches/gcc-ibmz-plt-revert.diff | 898 ------------------------
debian/rules.patch | 1 -
3 files changed, 8 insertions(+), 899 deletions(-)
delete mode 100644 debian/patches/gcc-ibmz-plt-revert.diff
diff --git a/debian/changelog b/debian/changelog
index f0d5265747..095e39273a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+gcc-11 (11.3.0-12) UNRELEASED; urgency=medium
+
+ * Drop debian/patches/gcc-ibmz-plt-revert.diff, the kernel was fixed to
+ build correct dkms modules on s390x. In turn, this patch is now
+ preventing livepatch modules to work. LP: #2002429
+
+ -- Dimitri John Ledkov <dimitri.ledkov@canonical.com> Wed, 11 Jan 2023 09:56:11 +0000
+
gcc-11 (11.3.0-11) unstable; urgency=medium
* Update to git 20230110 from the gcc-11 branch.
diff --git a/debian/patches/gcc-ibmz-plt-revert.diff b/debian/patches/gcc-ibmz-plt-revert.diff
deleted file mode 100644
index 315e52ba6a..0000000000
--- a/debian/patches/gcc-ibmz-plt-revert.diff
+++ /dev/null
@@ -1,898 +0,0 @@
-# DP: Revert: IBM Z: Use @PLT symbols for local functions in 64-bit mode
-
-From 2335aa8771acd06b082d3e15d9f21ae0a802afd7 Mon Sep 17 00:00:00 2001
-From: Ilya Leoshkevich <iii@linux.ibm.com>
-Date: Mon, 7 Jun 2021 13:44:15 +0200
-Subject: [PATCH] IBM Z: Use @PLT symbols for local functions in 64-bit mode
-
-This helps with generating code for kernel hotpatches, which contain
-individual functions and are loaded more than 2G away from vmlinux.
-This should not create performance regressions for the normal use
-cases, because for local functions ld replaces @PLT calls with direct
-calls.
-
-gcc/ChangeLog:
-
- * config/s390/predicates.md (bras_sym_operand): Accept all
- functions in 64-bit mode, use UNSPEC_PLT31.
- (larl_operand): Use UNSPEC_PLT31.
- * config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
- (legitimize_pic_address): Likewise.
- (s390_emit_tls_call_insn): Mark __tls_get_offset as function,
- use UNSPEC_PLT31.
- (s390_delegitimize_address): Use UNSPEC_PLT31.
- (s390_output_addr_const_extra): Likewise.
- (print_operand): Add @PLT to TLS calls, handle %K.
- (s390_function_profiler): Mark __fentry__/_mcount as function,
- use %K, use UNSPEC_PLT31.
- (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
- (s390_emit_call): Use UNSPEC_PLT31.
- (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
- * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
- (*movdi_64): Use %K.
- (reload_base_64): Likewise.
- (*sibcall_brc): Likewise.
- (*sibcall_brcl): Likewise.
- (*sibcall_value_brc): Likewise.
- (*sibcall_value_brcl): Likewise.
- (*bras): Likewise.
- (*brasl): Likewise.
- (*bras_r): Likewise.
- (*brasl_r): Likewise.
- (*bras_tls): Likewise.
- (*brasl_tls): Likewise.
- (main_base_64): Likewise.
- (reload_base_64): Likewise.
- (@split_stack_call<mode>): Likewise.
-
-gcc/testsuite/ChangeLog:
-
- * g++.dg/ext/visibility/noPLT.C: Skip on s390x.
- * g++.target/s390/mi-thunk.C: New test.
- * gcc.target/s390/nodatarel-1.c: Move foostatic to the new
- tests.
- * gcc.target/s390/pr80080-4.c: Allow @PLT suffix.
- * gcc.target/s390/risbg-ll-3.c: Likewise.
- * gcc.target/s390/call.h: Common code for the new tests.
- * gcc.target/s390/call-z10-pic-nodatarel.c: New test.
- * gcc.target/s390/call-z10-pic.c: New test.
- * gcc.target/s390/call-z10.c: New test.
- * gcc.target/s390/call-z9-pic-nodatarel.c: New test.
- * gcc.target/s390/call-z9-pic.c: New test.
- * gcc.target/s390/call-z9.c: New test.
- * gcc.target/s390/mfentry-m64-pic.c: New test.
- * gcc.target/s390/tls.h: Common code for the new TLS tests.
- * gcc.target/s390/tls-pic.c: New test.
- * gcc.target/s390/tls.c: New test.
-
-(cherry picked from commit 0990d93dd8a)
----
- gcc/config/s390/predicates.md | 9 ++-
- gcc/config/s390/s390.c | 81 +++++++++++++------
- gcc/config/s390/s390.md | 32 ++++----
- gcc/testsuite/g++.dg/ext/visibility/noPLT.C | 2 +-
- gcc/testsuite/g++.target/s390/mi-thunk.C | 23 ++++++
- .../gcc.target/s390/call-z10-pic-nodatarel.c | 20 +++++
- gcc/testsuite/gcc.target/s390/call-z10-pic.c | 20 +++++
- gcc/testsuite/gcc.target/s390/call-z10.c | 20 +++++
- .../gcc.target/s390/call-z9-pic-nodatarel.c | 18 +++++
- gcc/testsuite/gcc.target/s390/call-z9-pic.c | 18 +++++
- gcc/testsuite/gcc.target/s390/call-z9.c | 20 +++++
- gcc/testsuite/gcc.target/s390/call.h | 40 +++++++++
- .../gcc.target/s390/mfentry-m64-pic.c | 9 +++
- gcc/testsuite/gcc.target/s390/nodatarel-1.c | 26 +-----
- gcc/testsuite/gcc.target/s390/pr80080-4.c | 2 +-
- gcc/testsuite/gcc.target/s390/risbg-ll-3.c | 6 +-
- gcc/testsuite/gcc.target/s390/tls-pic.c | 14 ++++
- gcc/testsuite/gcc.target/s390/tls.c | 10 +++
- gcc/testsuite/gcc.target/s390/tls.h | 23 ++++++
- 19 files changed, 320 insertions(+), 73 deletions(-)
- create mode 100644 gcc/testsuite/g++.target/s390/mi-thunk.C
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z10-pic.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z10.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z9-pic.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call-z9.c
- create mode 100644 gcc/testsuite/gcc.target/s390/call.h
- create mode 100644 gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c
- create mode 100644 gcc/testsuite/gcc.target/s390/tls-pic.c
- create mode 100644 gcc/testsuite/gcc.target/s390/tls.c
- create mode 100644 gcc/testsuite/gcc.target/s390/tls.h
-
-Index: gcc-11-11.2.0/src/gcc/config/s390/predicates.md
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/config/s390/predicates.md
-+++ gcc-11-11.2.0/src/gcc/config/s390/predicates.md
-@@ -101,13 +101,10 @@
-
- (define_special_predicate "bras_sym_operand"
- (ior (and (match_code "symbol_ref")
-- (ior (match_test "!flag_pic")
-- (match_test "SYMBOL_REF_LOCAL_P (op)")
-- (and (match_test "TARGET_64BIT")
-- (match_test "SYMBOL_REF_FUNCTION_P (op)"))))
-+ (match_test "!flag_pic || SYMBOL_REF_LOCAL_P (op)"))
- (and (match_code "const")
- (and (match_test "GET_CODE (XEXP (op, 0)) == UNSPEC")
-- (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_PLT31")))))
-+ (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_PLT")))))
-
- ;; Return true if OP is a PLUS that is not a legitimate
- ;; operand for the LA instruction.
-@@ -200,7 +197,7 @@
- && XINT (op, 1) == UNSPEC_GOTENT)
- return true;
- if (GET_CODE (op) == UNSPEC
-- && XINT (op, 1) == UNSPEC_PLT31)
-+ && XINT (op, 1) == UNSPEC_PLT)
- return true;
- if (GET_CODE (op) == UNSPEC
- && XINT (op, 1) == UNSPEC_INDNTPOFF)
-Index: gcc-11-11.2.0/src/gcc/config/s390/s390.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/config/s390/s390.c
-+++ gcc-11-11.2.0/src/gcc/config/s390/s390.c
-@@ -3291,7 +3291,7 @@ s390_loadrelative_operand_p (rtx addr, r
- if (GET_CODE (addr) == SYMBOL_REF
- || (GET_CODE (addr) == UNSPEC
- && (XINT (addr, 1) == UNSPEC_GOTENT
-- || XINT (addr, 1) == UNSPEC_PLT31)))
-+ || XINT (addr, 1) == UNSPEC_PLT)))
- {
- if (symref)
- *symref = addr;
-@@ -4964,7 +4964,7 @@ legitimize_pic_address (rtx orig, rtx re
- || (SYMBOL_REF_P (addr) && s390_rel_address_ok_p (addr))
- || (GET_CODE (addr) == UNSPEC &&
- (XINT (addr, 1) == UNSPEC_GOTENT
-- || XINT (addr, 1) == UNSPEC_PLT31)))
-+ || XINT (addr, 1) == UNSPEC_PLT)))
- && GET_CODE (addend) == CONST_INT)
- {
- /* This can be locally addressed. */
-@@ -5125,7 +5125,7 @@ legitimize_pic_address (rtx orig, rtx re
-
- /* For @PLT larl is used. This is handled like local
- symbol refs. */
-- case UNSPEC_PLT31:
-+ case UNSPEC_PLT:
- gcc_unreachable ();
- break;
-
-@@ -5191,10 +5191,7 @@ s390_emit_tls_call_insn (rtx result_reg,
- emit_insn (s390_load_got ());
-
- if (!s390_tls_symbol)
-- {
-- s390_tls_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tls_get_offset");
-- SYMBOL_REF_FLAGS (s390_tls_symbol) |= SYMBOL_FLAG_FUNCTION;
-- }
-+ s390_tls_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tls_get_offset");
-
- insn = s390_emit_call (s390_tls_symbol, tls_call, result_reg,
- gen_rtx_REG (Pmode, RETURN_REGNUM));
-@@ -7609,7 +7606,7 @@ s390_delegitimize_address (rtx orig_x)
- y = XEXP (x, 0);
- if (GET_CODE (y) == UNSPEC
- && (XINT (y, 1) == UNSPEC_GOTENT
-- || XINT (y, 1) == UNSPEC_PLT31))
-+ || XINT (y, 1) == UNSPEC_PLT))
- y = XVECEXP (y, 0, 0);
- else
- return orig_x;
-@@ -7862,7 +7859,7 @@ s390_output_addr_const_extra (FILE *file
- output_addr_const (file, XVECEXP (x, 0, 0));
- fprintf (file, "@GOTOFF");
- return true;
-- case UNSPEC_PLT31:
-+ case UNSPEC_PLT:
- output_addr_const (file, XVECEXP (x, 0, 0));
- fprintf (file, "@PLT");
- return true;
-@@ -7956,7 +7953,6 @@ print_operand_address (FILE *file, rtx a
- 'E': print opcode suffix for branch on index instruction.
- 'G': print the size of the operand in bytes.
- 'J': print tls_load/tls_gdcall/tls_ldcall suffix
-- 'K': print @PLT suffix for call targets and load address values.
- 'M': print the second word of a TImode operand.
- 'N': print the second word of a DImode operand.
- 'O': print only the displacement of a memory reference or address.
-@@ -8143,29 +8139,6 @@ print_operand (FILE *file, rtx x, int co
- case 'Y':
- print_shift_count_operand (file, x);
- return;
--
-- case 'K':
-- /* Append @PLT to both local and non-local symbols in order to support
-- Linux Kernel livepatching: patches contain individual functions and
-- are loaded further than 2G away from vmlinux, and therefore they must
-- call even static functions via PLT. ld will optimize @PLT away for
-- normal code, and keep it for patches.
--
-- Do not indiscriminately add @PLT in 31-bit mode due to the %r12
-- restriction, use UNSPEC_PLT31 instead.
--
-- @PLT only makes sense for functions, data is taken care of by
-- -mno-pic-data-is-text-relative.
--
-- Adding @PLT interferes with handling of weak symbols in non-PIC code,
-- since their addresses are loaded with larl, which then always produces
-- a non-NULL result, so skip them here as well. */
-- if (TARGET_64BIT
-- && GET_CODE (x) == SYMBOL_REF
-- && SYMBOL_REF_FUNCTION_P (x)
-- && !(SYMBOL_REF_WEAK (x) && !flag_pic))
-- fprintf (file, "@PLT");
-- return;
- }
-
- switch (GET_CODE (x))
-@@ -13162,10 +13135,9 @@ s390_function_profiler (FILE *file, int
- op[3] = GEN_INT (UNITS_PER_LONG);
-
- op[2] = gen_rtx_SYMBOL_REF (Pmode, flag_fentry ? "__fentry__" : "_mcount");
-- SYMBOL_REF_FLAGS (op[2]) |= SYMBOL_FLAG_FUNCTION;
-- if (flag_pic && !TARGET_64BIT)
-+ if (flag_pic)
- {
-- op[2] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[2]), UNSPEC_PLT31);
-+ op[2] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[2]), UNSPEC_PLT);
- op[2] = gen_rtx_CONST (Pmode, op[2]);
- }
-
-@@ -13180,7 +13152,7 @@ s390_function_profiler (FILE *file, int
- warning (OPT_Wcannot_profile, "nested functions cannot be profiled "
- "with %<-mfentry%> on s390");
- else
-- output_asm_insn ("brasl\t0,%2%K2", op);
-+ output_asm_insn ("brasl\t0,%2", op);
- }
- else if (TARGET_64BIT)
- {
-@@ -13192,7 +13164,7 @@ s390_function_profiler (FILE *file, int
- output_asm_insn ("stg\t%0,%1", op);
- if (flag_dwarf2_cfi_asm)
- output_asm_insn (".cfi_rel_offset\t%0,%3", op);
-- output_asm_insn ("brasl\t%0,%2%K2", op);
-+ output_asm_insn ("brasl\t%0,%2", op);
- output_asm_insn ("lg\t%0,%1", op);
- if (flag_dwarf2_cfi_asm)
- output_asm_insn (".cfi_restore\t%0", op);
-@@ -13208,7 +13180,7 @@ s390_function_profiler (FILE *file, int
- output_asm_insn ("st\t%0,%1", op);
- if (flag_dwarf2_cfi_asm)
- output_asm_insn (".cfi_rel_offset\t%0,%3", op);
-- output_asm_insn ("brasl\t%0,%2%K2", op);
-+ output_asm_insn ("brasl\t%0,%2", op);
- output_asm_insn ("l\t%0,%1", op);
- if (flag_dwarf2_cfi_asm)
- output_asm_insn (".cfi_restore\t%0", op);
-@@ -13284,11 +13256,9 @@ s390_output_mi_thunk (FILE *file, tree t
- if (flag_pic && !SYMBOL_REF_LOCAL_P (op[0]))
- {
- nonlocal = 1;
-- if (!TARGET_64BIT)
-- {
-- op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]), UNSPEC_GOT);
-- op[0] = gen_rtx_CONST (Pmode, op[0]);
-- }
-+ op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]),
-+ TARGET_64BIT ? UNSPEC_PLT : UNSPEC_GOT);
-+ op[0] = gen_rtx_CONST (Pmode, op[0]);
- }
-
- /* Operand 1 is the 'this' pointer. */
-@@ -13378,7 +13348,7 @@ s390_output_mi_thunk (FILE *file, tree t
- }
-
- /* Jump to target. */
-- output_asm_insn ("jg\t%0%K0", op);
-+ output_asm_insn ("jg\t%0", op);
-
- /* Output literal pool if required. */
- if (op[5])
-@@ -13769,7 +13739,7 @@ rtx_insn *
- s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg,
- rtx retaddr_reg)
- {
-- bool plt31_call_p = false;
-+ bool plt_call = false;
- rtx_insn *insn;
- rtx vec[4] = { NULL_RTX };
- int elts = 0;
-@@ -13784,15 +13754,15 @@ s390_emit_call (rtx addr_location, rtx t
- {
- /* When calling a global routine in PIC mode, we must
- replace the symbol itself with the PLT stub. */
-- if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location) && !TARGET_64BIT)
-+ if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location))
- {
-- if (retaddr_reg != NULL_RTX)
-+ if (TARGET_64BIT || retaddr_reg != NULL_RTX)
- {
- addr_location = gen_rtx_UNSPEC (Pmode,
- gen_rtvec (1, addr_location),
-- UNSPEC_PLT31);
-+ UNSPEC_PLT);
- addr_location = gen_rtx_CONST (Pmode, addr_location);
-- plt31_call_p = true;
-+ plt_call = true;
- }
- else
- /* For -fpic code the PLT entries might use r12 which is
-@@ -13813,7 +13783,7 @@ s390_emit_call (rtx addr_location, rtx t
- register 1. */
- if (retaddr_reg == NULL_RTX
- && GET_CODE (addr_location) != SYMBOL_REF
-- && !plt31_call_p)
-+ && !plt_call)
- {
- emit_move_insn (gen_rtx_REG (Pmode, SIBCALL_REGNUM), addr_location);
- addr_location = gen_rtx_REG (Pmode, SIBCALL_REGNUM);
-@@ -13821,7 +13791,7 @@ s390_emit_call (rtx addr_location, rtx t
-
- if (TARGET_INDIRECT_BRANCH_NOBP_CALL
- && GET_CODE (addr_location) != SYMBOL_REF
-- && !plt31_call_p)
-+ && !plt_call)
- {
- /* Indirect branch thunks require the target to be a single GPR. */
- addr_location = force_reg (Pmode, addr_location);
-@@ -13873,7 +13843,7 @@ s390_emit_call (rtx addr_location, rtx t
- insn = emit_call_insn (*call);
-
- /* 31-bit PLT stubs and tls calls use the GOT register implicitly. */
-- if (plt31_call_p || tls_call != NULL_RTX)
-+ if ((!TARGET_64BIT && plt_call) || tls_call != NULL_RTX)
- {
- /* s390_function_ok_for_sibcall should
- have denied sibcalls in this case. */
-@@ -13929,10 +13899,7 @@ s390_emit_tpf_eh_return (rtx target)
- rtx reg, orig_ra;
-
- if (!s390_tpf_eh_return_symbol)
-- {
-- s390_tpf_eh_return_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tpf_eh_return");
-- SYMBOL_REF_FLAGS (s390_tpf_eh_return_symbol) |= SYMBOL_FLAG_FUNCTION;
-- }
-+ s390_tpf_eh_return_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tpf_eh_return");
-
- reg = gen_rtx_REG (Pmode, 2);
- orig_ra = gen_rtx_REG (Pmode, 3);
-Index: gcc-11-11.2.0/src/gcc/config/s390/s390.md
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/config/s390/s390.md
-+++ gcc-11-11.2.0/src/gcc/config/s390/s390.md
-@@ -79,7 +79,7 @@
- UNSPEC_GOTENT
- UNSPEC_GOT
- UNSPEC_GOTOFF
-- UNSPEC_PLT31
-+ UNSPEC_PLT
- UNSPEC_PLTOFF
-
- ; Literal pool
-@@ -1906,7 +1906,7 @@
- vlgvg\t%0,%v1,0
- vleg\t%v0,%1,0
- vsteg\t%v1,%0,0
-- larl\t%0,%1%K1"
-+ larl\t%0,%1"
- [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RRE,RXY,RIL,RRE,RXY,
- RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS,VRI,VRR,VRS,VRS,
- VRX,VRX,RIL")
-@@ -2180,7 +2180,7 @@
- (match_operand:SI 1 "larl_operand" "X"))]
- "!TARGET_64BIT
- && !FP_REG_P (operands[0])"
-- "larl\t%0,%1%K1"
-+ "larl\t%0,%1"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "larl")
- (set_attr "z10prop" "z10_fwd_A1")
-@@ -10379,7 +10379,7 @@
- [(call (mem:QI (match_operand 0 "bras_sym_operand" "X"))
- (match_operand 1 "const_int_operand" "n"))]
- "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC"
-- "j\t%0%K0"
-+ "j\t%0"
- [(set_attr "op_type" "RI")
- (set_attr "type" "branch")])
-
-@@ -10387,7 +10387,7 @@
- [(call (mem:QI (match_operand 0 "bras_sym_operand" "X"))
- (match_operand 1 "const_int_operand" "n"))]
- "SIBLING_CALL_P (insn)"
-- "jg\t%0%K0"
-+ "jg\t%0"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "branch")])
-
-@@ -10440,7 +10440,7 @@
- (call (mem:QI (match_operand 1 "bras_sym_operand" "X"))
- (match_operand 2 "const_int_operand" "n")))]
- "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC"
-- "j\t%1%K1"
-+ "j\t%1"
- [(set_attr "op_type" "RI")
- (set_attr "type" "branch")])
-
-@@ -10449,7 +10449,7 @@
- (call (mem:QI (match_operand 1 "bras_sym_operand" "X"))
- (match_operand 2 "const_int_operand" "n")))]
- "SIBLING_CALL_P (insn)"
-- "jg\t%1%K1"
-+ "jg\t%1"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "branch")])
-
-@@ -10476,7 +10476,7 @@
- "!SIBLING_CALL_P (insn)
- && TARGET_SMALL_EXEC
- && GET_MODE (operands[2]) == Pmode"
-- "bras\t%2,%0%K0"
-+ "bras\t%2,%0"
- [(set_attr "op_type" "RI")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")])
-@@ -10488,7 +10488,7 @@
- "!SIBLING_CALL_P (insn)
-
- && GET_MODE (operands[2]) == Pmode"
-- "brasl\t%2,%0%K0"
-+ "brasl\t%2,%0"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")
-@@ -10582,7 +10582,7 @@
- "!SIBLING_CALL_P (insn)
- && TARGET_SMALL_EXEC
- && GET_MODE (operands[3]) == Pmode"
-- "bras\t%3,%1%K1"
-+ "bras\t%3,%1"
- [(set_attr "op_type" "RI")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")])
-@@ -10595,7 +10595,7 @@
- "!SIBLING_CALL_P (insn)
-
- && GET_MODE (operands[3]) == Pmode"
-- "brasl\t%3,%1%K1"
-+ "brasl\t%3,%1"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")
-@@ -10726,7 +10726,7 @@
- "!SIBLING_CALL_P (insn)
- && TARGET_SMALL_EXEC
- && GET_MODE (operands[3]) == Pmode"
-- "bras\t%3,%1%K1%J4"
-+ "bras\t%3,%1%J4"
- [(set_attr "op_type" "RI")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")])
-@@ -10740,7 +10740,7 @@
- "!SIBLING_CALL_P (insn)
-
- && GET_MODE (operands[3]) == Pmode"
-- "brasl\t%3,%1%K1%J4"
-+ "brasl\t%3,%1%J4"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "jsr")
- (set_attr "z196prop" "z196_cracked")
-@@ -11349,7 +11349,7 @@
- [(set (match_operand 0 "register_operand" "=a")
- (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_MAIN_BASE))]
- "GET_MODE (operands[0]) == Pmode"
-- "larl\t%0,%1%K1"
-+ "larl\t%0,%1"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "larl")
- (set_attr "z10prop" "z10_fwd_A1")
-@@ -11369,7 +11369,7 @@
- [(set (match_operand 0 "register_operand" "=a")
- (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_RELOAD_BASE))]
- "GET_MODE (operands[0]) == Pmode"
-- "larl\t%0,%1%K1"
-+ "larl\t%0,%1"
- [(set_attr "op_type" "RIL")
- (set_attr "type" "larl")
- (set_attr "z10prop" "z10_fwd_A1")])
-@@ -12226,7 +12226,7 @@
- ""
- {
- s390_output_split_stack_data (operands[1], operands[2], operands[3], operands[4]);
-- return "jg\t%0%K0";
-+ return "jg\t%0";
- }
- [(set_attr "op_type" "RIL")
- (set_attr "type" "branch")])
-Index: gcc-11-11.2.0/src/gcc/testsuite/g++.dg/ext/visibility/noPLT.C
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/g++.dg/ext/visibility/noPLT.C
-+++ gcc-11-11.2.0/src/gcc/testsuite/g++.dg/ext/visibility/noPLT.C
-@@ -1,5 +1,5 @@
- /* Test that -fvisibility=hidden prevents PLT. */
--/* { dg-do compile { target { fpic && { ! s390x-*-* } } } } */
-+/* { dg-do compile { target fpic } } */
- /* { dg-require-visibility "" } */
- /* { dg-options "-fPIC -fvisibility=hidden" } */
- /* { dg-final { scan-assembler-not "methodEv@PLT|indirect_symbol.*methodEv" } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/g++.target/s390/mi-thunk.C
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/g++.target/s390/mi-thunk.C
-+++ /dev/null
-@@ -1,23 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O0 -fPIC" } */
--
--class A {
--public:
-- virtual int a (void);
--};
--
--class B {
--public:
-- virtual int b (void);
--};
--
--class C : public B, public A {
--public:
-- virtual int a (void);
--};
--
--int C::a (void) { return b(); }
--
--/* { dg-final { scan-assembler {\n_ZThn8_N1C1aEv:\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {\n_ZThn4_N1C1aEv:\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {\n\tjg\t.LTHUNK0@PLT\n} { target lp64 } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z10 -mzarch -fPIC -mno-pic-data-is-text-relative" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */
--/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {lrl\t%r2,foo@GOTENT\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */
--/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {lrl\t%r2,fooweak@GOTENT\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z10-pic.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z10-pic.c
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z10 -mzarch -fPIC" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */
--/* { dg-final { scan-assembler {lgrl\t%r2,foo@GOTENT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {lrl\t%r2,foo@GOTENT\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */
--/* { dg-final { scan-assembler {lgrl\t%r2,fooweak@GOTENT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {lrl\t%r2,fooweak@GOTENT\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z10.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z10.c
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z10 -mzarch" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foo@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foo\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak\n} } } */
--/* { dg-final { scan-assembler {larl\t%r2,fooweak\n} } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c
-+++ /dev/null
-@@ -1,18 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z9-ec -fPIC -mno-pic-data-is-text-relative" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */
--/* { dg-final { scan-assembler {larl\t%r\d+,foo@GOTENT\n} } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */
--/* { dg-final { scan-assembler {larl\t%r\d+,fooweak@GOTENT\n} } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z9-pic.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z9-pic.c
-+++ /dev/null
-@@ -1,18 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z9-ec -fPIC" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} } } */
--/* { dg-final { scan-assembler {larl\t%r\d+,foo@GOTENT\n} } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak@PLT\n} } } */
--/* { dg-final { scan-assembler {larl\t%r\d+,fooweak@GOTENT\n} } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call-z9.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call-z9.c
-+++ /dev/null
-@@ -1,20 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -march=z9-ec" } */
--
--#include "call.h"
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foo\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foo@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foo\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {brasl\t%r\d+,foostatic\n} { target { ! lp64 } } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic@PLT\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {larl\t%r2,foostatic\n} { target { ! lp64 } } } } */
--
--/* { dg-final { scan-assembler {brasl\t%r\d+,fooweak\n} } } */
--/* { dg-final { scan-assembler {larl\t%r2,fooweak\n} } } */
--
--/* { dg-final { scan-assembler {foos:\n\t.quad\tfoo\n\t.quad\tfoostatic\n\t.quad\tfooweak\n} { target lp64 } } } */
--/* { dg-final { scan-assembler {foos:\n\t.long\tfoo\n\t.long\tfoostatic\n\t.long\tfooweak\n} { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/call.h
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/call.h
-+++ /dev/null
-@@ -1,40 +0,0 @@
--/* Common code for testing the function call code generation. */
--
--__attribute__ ((noipa)) void
--foo (void)
--{
-- return;
--}
--
--void *
--usefoo (void)
--{
-- foo ();
-- return foo;
--}
--
--__attribute__ ((noipa)) static void
--foostatic (void)
--{
-- return;
--}
--
--void *
--usefoostatic (void)
--{
-- foostatic ();
-- return foostatic;
--}
--
--__attribute__ ((weak)) void fooweak (void);
--
--void *
--usefooweak (void)
--{
-- fooweak ();
-- return fooweak;
--}
--
--__attribute__ ((__used__, section (".foos"), aligned (sizeof (void *))))
--static void
--*foos[] = { foo, foostatic, fooweak };
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c
-+++ /dev/null
-@@ -1,9 +0,0 @@
--/* { dg-do compile { target { lp64 } } } */
--/* { dg-options "-pg -mfentry -fPIC" } */
--
--void
--profileme (void)
--{
-- /* __fentry__ must be referenced through PLT. */
-- /* { dg-final { scan-assembler "brasl\t0,__fentry__@PLT\n" } } */
--}
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/nodatarel-1.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/nodatarel-1.c
-+++ gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/nodatarel-1.c
-@@ -15,6 +15,12 @@ foo ()
- return a;
- }
-
-+static int __attribute__((noinline,noclone))
-+foostatic (void)
-+{
-+ return a;
-+}
-+
- /* Just to make a potentially modified. */
-
- void
-@@ -23,7 +29,7 @@ bar (int b)
- a = b;
- }
-
--/* { dg-final { scan-assembler-times "\\.LANCHOR\\d+@GOTENT" 2 } } */
-+/* { dg-final { scan-assembler-times "\\.LANCHOR\\d+@GOTENT" 3 } } */
-
- /* The exrl target is a label_ref which should not be affected at
- all. */
-@@ -57,3 +63,21 @@ fooptr ()
- }
-
- /* { dg-final { scan-assembler-times "foo@GOTENT" 1 } } */
-+
-+
-+/* A static function can be addressed relatively. */
-+
-+int
-+callfoostatic ()
-+{
-+ return foostatic ();
-+}
-+
-+void *
-+foostaticptr ()
-+{
-+ return &foostatic;
-+}
-+
-+
-+/* { dg-final { scan-assembler-not "foostatic@" } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/pr80080-4.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/pr80080-4.c
-+++ gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/pr80080-4.c
-@@ -13,4 +13,4 @@ void foo4(int *mem)
- }
- }
-
--/* { dg-final { scan-assembler {(?n)\n\tlt\t.*\n\tjne\t(\.L\d+)\n(.*\n)*\tcs\t.*\n\tber\t%r14\n\1:\n\tjg\tbar(@PLT)?\n} } } */
-+/* { dg-final { scan-assembler {(?n)\n\tlt\t.*\n\tjne\t(\.L\d+)\n(.*\n)*\tcs\t.*\n\tber\t%r14\n\1:\n\tjg\tbar\n} } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/risbg-ll-3.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/risbg-ll-3.c
-+++ gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/risbg-ll-3.c
-@@ -23,7 +23,7 @@ i64 f1 (i64 v_a, i64 v_b)
- extern i64 f2_foo();
- i64 f2 (i64 v_a, i64 v_b)
- {
--/* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0\n\tbner\t%r14\n\tjg\tf2_foo.*\n" { target { lp64 } } } } */
-+/* { dg-final { scan-assembler "f2:\n\trisbg\t%r2,%r3,60,62,0\n\tbner\t%r14\n\tjg\tf2_foo\n" { target { lp64 } } } } */
- /* { dg-final { scan-assembler "f2:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r3,%r5,60,62,0" { target { ! lp64 } } } } */
- i64 v_anda = v_a & -15;
- i64 v_andb = v_b & 14;
-@@ -37,8 +37,8 @@ i64 f2 (i64 v_a, i64 v_b)
- void f2_bar ();
- void f2_cconly (i64 v_a, i64 v_b)
- {
--/* { dg-final { scan-assembler "f2_cconly:\n\trisbg\t%r2,%r3,60,62,0\n\tber\t%r14\n\tjg\tf2_bar(@PLT)?\n" { target { lp64 } } } } */
--/* { dg-final { scan-assembler "f2_cconly:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r3,%r5,60,62,0\n\tber\t%r14\n\tjg\tf2_bar(@PLT)?\n" { target { ! lp64 } } } } */
-+/* { dg-final { scan-assembler "f2_cconly:\n\trisbg\t%r3,%r2,63,59,0\n\tber\t%r14\n\tjg\tf2_bar\n" { target { lp64 } } } } */
-+/* { dg-final { scan-assembler "f2_cconly:\n\trisbgn\t%r3,%r2,0,0\\\+32-1,64-0-32\n\trisbg\t%r3,%r5,60,62,0\n\tber\t%r14\n\tjg\tf2_bar\n" { target { ! lp64 } } } } */
- if ((v_a & -15) | (v_b & 14))
- f2_bar();
- }
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/tls-pic.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/tls-pic.c
-+++ /dev/null
-@@ -1,14 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3 -fPIC" } */
--
--#include "tls.h"
--
--/* foo must use the global dynamic model.
-- __tls_get_offset must be referenced through PLT. */
--
--/* { dg-final { scan-assembler-times {\tbrasl\t%r14,__tls_get_offset@PLT:tls_gdcall:foo\n} 1 } } */
--
--/* foostatic must use the local dynamic model.
-- __tls_get_offset must be referenced through PLT. */
--
--/* { dg-final { scan-assembler-times {\tbrasl\t%r14,__tls_get_offset@PLT:tls_ldcall} 1 } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/tls.c
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/tls.c
-+++ /dev/null
-@@ -1,10 +0,0 @@
--/* { dg-do compile } */
--/* { dg-options "-O3" } */
--
--#include "tls.h"
--
--/* foo must use the initial-exec model, foostatic must use the local-exec
-- model. */
--
--/* { dg-final { scan-assembler-times {\tear} 4 { target lp64 } } } */
--/* { dg-final { scan-assembler-times {\tear} 2 { target { ! lp64 } } } } */
-Index: gcc-11-11.2.0/src/gcc/testsuite/gcc.target/s390/tls.h
-===================================================================
---- gcc-11-11.2.0.orig/src/gcc/testsuite/gcc.target/s390/tls.h
-+++ /dev/null
-@@ -1,23 +0,0 @@
--/* Common code for testing the TLS code generation. */
--
--__thread int
--foo;
--
--int
--setfoo (int x)
--{
-- int result = foo;
-- foo = x;
-- return result;
--}
--
--static __thread int
--foostatic;
--
--int
--setfoostatic (int x)
--{
-- int result = foostatic;
-- foostatic = x;
-- return result;
--}
diff --git a/debian/rules.patch b/debian/rules.patch
index a3e5afc9f5..f1c89731f8 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -66,7 +66,6 @@ debian_patches += \
gcc-arm-disable-guality-tests \
musl-ssp \
arm-arch-extensions \
- gcc-ibmz-plt-revert \
gcc-mold \
arc-stddef \
pr107475 \
--
2.34.1
Reply to: