diff --git a/cross-aarch64-gcc13-bootstrap.spec b/cross-aarch64-gcc13-bootstrap.spec index f1dcc56..dbd6a4d 100644 --- a/cross-aarch64-gcc13-bootstrap.spec +++ b/cross-aarch64-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-aarch64-gcc13.spec b/cross-aarch64-gcc13.spec index 2712b1b..232ccb3 100644 --- a/cross-aarch64-gcc13.spec +++ b/cross-aarch64-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-amdgcn-gcc13.spec b/cross-amdgcn-gcc13.spec index 7e3dd18..48e5ca2 100644 --- a/cross-amdgcn-gcc13.spec +++ b/cross-amdgcn-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-arm-gcc13.spec b/cross-arm-gcc13.spec index 9a580c3..d063e73 100644 --- a/cross-arm-gcc13.spec +++ b/cross-arm-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-arm-none-gcc13-bootstrap.spec b/cross-arm-none-gcc13-bootstrap.spec index 154503b..08d3bfc 100644 --- a/cross-arm-none-gcc13-bootstrap.spec +++ b/cross-arm-none-gcc13-bootstrap.spec @@ -108,7 +108,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -146,6 +146,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -372,6 +373,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-arm-none-gcc13.spec b/cross-arm-none-gcc13.spec index 82649b8..2ea6487 100644 --- a/cross-arm-none-gcc13.spec +++ b/cross-arm-none-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-avr-gcc13-bootstrap.spec b/cross-avr-gcc13-bootstrap.spec index 8241584..cf00f29 100644 --- a/cross-avr-gcc13-bootstrap.spec +++ b/cross-avr-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-avr-gcc13.spec b/cross-avr-gcc13.spec index d503de4..c424540 100644 --- a/cross-avr-gcc13.spec +++ b/cross-avr-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-bpf-gcc13.spec b/cross-bpf-gcc13.spec index 4f90ce2..af6cc0f 100644 --- a/cross-bpf-gcc13.spec +++ b/cross-bpf-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-epiphany-gcc13-bootstrap.spec b/cross-epiphany-gcc13-bootstrap.spec index 54ccd99..47eeb2e 100644 --- a/cross-epiphany-gcc13-bootstrap.spec +++ b/cross-epiphany-gcc13-bootstrap.spec @@ -108,7 +108,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -146,6 +146,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -372,6 +373,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-epiphany-gcc13.spec b/cross-epiphany-gcc13.spec index 1ef20e1..3ab345a 100644 --- a/cross-epiphany-gcc13.spec +++ b/cross-epiphany-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-hppa-gcc13-bootstrap.spec b/cross-hppa-gcc13-bootstrap.spec index 66b3147..411be6d 100644 --- a/cross-hppa-gcc13-bootstrap.spec +++ b/cross-hppa-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-hppa-gcc13.spec b/cross-hppa-gcc13.spec index b9d1c51..90ceca5 100644 --- a/cross-hppa-gcc13.spec +++ b/cross-hppa-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-m68k-gcc13.spec b/cross-m68k-gcc13.spec index de6399b..f5c6799 100644 --- a/cross-m68k-gcc13.spec +++ b/cross-m68k-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-mips-gcc13.spec b/cross-mips-gcc13.spec index 3aa75e7..1c41c1a 100644 --- a/cross-mips-gcc13.spec +++ b/cross-mips-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-nvptx-gcc13.spec b/cross-nvptx-gcc13.spec index b0c1f75..05be927 100644 --- a/cross-nvptx-gcc13.spec +++ b/cross-nvptx-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-ppc64-gcc13.spec b/cross-ppc64-gcc13.spec index 428f587..788b0d1 100644 --- a/cross-ppc64-gcc13.spec +++ b/cross-ppc64-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-ppc64le-gcc13-bootstrap.spec b/cross-ppc64le-gcc13-bootstrap.spec index 379cc3a..e485a8a 100644 --- a/cross-ppc64le-gcc13-bootstrap.spec +++ b/cross-ppc64le-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-ppc64le-gcc13.spec b/cross-ppc64le-gcc13.spec index ecde70c..da3427a 100644 --- a/cross-ppc64le-gcc13.spec +++ b/cross-ppc64le-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-pru-gcc13-bootstrap.spec b/cross-pru-gcc13-bootstrap.spec index 6ce9dab..fff3a03 100644 --- a/cross-pru-gcc13-bootstrap.spec +++ b/cross-pru-gcc13-bootstrap.spec @@ -108,7 +108,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -146,6 +146,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -372,6 +373,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-pru-gcc13.spec b/cross-pru-gcc13.spec index 16694d6..9da8192 100644 --- a/cross-pru-gcc13.spec +++ b/cross-pru-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-riscv64-elf-gcc13-bootstrap.spec b/cross-riscv64-elf-gcc13-bootstrap.spec index 5469c27..d65a693 100644 --- a/cross-riscv64-elf-gcc13-bootstrap.spec +++ b/cross-riscv64-elf-gcc13-bootstrap.spec @@ -108,7 +108,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -146,6 +146,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -372,6 +373,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-riscv64-elf-gcc13.spec b/cross-riscv64-elf-gcc13.spec index 2dcb168..eb98b75 100644 --- a/cross-riscv64-elf-gcc13.spec +++ b/cross-riscv64-elf-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-riscv64-gcc13-bootstrap.spec b/cross-riscv64-gcc13-bootstrap.spec index 5c1f783..ccfaec7 100644 --- a/cross-riscv64-gcc13-bootstrap.spec +++ b/cross-riscv64-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-riscv64-gcc13.spec b/cross-riscv64-gcc13.spec index 7175f79..0fa7564 100644 --- a/cross-riscv64-gcc13.spec +++ b/cross-riscv64-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-rx-gcc13-bootstrap.spec b/cross-rx-gcc13-bootstrap.spec index 1f9aae2..74b09ed 100644 --- a/cross-rx-gcc13-bootstrap.spec +++ b/cross-rx-gcc13-bootstrap.spec @@ -108,7 +108,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -146,6 +146,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -372,6 +373,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-rx-gcc13.spec b/cross-rx-gcc13.spec index f27fb02..76e2932 100644 --- a/cross-rx-gcc13.spec +++ b/cross-rx-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-s390x-gcc13-bootstrap.spec b/cross-s390x-gcc13-bootstrap.spec index 8e77508..c83ae33 100644 --- a/cross-s390x-gcc13-bootstrap.spec +++ b/cross-s390x-gcc13-bootstrap.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-s390x-gcc13.spec b/cross-s390x-gcc13.spec index 7b3acc3..1751a6b 100644 --- a/cross-s390x-gcc13.spec +++ b/cross-s390x-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-sparc-gcc13.spec b/cross-sparc-gcc13.spec index 70816b3..d6c92fc 100644 --- a/cross-sparc-gcc13.spec +++ b/cross-sparc-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-sparc64-gcc13.spec b/cross-sparc64-gcc13.spec index 7c430f8..76a48b1 100644 --- a/cross-sparc64-gcc13.spec +++ b/cross-sparc64-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/cross-x86_64-gcc13.spec b/cross-x86_64-gcc13.spec index 1d4f80f..3267759 100644 --- a/cross-x86_64-gcc13.spec +++ b/cross-x86_64-gcc13.spec @@ -107,7 +107,7 @@ Name: %{pkgname} %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -145,6 +145,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -371,6 +372,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/gcc-13.3.0+git8781.tar.xz b/gcc-13.3.0+git8781.tar.xz deleted file mode 100644 index c805335..0000000 --- a/gcc-13.3.0+git8781.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36b7233e20d0098470f4724bd5872892f4a3f2d9c6659356fafb3e787c70b299 -size 87275840 diff --git a/gcc-13.3.1+git8964.tar.xz b/gcc-13.3.1+git8964.tar.xz new file mode 100644 index 0000000..d4a72d5 --- /dev/null +++ b/gcc-13.3.1+git8964.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b28899078a9457c5e406db83d8e891ef71b5f2568998c0166f29f4619999ce33 +size 87282684 diff --git a/gcc.spec.in b/gcc.spec.in index 289a946..248f215 100644 --- a/gcc.spec.in +++ b/gcc.spec.in @@ -204,7 +204,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 1 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -397,6 +397,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch # GCC-TESTSUITE-DELETE-BEGIN # SRC-COMMON-END @@ -1369,6 +1370,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/gcc13-rs6000-Adjust-fpatchable-function-entry.patch b/gcc13-rs6000-Adjust-fpatchable-function-entry.patch new file mode 100644 index 0000000..fc4af5d --- /dev/null +++ b/gcc13-rs6000-Adjust-fpatchable-function-entry.patch @@ -0,0 +1,265 @@ +From 8926dc1cbe8fa3b9ae35bf03ec503bbc40f9cf37 Mon Sep 17 00:00:00 2001 +From: Giuliano Belinassi +Date: Thu, 25 Jul 2024 11:54:22 -0300 +Subject: [PATCH] Backport rs6000: Adjust -fpatchable-function-entry* support + for dual entry + +Original message: +As the discussion in PR112980, although the current +implementation for -fpatchable-function-entry* conforms +with the documentation (making N NOPs be consecutive), +it's inefficient for both kernel and userspace livepatching +(see comments in PR for the details). + +So this patch is to change the current implementation by +emitting the "before" NOPs before global entry point and +the "after" NOPs after local entry point. The new behavior +would not keep NOPs to be consecutive, so the documentation +is updated to emphasize this + +Backport to gcc-13 + +Authored-by: Kewen Lin +Backported-by: Giuliano Belinassi + + PR target/112980 + +gcc/ChangeLog: + + * config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue): + Adjust the handling on patch area emitting with dual entry, remove + the restriction on "before" NOPs count, not emit "before" NOPs any + more but only emit "after" NOPs. + * config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry): + Adjust by respecting cfun->machine->stop_patch_area_print. + (rs6000_elf_declare_function_name): For ELFv2 with dual entry, set + cfun->machine->stop_patch_area_print as true. + * config/rs6000/rs6000.h (struct machine_function): Remove member + global_entry_emitted, add new member stop_patch_area_print. + * doc/invoke.texi (option -fpatchable-function-entry): Adjust the + documentation for PowerPC ELFv2 dual entry. + +gcc/testsuite/ChangeLog: + + * c-c++-common/patchable_function_entry-default.c: Adjust. + * gcc.target/powerpc/pr99888-4.c: Likewise. + * gcc.target/powerpc/pr99888-5.c: Likewise. + * gcc.target/powerpc/pr99888-6.c: Likewise. + +Signed-off-by: Giuliano Belinassi +--- + gcc/config/rs6000/rs6000-logue.cc | 40 +++++-------------- + gcc/config/rs6000/rs6000.cc | 15 +++++-- + gcc/config/rs6000/rs6000.h | 10 +++-- + gcc/doc/invoke.texi | 8 ++-- + .../patchable_function_entry-default.c | 3 -- + gcc/testsuite/gcc.target/powerpc/pr99888-4.c | 4 +- + gcc/testsuite/gcc.target/powerpc/pr99888-5.c | 4 +- + gcc/testsuite/gcc.target/powerpc/pr99888-6.c | 4 +- + 8 files changed, 33 insertions(+), 55 deletions(-) + +diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc +index 208404e6864..3835bc943ad 100644 +--- a/gcc/config/rs6000/rs6000-logue.cc ++++ b/gcc/config/rs6000/rs6000-logue.cc +@@ -4001,43 +4001,21 @@ rs6000_output_function_prologue (FILE *file) + fprintf (file, "\tadd 2,2,12\n"); + } + +- unsigned short patch_area_size = crtl->patch_area_size; +- unsigned short patch_area_entry = crtl->patch_area_entry; +- /* Need to emit the patching area. */ +- if (patch_area_size > 0) +- { +- cfun->machine->global_entry_emitted = true; +- /* As ELFv2 ABI shows, the allowable bytes between the global +- and local entry points are 0, 4, 8, 16, 32 and 64 when +- there is a local entry point. Considering there are two +- non-prefixed instructions for global entry point prologue +- (8 bytes), the count for patchable nops before local entry +- point would be 2, 6 and 14. It's possible to support those +- other counts of nops by not making a local entry point, but +- we don't have clear use cases for them, so leave them +- unsupported for now. */ +- if (patch_area_entry > 0) +- { +- if (patch_area_entry != 2 +- && patch_area_entry != 6 +- && patch_area_entry != 14) +- error ("unsupported number of nops before function entry (%u)", +- patch_area_entry); +- rs6000_print_patchable_function_entry (file, patch_area_entry, +- true); +- patch_area_size -= patch_area_entry; +- } +- } +- + fputs ("\t.localentry\t", file); + assemble_name (file, name); + fputs (",.-", file); + assemble_name (file, name); + fputs ("\n", file); + /* Emit the nops after local entry. */ +- if (patch_area_size > 0) +- rs6000_print_patchable_function_entry (file, patch_area_size, +- patch_area_entry == 0); ++ unsigned short patch_area_size = crtl->patch_area_size; ++ unsigned short patch_area_entry = crtl->patch_area_entry; ++ if (patch_area_size > patch_area_entry) ++ { ++ cfun->machine->stop_patch_area_print = false; ++ patch_area_size -= patch_area_entry; ++ rs6000_print_patchable_function_entry (file, patch_area_size, ++ patch_area_entry == 0); ++ } + } + + else if (rs6000_pcrel_p ()) +diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc +index 2b876c90e6f..a08ed7466dd 100644 +--- a/gcc/config/rs6000/rs6000.cc ++++ b/gcc/config/rs6000/rs6000.cc +@@ -14936,12 +14936,14 @@ rs6000_print_patchable_function_entry (FILE *file, + bool record_p) + { + bool global_entry_needed_p = rs6000_global_entry_point_prologue_needed_p (); +- /* For a function which needs global entry point, we will emit the +- patchable area before and after local entry point under the control of +- cfun->machine->global_entry_emitted, see the handling in function ++ /* For a function which needs global entry point, we will only emit the ++ patchable area after local entry point under the control of ++ !cfun->machine->stop_patch_area_print, see the handling in functions + rs6000_output_function_prologue. */ +- if (!global_entry_needed_p || cfun->machine->global_entry_emitted) ++ if (!cfun->machine->stop_patch_area_print) + default_print_patchable_function_entry (file, patch_area_size, record_p); ++ else ++ gcc_assert (global_entry_needed_p); + } + + enum rtx_code +@@ -21115,6 +21117,11 @@ rs6000_elf_declare_function_name (FILE *file, const char *name, tree decl) + fprintf (file, "\t.previous\n"); + } + ASM_OUTPUT_LABEL (file, name); ++ /* At this time, the "before" NOPs have been already emitted, ++ let's stop generic code from printing the "after" NOPs and ++ emit just after local entry later. */ ++ if (rs6000_global_entry_point_prologue_needed_p ()) ++ cfun->machine->stop_patch_area_print = true; + } + + static void rs6000_elf_file_end (void) ATTRIBUTE_UNUSED; +diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h +index 9f02025b0c8..ebe97beb182 100644 +--- a/gcc/config/rs6000/rs6000.h ++++ b/gcc/config/rs6000/rs6000.h +@@ -2437,10 +2437,12 @@ typedef struct GTY(()) machine_function + bool lr_is_wrapped_separately; + bool toc_is_wrapped_separately; + bool mma_return_type_error; +- /* Indicate global entry is emitted, only useful when the function requires +- global entry. It helps to control the patchable area before and after +- local entry. */ +- bool global_entry_emitted; ++ /* With ELFv2 ABI dual entry points being adopted, generic framework ++ targetm.asm_out.print_patchable_function_entry would generate "after" ++ NOPs before local entry, it is wrong. This flag is to stop it from ++ printing patch area before local entry, it is only useful when the ++ function requires dual entry points. */ ++ bool stop_patch_area_print; + } machine_function; + #endif + +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index b17d0cf9341..0cdc5ac8c61 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -17449,11 +17449,11 @@ If @code{N=0}, no pad location is recorded. + The NOP instructions are inserted at---and maybe before, depending on + @var{M}---the function entry address, even before the prologue. On + PowerPC with the ELFv2 ABI, for a function with dual entry points, +-the local entry point is this function entry address. ++@var{M} NOP instructions are inserted before the global entry point and ++@var{N} - @var{M} NOP instructions are inserted after the local entry ++point, which means the NOP instructions may not be consecutive. + +-The maximum value of @var{N} and @var{M} is 65535. On PowerPC with the +-ELFv2 ABI, for a function with dual entry points, the supported values +-for @var{M} are 0, 2, 6 and 14. ++The maximum value of @var{N} and @var{M} is 65535. + @end table + + +diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-default.c b/gcc/testsuite/c-c++-common/patchable_function_entry-default.c +index 3ccbafc87db..899938b4aa3 100644 +--- a/gcc/testsuite/c-c++-common/patchable_function_entry-default.c ++++ b/gcc/testsuite/c-c++-common/patchable_function_entry-default.c +@@ -1,9 +1,6 @@ + /* { dg-do compile { target { ! { nvptx*-*-* visium-*-* } } } } */ + /* { dg-options "-O2 -fpatchable-function-entry=3,1" } */ + /* { dg-additional-options "-fno-pie" { target sparc*-*-* } } */ +-/* See PR99888, one single preceding nop isn't allowed on powerpc_elfv2, +- so overriding with two preceding nops to make it pass there. */ +-/* { dg-additional-options "-fpatchable-function-entry=3,2" { target powerpc_elfv2 } } */ + /* { dg-final { scan-assembler-times "nop|NOP|SWYM" 3 { target { ! { alpha*-*-* riscv*-*-* } } } } } */ + /* { dg-final { scan-assembler-times "bis" 3 { target alpha*-*-* } } } */ + /* { dg-final { scan-assembler-times "nop\n" 3 { target riscv*-*-* } } } */ +diff --git a/gcc/testsuite/gcc.target/powerpc/pr99888-4.c b/gcc/testsuite/gcc.target/powerpc/pr99888-4.c +index 00a8d4d316e..6f23f2bb939 100644 +--- a/gcc/testsuite/gcc.target/powerpc/pr99888-4.c ++++ b/gcc/testsuite/gcc.target/powerpc/pr99888-4.c +@@ -2,12 +2,10 @@ + /* There is no global entry point prologue with pcrel. */ + /* { dg-options "-mno-pcrel -fpatchable-function-entry=1,1" } */ + +-/* Verify one error emitted for unexpected 1 nop before local +- entry. */ ++/* Verify there is no error with 1 nop before local entry. */ + + extern int a; + + int test (int b) { + return a + b; + } +-/* { dg-error "unsupported number of nops before function entry \\(1\\)" "" { target *-*-* } .-1 } */ +diff --git a/gcc/testsuite/gcc.target/powerpc/pr99888-5.c b/gcc/testsuite/gcc.target/powerpc/pr99888-5.c +index 39d3b4465f1..13f192ebd20 100644 +--- a/gcc/testsuite/gcc.target/powerpc/pr99888-5.c ++++ b/gcc/testsuite/gcc.target/powerpc/pr99888-5.c +@@ -2,12 +2,10 @@ + /* There is no global entry point prologue with pcrel. */ + /* { dg-options "-mno-pcrel -fpatchable-function-entry=7,3" } */ + +-/* Verify one error emitted for unexpected 3 nops before local +- entry. */ ++/* Verify no error emitted for 3 nops before local entry. */ + + extern int a; + + int test (int b) { + return a + b; + } +-/* { dg-error "unsupported number of nops before function entry \\(3\\)" "" { target *-*-* } .-1 } */ +diff --git a/gcc/testsuite/gcc.target/powerpc/pr99888-6.c b/gcc/testsuite/gcc.target/powerpc/pr99888-6.c +index c6c18dcc7ac..431c69cae9a 100644 +--- a/gcc/testsuite/gcc.target/powerpc/pr99888-6.c ++++ b/gcc/testsuite/gcc.target/powerpc/pr99888-6.c +@@ -2,8 +2,7 @@ + /* There is no global entry point prologue with pcrel. */ + /* { dg-options "-mno-pcrel" } */ + +-/* Verify one error emitted for unexpected 4 nops before local +- entry. */ ++/* Verify no error emitted for 4 nops before local entry. */ + + extern int a; + +@@ -11,4 +10,3 @@ __attribute__ ((patchable_function_entry (20, 4))) + int test (int b) { + return a + b; + } +-/* { dg-error "unsupported number of nops before function entry \\(4\\)" "" { target *-*-* } .-1 } */ +-- +2.45.2 + diff --git a/gcc13-testresults.spec b/gcc13-testresults.spec index 4b82c6f..b0031b2 100644 --- a/gcc13-testresults.spec +++ b/gcc13-testresults.spec @@ -221,7 +221,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -413,6 +413,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch Summary: Testsuite results License: SUSE-Public-Domain @@ -555,6 +556,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end diff --git a/gcc13.changes b/gcc13.changes index f7c2457..5b0213a 100644 --- a/gcc13.changes +++ b/gcc13.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Wed Aug 7 09:32:00 UTC 2024 - Richard Biener + +- Update to gcc-13 branch head, 9d368828bd4d04ce507e02a581, git8964 + * includes fix for samba build with glibc 2.40 + +------------------------------------------------------------------- +Thu Jul 25 17:29:02 UTC 2024 - Giuliano Belinassi + +- Add gcc13-rs6000-Adjust-fpatchable-function-entry.patch to fix + the incorrect NOPs layout when -fpatchable-function-enry is passed + in ppc64le. + ------------------------------------------------------------------- Tue May 21 08:56:28 UTC 2024 - Richard Biener diff --git a/gcc13.spec b/gcc13.spec index 4a37c31..15bd6c9 100644 --- a/gcc13.spec +++ b/gcc13.spec @@ -200,7 +200,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 13.3.0+git8781 +Version: 13.3.1+git8964 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -392,6 +392,7 @@ Patch60: gcc44-textdomain.patch Patch61: gcc44-rename-info-files.patch # Feature backports Patch100: gcc13-pr88345-min-func-alignment.diff +Patch101: gcc13-rs6000-Adjust-fpatchable-function-entry.patch License: GPL-3.0-or-later Summary: The GNU C Compiler and Support Files @@ -2379,6 +2380,7 @@ ln -s newlib-4.3.0.20230120/newlib . %patch -P 60 -p1 %patch -P 61 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 #test patching end