-
Notifications
You must be signed in to change notification settings - Fork 182
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #264 from nathanchance/add-patches-for-llvm-main-b…
…reakage Add patches to fix performing PGO with current LLVM main
- Loading branch information
Showing
3 changed files
with
163 additions
and
0 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
src/20240319_nathan_hexagon_vmlinux_lds_s_handle_attributes_section.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
From git@z Thu Jan 1 00:00:00 1970 | ||
Subject: [PATCH] hexagon: vmlinux.lds.S: Handle attributes section | ||
From: Nathan Chancellor <[email protected]> | ||
Date: Tue, 19 Mar 2024 17:37:46 -0700 | ||
Message-Id: <20240319-hexagon-handle-attributes-section-vmlinux-lds-s-v1-1-59855dab8872@kernel.org> | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset="utf-8" | ||
Content-Transfer-Encoding: 7bit | ||
|
||
After the linked LLVM change, the build fails with | ||
CONFIG_LD_ORPHAN_WARN_LEVEL="error", which happens with allmodconfig: | ||
|
||
ld.lld: error: vmlinux.a(init/main.o):(.hexagon.attributes) is being placed in '.hexagon.attributes' | ||
|
||
Handle the attributes section in a similar manner as arm and riscv by | ||
adding it after the primary ELF_DETAILS grouping in vmlinux.lds.S, which | ||
fixes the error. | ||
|
||
Cc: [email protected] | ||
Fixes: 113616ec5b64 ("hexagon: select ARCH_WANT_LD_ORPHAN_WARN") | ||
Link: https://github.com/llvm/llvm-project/commit/31f4b329c8234fab9afa59494d7f8bdaeaefeaad | ||
Reviewed-by: Brian Cain <[email protected]> | ||
Link: https://lore.kernel.org/r/20240319-hexagon-handle-attributes-section-vmlinux-lds-s-v1-1-59855dab8872@kernel.org | ||
Signed-off-by: Nathan Chancellor <[email protected]> | ||
--- | ||
arch/hexagon/kernel/vmlinux.lds.S | 1 + | ||
1 file changed, 1 insertion(+) | ||
|
||
diff --git a/arch/hexagon/kernel/vmlinux.lds.S b/arch/hexagon/kernel/vmlinux.lds.S | ||
index 1140051a0c45..1150b77fa281 100644 | ||
--- a/arch/hexagon/kernel/vmlinux.lds.S | ||
+++ b/arch/hexagon/kernel/vmlinux.lds.S | ||
@@ -63,6 +63,7 @@ SECTIONS | ||
STABS_DEBUG | ||
DWARF_DEBUG | ||
ELF_DETAILS | ||
+ .hexagon.attributes 0 : { *(.hexagon.attributes) } | ||
|
||
DISCARDS | ||
} | ||
|
||
--- | ||
base-commit: e8f897f4afef0031fe618a8e94127a0934896aba | ||
change-id: 20240319-hexagon-handle-attributes-section-vmlinux-lds-s-2a14b14799c0 | ||
|
||
Best regards, | ||
-- | ||
Nathan Chancellor <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
From 35f20786c481d5ced9283ff42de5c69b65e5ed13 Mon Sep 17 00:00:00 2001 | ||
From: Nathan Chancellor <[email protected]> | ||
Date: Sat, 27 Jan 2024 11:07:43 -0700 | ||
Subject: powerpc: xor_vmx: Add '-mhard-float' to CFLAGS | ||
|
||
arch/powerpc/lib/xor_vmx.o is built with '-msoft-float' (from the main | ||
powerpc Makefile) and '-maltivec' (from its CFLAGS), which causes an | ||
error when building with clang after a recent change in main: | ||
|
||
error: option '-msoft-float' cannot be specified with '-maltivec' | ||
make[6]: *** [scripts/Makefile.build:243: arch/powerpc/lib/xor_vmx.o] Error 1 | ||
|
||
Explicitly add '-mhard-float' before '-maltivec' in xor_vmx.o's CFLAGS | ||
to override the previous inclusion of '-msoft-float' (as the last option | ||
wins), which matches how other areas of the kernel use '-maltivec', such | ||
as AMDGPU. | ||
|
||
Cc: [email protected] | ||
Closes: https://github.com/ClangBuiltLinux/linux/issues/1986 | ||
Link: https://github.com/llvm/llvm-project/commit/4792f912b232141ecba4cbae538873be3c28556c | ||
Signed-off-by: Nathan Chancellor <[email protected]> | ||
Signed-off-by: Michael Ellerman <[email protected]> | ||
Link: https://msgid.link/20240127-ppc-xor_vmx-drop-msoft-float-v1-1-f24140e81376@kernel.org | ||
--- | ||
Link: https://git.kernel.org/powerpc/c/35f20786c481d5ced9283ff42de5c69b65e5ed13 | ||
--- | ||
arch/powerpc/lib/Makefile | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile | ||
index 6eac63e79a8995..0ab65eeb93ee3a 100644 | ||
--- a/arch/powerpc/lib/Makefile | ||
+++ b/arch/powerpc/lib/Makefile | ||
@@ -76,7 +76,7 @@ obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o | ||
obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o | ||
|
||
obj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o | ||
-CFLAGS_xor_vmx.o += -maltivec $(call cc-option,-mabi=altivec) | ||
+CFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec) | ||
# Enable <altivec.h> | ||
CFLAGS_xor_vmx.o += -isystem $(shell $(CC) -print-file-name=include) | ||
|
||
-- | ||
cgit 1.2.3-korg | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
From 75b5ab134bb5f657ef7979a59106dce0657e8d87 Mon Sep 17 00:00:00 2001 | ||
From: Nathan Chancellor <[email protected]> | ||
Date: Tue, 5 Mar 2024 15:12:47 -0700 | ||
Subject: kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1 | ||
|
||
Clang enables -Wenum-enum-conversion and -Wenum-compare-conditional | ||
under -Wenum-conversion. A recent change in Clang strengthened these | ||
warnings and they appear frequently in common builds, primarily due to | ||
several instances in common headers but there are quite a few drivers | ||
that have individual instances as well. | ||
|
||
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] | ||
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ||
| ~~~~~~~~~~~~~~~~~~~~~ ^ | ||
509 | item]; | ||
| ~~~~ | ||
|
||
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c:955:24: warning: conditional expression between different enumeration types ('enum iwl_mac_beacon_flags' and 'enum iwl_mac_beacon_flags_v1') [-Wenum-compare-conditional] | ||
955 | flags |= is_new_rate ? IWL_MAC_BEACON_CCK | ||
| ^ ~~~~~~~~~~~~~~~~~~ | ||
956 | : IWL_MAC_BEACON_CCK_V1; | ||
| ~~~~~~~~~~~~~~~~~~~~~ | ||
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c:1120:21: warning: conditional expression between different enumeration types ('enum iwl_mac_beacon_flags' and 'enum iwl_mac_beacon_flags_v1') [-Wenum-compare-conditional] | ||
1120 | 0) > 10 ? | ||
| ^ | ||
1121 | IWL_MAC_BEACON_FILS : | ||
| ~~~~~~~~~~~~~~~~~~~ | ||
1122 | IWL_MAC_BEACON_FILS_V1; | ||
| ~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Doing arithmetic between or returning two different types of enums could | ||
be a bug, so each of the instance of the warning needs to be evaluated. | ||
Unfortunately, as mentioned above, there are many instances of this | ||
warning in many different configurations, which can break the build when | ||
CONFIG_WERROR is enabled. | ||
|
||
To avoid introducing new instances of the warnings while cleaning up the | ||
disruption for the majority of users, disable these warnings for the | ||
default build while leaving them on for W=1 builds. | ||
|
||
Cc: [email protected] | ||
Closes: https://github.com/ClangBuiltLinux/linux/issues/2002 | ||
Link: https://github.com/llvm/llvm-project/commit/8c2ae42b3e1c6aa7c18f873edcebff7c0b45a37e | ||
Acked-by: Yonghong Song <[email protected]> | ||
Signed-off-by: Nathan Chancellor <[email protected]> | ||
Acked-by: Arnd Bergmann <[email protected]> | ||
Signed-off-by: Masahiro Yamada <[email protected]> | ||
--- | ||
Link: https://git.kernel.org/masahiroy/linux-kbuild/c/75b5ab134bb5f657ef7979a59106dce0657e8d87 | ||
--- | ||
scripts/Makefile.extrawarn | 2 ++ | ||
1 file changed, 2 insertions(+) | ||
|
||
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn | ||
index a9e552a1e9105b..2f25a1de129d10 100644 | ||
--- a/scripts/Makefile.extrawarn | ||
+++ b/scripts/Makefile.extrawarn | ||
@@ -132,6 +132,8 @@ KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) | ||
KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare | ||
KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) | ||
KBUILD_CFLAGS += $(call cc-disable-warning, cast-function-type-strict) | ||
+KBUILD_CFLAGS += -Wno-enum-compare-conditional | ||
+KBUILD_CFLAGS += -Wno-enum-enum-conversion | ||
endif | ||
|
||
endif | ||
-- | ||
cgit 1.2.3-korg | ||
|