Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gcc7 for openSUSE:Factory checked in at 2023-09-14 16:24:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gcc7 (Old) and /work/SRC/openSUSE:Factory/.gcc7.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc7" Thu Sep 14 16:24:47 2023 rev:40 rq:1110684 version:7.5.0+r278197 Changes: -------- --- /work/SRC/openSUSE:Factory/gcc7/gcc7.changes 2023-05-24 20:23:25.192557846 +0200 +++ /work/SRC/openSUSE:Factory/.gcc7.new.1766/gcc7.changes 2023-09-14 16:25:48.206877483 +0200 @@ -1,0 +2,10 @@ +Thu Aug 17 06:37:28 UTC 2023 - Richard Biener <[email protected]> + +- Add gcc7-aarch64-bsc1214052.patch to fix -fstack-protector issues + with variable length stack allocations on aarch64. + Fixes CVE-2023-4039. [bsc#1214052] +- Add gcc7-aarch64-untyped_call.patch to fix issue with __builtin_apply +- Add gcc7-lra-elim.patch to fix internal compiler error when forming + paired loads and stores on aarch64. + +------------------------------------------------------------------- New: ---- gcc7-aarch64-bsc1214052.patch gcc7-aarch64-untyped_call.patch gcc7-lra-elim.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cross-aarch64-gcc7.spec ++++++ --- /var/tmp/diff_new_pack.79XCd7/_old 2023-09-14 16:25:55.807148994 +0200 +++ /var/tmp/diff_new_pack.79XCd7/_new 2023-09-14 16:25:55.807148994 +0200 @@ -150,6 +150,9 @@ Patch40: gcc7-pr72764.patch Patch41: gcc7-pr89124.patch Patch42: libgcc-riscv-div.patch +Patch43: gcc7-aarch64-bsc1214052.patch +Patch44: gcc7-aarch64-untyped_call.patch +Patch45: gcc7-lra-elim.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -345,6 +348,9 @@ %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 %patch51 %patch60 %patch61 cross-arm-gcc7.spec: same change cross-arm-none-gcc7-bootstrap.spec: same change cross-arm-none-gcc7.spec: same change cross-avr-gcc7-bootstrap.spec: same change cross-avr-gcc7.spec: same change cross-epiphany-gcc7-bootstrap.spec: same change cross-epiphany-gcc7.spec: same change cross-hppa-gcc7.spec: same change cross-i386-gcc7.spec: same change cross-m68k-gcc7.spec: same change cross-mips-gcc7.spec: same change cross-nvptx-gcc7.spec: same change cross-ppc64-gcc7.spec: same change cross-ppc64le-gcc7.spec: same change cross-rx-gcc7-bootstrap.spec: same change cross-rx-gcc7.spec: same change cross-s390x-gcc7.spec: same change cross-sparc-gcc7.spec: same change cross-sparc64-gcc7.spec: same change cross-x86_64-gcc7.spec: same change gcc7-testresults.spec: same change ++++++ gcc7.spec ++++++ --- /var/tmp/diff_new_pack.79XCd7/_old 2023-09-14 16:25:56.423171000 +0200 +++ /var/tmp/diff_new_pack.79XCd7/_new 2023-09-14 16:25:56.427171142 +0200 @@ -330,6 +330,9 @@ Patch40: gcc7-pr72764.patch Patch41: gcc7-pr89124.patch Patch42: libgcc-riscv-div.patch +Patch43: gcc7-aarch64-bsc1214052.patch +Patch44: gcc7-aarch64-untyped_call.patch +Patch45: gcc7-lra-elim.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -1868,6 +1871,9 @@ %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 %patch51 %patch60 %patch61 ++++++ gcc.spec.in ++++++ --- /var/tmp/diff_new_pack.79XCd7/_old 2023-09-14 16:25:56.555175715 +0200 +++ /var/tmp/diff_new_pack.79XCd7/_new 2023-09-14 16:25:56.559175858 +0200 @@ -336,7 +336,10 @@ Patch39: gcc7-libgo-don-t-include-linux-fs.h-when-building-gen-sys.patch Patch40: gcc7-pr72764.patch Patch41: gcc7-pr89124.patch -Patch42 : libgcc-riscv-div.patch +Patch42: libgcc-riscv-div.patch +Patch43: gcc7-aarch64-bsc1214052.patch +Patch44: gcc7-aarch64-untyped_call.patch +Patch45: gcc7-lra-elim.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -1142,6 +1145,9 @@ %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch43 -p1 +%patch44 -p1 +%patch45 -p1 %patch51 %patch60 %patch61 ++++++ gcc7-aarch64-bsc1214052.patch ++++++ ++++ 994 lines (skipped) ++++++ gcc7-aarch64-untyped_call.patch ++++++ >From 6787268a289bdbc32920b13b4697eaf756f9f7e0 Mon Sep 17 00:00:00 2001 From: Richard Sandiford <[email protected]> Date: Thu, 31 Aug 2023 16:15:10 +0100 Subject: [PATCH] aarch64: Fix return register handling in untyped_call To: [email protected] While working on another patch, I hit a problem with the aarch64 expansion of untyped_call. The expander emits the usual: (set (mem ...) (reg resN)) instructions to store the result registers to memory, but it didn't say in RTL where those resN results came from. This eventually led to a failure of gcc.dg/torture/stackalign/builtin-return-2.c, via regrename. This patch turns the untyped call from a plain call to a call_value, to represent that the call returns (or might return) a useful value. The patch also uses a PARALLEL return rtx to represent all the possible return registers. gcc/ * config/aarch64/aarch64.md (untyped_call): Emit a call_value rather than a call. List each possible destination register in the call pattern. --- gcc/config/aarch64/aarch64.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 90f9ee658c5..97d27677985 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -934,7 +934,25 @@ { int i; - emit_call_insn (gen_call (operands[0], const0_rtx, NULL)); + /* Generate a PARALLEL that contains all of the register results. + The offsets are somewhat arbitrary, since we don't know the + actual return type. The main thing we need to avoid is having + overlapping byte ranges, since those might give the impression + that two registers are known to have data in common. */ + rtvec rets = rtvec_alloc (XVECLEN (operands[2], 0)); + unsigned HOST_WIDE_INT offset = 0; + for (i = 0; i < XVECLEN (operands[2], 0); i++) + { + rtx reg = SET_SRC (XVECEXP (operands[2], 0, i)); + gcc_assert (REG_P (reg)); + rtx offset_rtx = gen_int_mode (offset, Pmode); + rtx piece = gen_rtx_EXPR_LIST (VOIDmode, reg, offset_rtx); + RTVEC_ELT (rets, i) = piece; + offset += GET_MODE_SIZE (GET_MODE (reg)); + } + rtx ret = gen_rtx_PARALLEL (VOIDmode, rets); + + emit_call_insn (gen_call_value (ret, operands[0], const0_rtx, NULL)); for (i = 0; i < XVECLEN (operands[2], 0); i++) { -- 2.35.3 ++++++ gcc7-lra-elim.patch ++++++ >From 9cd11fd48509234e18122036bf504981f5a91b9a Mon Sep 17 00:00:00 2001 From: Richard Sandiford <[email protected]> Date: Thu, 31 Aug 2023 11:59:56 +0100 Subject: [PATCH] lra: Avoid unfolded plus-0 To: [email protected] While backporting another patch to an earlier release, I hit a situation in which lra_eliminate_regs_1 would eliminate an address to: (plus (reg:P R) (const_int 0)) This address compared not-equal to plain: (reg:P R) which caused an ICE in a later peephole2. (The ICE showed up in gfortran.fortran-torture/compile/pr80464.f90 on the branch but seems to be latent on trunk.) These unfolded PLUSes shouldn't occur in the insn stream, and later code in the same function tried to avoid them. gcc/ * lra-eliminations.cc (lra_eliminate_regs_1): Use simplify_gen_binary rather than gen_rtx_PLUS. --- gcc/lra-eliminations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c index 993da861cf9..a3daf443caf 100644 --- a/gcc/lra-eliminations.c +++ b/gcc/lra-eliminations.c @@ -391,8 +391,8 @@ lra_eliminate_regs_1 (rtx_insn *insn, rtx x, machine_mode mem_mode, rtx to = subst_p ? ep->to_rtx : ep->from_rtx; if (! update_p && ! full_p) - return gen_rtx_PLUS (Pmode, to, XEXP (x, 1)); - + return simplify_gen_binary (PLUS, Pmode, to, XEXP (x, 1)); + if (update_sp_offset != 0) offset = ep->to_rtx == stack_pointer_rtx ? update_sp_offset : 0; else -- 2.35.3 ++++++ gcc7-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.79XCd7/_old 2023-09-14 16:25:56.743182432 +0200 +++ /var/tmp/diff_new_pack.79XCd7/_new 2023-09-14 16:25:56.747182575 +0200 @@ -15,5 +15,6 @@ # Packages provide libgcc_s1 = $version and conflict with other providers # of libgcc_s1 addFilter ("conflicts-with-provides") - +# SLE12 rpmlint complains about valid SPDX licenses +addFilter ("invalid-license")
