From 6a963a50e14cf4bfb02129275c0b184563179870acb1664b9d6bfa68b5e8e935 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 6 Feb 2024 08:10:04 +0000 Subject: [PATCH] - Add gcc7-pr88345-min-func-alignment.diff to add support for -fmin-function-alignment. [bsc#1214934] OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc7?expand=0&rev=245 --- cross-aarch64-gcc7.spec | 2 + cross-arm-gcc7.spec | 2 + cross-arm-none-gcc7-bootstrap.spec | 2 + cross-arm-none-gcc7.spec | 2 + cross-avr-gcc7-bootstrap.spec | 2 + cross-avr-gcc7.spec | 2 + cross-epiphany-gcc7-bootstrap.spec | 2 + cross-epiphany-gcc7.spec | 2 + cross-hppa-gcc7.spec | 2 + cross-i386-gcc7.spec | 2 + cross-m68k-gcc7.spec | 2 + cross-mips-gcc7.spec | 2 + cross-nvptx-gcc7.spec | 2 + cross-ppc64-gcc7.spec | 2 + cross-ppc64le-gcc7.spec | 2 + cross-rx-gcc7-bootstrap.spec | 2 + cross-rx-gcc7.spec | 2 + cross-s390x-gcc7.spec | 2 + cross-sparc-gcc7.spec | 2 + cross-sparc64-gcc7.spec | 2 + cross-x86_64-gcc7.spec | 2 + gcc.spec.in | 2 + gcc7-pr88345-min-func-alignment.diff | 141 +++++++++++++++++++++++++++ gcc7-testresults.spec | 2 + gcc7.changes | 6 ++ gcc7.spec | 2 + 26 files changed, 195 insertions(+) create mode 100644 gcc7-pr88345-min-func-alignment.diff diff --git a/cross-aarch64-gcc7.spec b/cross-aarch64-gcc7.spec index b47917b..8583cbb 100644 --- a/cross-aarch64-gcc7.spec +++ b/cross-aarch64-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-arm-gcc7.spec b/cross-arm-gcc7.spec index 70dcb9f..a447c19 100644 --- a/cross-arm-gcc7.spec +++ b/cross-arm-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-arm-none-gcc7-bootstrap.spec b/cross-arm-none-gcc7-bootstrap.spec index 2535c8d..f920154 100644 --- a/cross-arm-none-gcc7-bootstrap.spec +++ b/cross-arm-none-gcc7-bootstrap.spec @@ -189,6 +189,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -387,6 +388,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-arm-none-gcc7.spec b/cross-arm-none-gcc7.spec index 906888d..8ba84fd 100644 --- a/cross-arm-none-gcc7.spec +++ b/cross-arm-none-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-avr-gcc7-bootstrap.spec b/cross-avr-gcc7-bootstrap.spec index a909ce0..00df2b8 100644 --- a/cross-avr-gcc7-bootstrap.spec +++ b/cross-avr-gcc7-bootstrap.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-avr-gcc7.spec b/cross-avr-gcc7.spec index a306c14..cecfaee 100644 --- a/cross-avr-gcc7.spec +++ b/cross-avr-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-epiphany-gcc7-bootstrap.spec b/cross-epiphany-gcc7-bootstrap.spec index 43ddf45..76c6fa1 100644 --- a/cross-epiphany-gcc7-bootstrap.spec +++ b/cross-epiphany-gcc7-bootstrap.spec @@ -189,6 +189,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -387,6 +388,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-epiphany-gcc7.spec b/cross-epiphany-gcc7.spec index 209d369..72d4ccb 100644 --- a/cross-epiphany-gcc7.spec +++ b/cross-epiphany-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-hppa-gcc7.spec b/cross-hppa-gcc7.spec index d6cb05a..59864ab 100644 --- a/cross-hppa-gcc7.spec +++ b/cross-hppa-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-i386-gcc7.spec b/cross-i386-gcc7.spec index 02445a3..a6a6ec5 100644 --- a/cross-i386-gcc7.spec +++ b/cross-i386-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-m68k-gcc7.spec b/cross-m68k-gcc7.spec index 8a0e777..c55a588 100644 --- a/cross-m68k-gcc7.spec +++ b/cross-m68k-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-mips-gcc7.spec b/cross-mips-gcc7.spec index a915891..76dd008 100644 --- a/cross-mips-gcc7.spec +++ b/cross-mips-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-nvptx-gcc7.spec b/cross-nvptx-gcc7.spec index 558d16a..2fe963d 100644 --- a/cross-nvptx-gcc7.spec +++ b/cross-nvptx-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-ppc64-gcc7.spec b/cross-ppc64-gcc7.spec index 91a8e2d..d7c16eb 100644 --- a/cross-ppc64-gcc7.spec +++ b/cross-ppc64-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-ppc64le-gcc7.spec b/cross-ppc64le-gcc7.spec index 968f116..ec01c3a 100644 --- a/cross-ppc64le-gcc7.spec +++ b/cross-ppc64le-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-rx-gcc7-bootstrap.spec b/cross-rx-gcc7-bootstrap.spec index 12f608b..74614ed 100644 --- a/cross-rx-gcc7-bootstrap.spec +++ b/cross-rx-gcc7-bootstrap.spec @@ -189,6 +189,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -387,6 +388,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-rx-gcc7.spec b/cross-rx-gcc7.spec index a3eb7db..849a6f7 100644 --- a/cross-rx-gcc7.spec +++ b/cross-rx-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-s390x-gcc7.spec b/cross-s390x-gcc7.spec index d2eb56b..c3dfc34 100644 --- a/cross-s390x-gcc7.spec +++ b/cross-s390x-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-sparc-gcc7.spec b/cross-sparc-gcc7.spec index 7371e41..7e4af12 100644 --- a/cross-sparc-gcc7.spec +++ b/cross-sparc-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-sparc64-gcc7.spec b/cross-sparc64-gcc7.spec index 87fd38b..40c5e7a 100644 --- a/cross-sparc64-gcc7.spec +++ b/cross-sparc64-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/cross-x86_64-gcc7.spec b/cross-x86_64-gcc7.spec index bf7cd05..7fcccfe 100644 --- a/cross-x86_64-gcc7.spec +++ b/cross-x86_64-gcc7.spec @@ -188,6 +188,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # Define the canonical target and host architecture # %%gcc_target_arch is supposed to be the full target triple @@ -386,6 +387,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/gcc.spec.in b/gcc.spec.in index c3f9334..2d754ef 100644 --- a/gcc.spec.in +++ b/gcc.spec.in @@ -375,6 +375,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff # GCC-TESTSUITE-DELETE-BEGIN # SRC-COMMON-END @@ -1183,6 +1184,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/gcc7-pr88345-min-func-alignment.diff b/gcc7-pr88345-min-func-alignment.diff new file mode 100644 index 0000000..b98bb42 --- /dev/null +++ b/gcc7-pr88345-min-func-alignment.diff @@ -0,0 +1,141 @@ +From 874b0e7d0c16653beeed2ce8d92363cc0c1580cd Mon Sep 17 00:00:00 2001 +From: Martin Jambor +Date: Thu, 25 Jan 2024 14:15:10 +0100 +Subject: [PATCH] Add -fmin-function-alignmnet +To: gcc-patches@gcc.gnu.org + +This is a manual backport of gcc master ommit r14-8395-g0f5a9a00e3ab1f +without alphabetical reordering of parameters in common.opt. Commit +message of that commit (without Changelog): + + commit 0f5a9a00e3ab1fe96142f304cfbcf3f63b15f326 + Author: Jan Hubicka + Date: Wed Jan 24 18:13:17 2024 +0100 + + Add -fmin-function-alignmnet + + -falign-functions is ignored in cold code, since it is an + optimization intended to improve instruction prefetch. In some + case it is necessary to force alignment for all functions, so + this patch adds -fmin-function-alignment for this purpose. + +gcc/ChangeLog: + +2024-01-25 Jan Hubicka + Martin Jambor + + * common.opt (fmin-function-alignment): New parameter. + * doc/invoke.texi: (-fmin-function-alignment): Document. + (-falign-functions,-falign-loops,-falign-labels): Mention that + * varasm.c (assemble_start_function): Handle min-function-alignment. + * lto-streamer.h (LTO_minor_version): Bump. +--- + gcc/common.opt | 4 ++++ + gcc/doc/invoke.texi | 17 +++++++++++++++++ + gcc/lto-streamer.h | 2 +- + gcc/varasm.c | 5 +++++ + 4 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/gcc/common.opt b/gcc/common.opt +index 437db8e8615..8eadae558f3 100644 +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -1824,6 +1824,10 @@ fmessage-length= + Common RejectNegative Joined UInteger + -fmessage-length= Limit diagnostics to characters per line. 0 suppresses line-wrapping. + ++fmin-function-alignment= ++Common Joined RejectNegative UInteger Var(flag_min_function_alignment) Optimization ++Align the start of every function. ++ + fmodulo-sched + Common Report Var(flag_modulo_sched) Optimization + Perform SMS based modulo scheduling before the first scheduling pass. +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 8f279e454b0..bed117fa542 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -355,6 +355,7 @@ Objective-C and Objective-C++ Dialects}. + @gccoptlist{-faggressive-loop-optimizations -falign-functions[=@var{n}] @gol + -falign-jumps[=@var{n}] @gol + -falign-labels[=@var{n}] -falign-loops[=@var{n}] @gol ++-fmin-function-alignment=[@var{n}] @gol + -fassociative-math -fauto-profile -fauto-profile[=@var{path}] @gol + -fauto-inc-dec -fbranch-probabilities @gol + -fbranch-target-load-optimize -fbranch-target-load-optimize2 @gol +@@ -8688,6 +8689,9 @@ Align the start of functions to the next power-of-two greater than + @option{-falign-functions=32} aligns functions to the next 32-byte + boundary, but @option{-falign-functions=24} aligns to the next + 32-byte boundary only if this can be done by skipping 23 bytes or less. ++This is an optimization of code performance and alignment is ignored for ++functions considered cold. If alignment is required for all functions, ++use @option{-fmin-function-alignment}. + + @option{-fno-align-functions} and @option{-falign-functions=1} are + equivalent and mean that functions are not aligned. +@@ -8733,6 +8737,8 @@ Align loops to a power-of-two boundary, skipping up to @var{n} bytes + like @option{-falign-functions}. If the loops are + executed many times, this makes up for any execution of the dummy + operations. ++This is an optimization of code performance and alignment is ignored for ++loops considered cold. + + @option{-fno-align-loops} and @option{-falign-loops=1} are + equivalent and mean that loops are not aligned. +@@ -8749,6 +8755,8 @@ Align branch targets to a power-of-two boundary, for branch targets + where the targets can only be reached by jumping, skipping up to @var{n} + bytes like @option{-falign-functions}. In this case, no dummy operations + need be executed. ++This is an optimization of code performance and alignment is ignored for ++jumps considered cold. + + @option{-fno-align-jumps} and @option{-falign-jumps=1} are + equivalent and mean that loops are not aligned. +@@ -8758,6 +8766,15 @@ The maximum allowed @var{n} option value is 65536. + + Enabled at levels @option{-O2}, @option{-O3}. + ++@item -fmin-function-alignment ++@itemx -fmin-function-alignment=@var{n} ++@opindex fmin-function-alignment ++Specify minimal alignment of functions to the next power-of-two greater than or ++equal to @var{n}. Unlike @option{-falign-functions} this alignment is applied ++also to all functions (even those considered cold). The alignment is also not ++affected by @option{-flimit-function-alignment} ++ ++ + @item -funit-at-a-time + @opindex funit-at-a-time + This option is left for compatibility reasons. @option{-funit-at-a-time} +diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h +index 689fbcf64ee..ef0aec79863 100644 +--- a/gcc/lto-streamer.h ++++ b/gcc/lto-streamer.h +@@ -129,7 +129,7 @@ along with GCC; see the file COPYING3. If not see + form followed by the data for the string. */ + + #define LTO_major_version 6 +-#define LTO_minor_version 2 ++#define LTO_minor_version 3 + + typedef unsigned char lto_decl_flags_t; + +diff --git a/gcc/varasm.c b/gcc/varasm.c +index 1b9030029ac..311b899ced7 100644 +--- a/gcc/varasm.c ++++ b/gcc/varasm.c +@@ -1778,6 +1778,11 @@ assemble_start_function (tree decl, const char *fnname) + + /* Tell assembler to move to target machine's alignment for functions. */ + align = floor_log2 (align / BITS_PER_UNIT); ++ /* Handle forced alignment. This really ought to apply to all functions, ++ since it is used by patchable entries. */ ++ if (flag_min_function_alignment) ++ align = MAX (align, floor_log2 (flag_min_function_alignment)); ++ + if (align > 0) + { + ASM_OUTPUT_ALIGN (asm_out_file, align); +-- +2.35.3 + diff --git a/gcc7-testresults.spec b/gcc7-testresults.spec index 75d5ff0..0f28352 100644 --- a/gcc7-testresults.spec +++ b/gcc7-testresults.spec @@ -389,6 +389,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff Summary: Testsuite results License: SUSE-Public-Domain @@ -572,6 +573,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end diff --git a/gcc7.changes b/gcc7.changes index a76f966..1ccb560 100644 --- a/gcc7.changes +++ b/gcc7.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Feb 6 08:04:04 UTC 2024 - Richard Biener + +- Add gcc7-pr88345-min-func-alignment.diff to add support for + -fmin-function-alignment. [bsc#1214934] + ------------------------------------------------------------------- Mon Feb 5 14:24:16 UTC 2024 - Richard Biener diff --git a/gcc7.spec b/gcc7.spec index c4ed209..a03aa3e 100644 --- a/gcc7.spec +++ b/gcc7.spec @@ -368,6 +368,7 @@ Patch123: gcc7-pfe-0019-Backport-Use-the-section-flag-o-for-__patchable_fu Patch124: gcc7-pfe-0020-Backport-varasm-Fix-up-__patchable_function_entries-.patch Patch125: gcc7-pfe-0021-Backport-rs6000-Avoid-fpatchable-function-entry-regr.patch Patch126: gcc7-pfe-0022-Fix-unwinding-issues-when-pfe-is-enabled.patch +Patch127: gcc7-pr88345-min-func-alignment.diff License: GPL-3.0-or-later Summary: The GNU C Compiler and Support Files @@ -1909,6 +1910,7 @@ ln -s nvptx-newlib/newlib . %patch124 -p1 %patch125 -p1 %patch126 -p1 +%patch127 -p1 #test patching end