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")
 

Reply via email to