diff options
author | Luca Stefani | 2020-08-04 18:03:44 +0200 |
---|---|---|
committer | Luca Stefani | 2020-08-04 18:22:30 +0200 |
commit | 40203a5e4d025aeb382097a7a5412b192efe2fc9 (patch) | |
tree | 531460cf1c0ff6f84f62954f694da74db75685fd | |
parent | 98f94925cdfb7515a89762c7656cb2e399c743ea (diff) | |
download | aur-40203a5e4d025aeb382097a7a5412b192efe2fc9.tar.gz |
Enable ThinLTO
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | 0001-RAS-CEC-Fix-cec_init-prototype.patch | 52 | ||||
-rw-r--r-- | 0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch | 42 | ||||
-rw-r--r-- | PKGBUILD | 7 | ||||
-rw-r--r-- | config | 5 |
5 files changed, 109 insertions, 3 deletions
@@ -53,9 +53,11 @@ pkgbase = linux-llvm source = 0022-x86-ftrace-disable-recordmcount-for-ftrace_make_nop.patch source = 0023-x86-relocs-Ignore-L4_PAGE_OFFSET-relocations.patch source = 0024-x86-build-allow-LTO_CLANG-and-THINLTO-to-be-selected.patch + source = 0001-RAS-CEC-Fix-cec_init-prototype.patch + source = 0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch source = enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch sha256sums = SKIP - sha256sums = 526c3f2d88be415c16015ce4b36518a60540ed4aedaf2d93b98785733eb822f7 + sha256sums = 2742a1348f1d7685671480ee24661a4d439f66c335a7e908b51290774e85a0dd sha256sums = 8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c sha256sums = 2f0090ec0c9a72e6241bbea05faaef979405119ce8ef669d84dead36c8e2246e sha256sums = 5f21c12f002e71ec5b5db96832b415ce291a7e230fa07b328c21760274e72e9d @@ -88,6 +90,8 @@ pkgbase = linux-llvm sha256sums = bd3f17cbb1da5293bb54a5bdeaa613098d41fe676ee327ba35867c18732ee80c sha256sums = 539794c1dc9b8e35a73e2e165040f363d0c7f32bc5da415ae6b27a9ffe57dde2 sha256sums = 3b956c3768e59f2d5fb0546a855138319eff60e077822667befed734c7ac84af + sha256sums = d89d15358b42c56bbb83a9f9d38bd25666d44a6f91be1029e5297bf79f8fbdc6 + sha256sums = 575e1c1353d4dca1773ac6e4b60f8d32e1611381596389c8b06a73aed0fe010a sha256sums = 5ab29eb64e57df83b395a29a6a4f89030d142feffbfbf73b3afc6d97a2a7fd12 pkgname = linux-llvm diff --git a/0001-RAS-CEC-Fix-cec_init-prototype.patch b/0001-RAS-CEC-Fix-cec_init-prototype.patch new file mode 100644 index 000000000000..8afd553bca42 --- /dev/null +++ b/0001-RAS-CEC-Fix-cec_init-prototype.patch @@ -0,0 +1,52 @@ +From 7162bca477126a8e095b10998c4b00653b97a6ed Mon Sep 17 00:00:00 2001 +From: Luca Stefani <luca.stefani.ge1@gmail.com> +Date: Tue, 4 Aug 2020 18:16:54 +0200 +Subject: [PATCH 1/2] RAS/CEC: Fix cec_init prototype + +* late_initcall expects a function to return an integer + +Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com> +--- + drivers/ras/cec.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c +index 569d9ad2c594..e048e0e3949a 100644 +--- a/drivers/ras/cec.c ++++ b/drivers/ras/cec.c +@@ -553,20 +553,20 @@ static struct notifier_block cec_nb = { + .priority = MCE_PRIO_CEC, + }; + +-static void __init cec_init(void) ++static int __init cec_init(void) + { + if (ce_arr.disabled) +- return; ++ return 0; + + ce_arr.array = (void *)get_zeroed_page(GFP_KERNEL); + if (!ce_arr.array) { + pr_err("Error allocating CE array page!\n"); +- return; ++ return 1; + } + + if (create_debugfs_nodes()) { + free_page((unsigned long)ce_arr.array); +- return; ++ return 1; + } + + INIT_DELAYED_WORK(&cec_work, cec_work_fn); +@@ -575,6 +575,7 @@ static void __init cec_init(void) + mce_register_decode_chain(&cec_nb); + + pr_info("Correctable Errors collector initialized.\n"); ++ return 0; + } + late_initcall(cec_init); + +-- +2.28.0 + diff --git a/0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch b/0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch new file mode 100644 index 000000000000..ac45406c710c --- /dev/null +++ b/0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch @@ -0,0 +1,42 @@ +From 846915b6d07f53349de1e097b7143856619f34e0 Mon Sep 17 00:00:00 2001 +From: Luca Stefani <luca.stefani.ge1@gmail.com> +Date: Tue, 4 Aug 2020 18:01:47 +0200 +Subject: [PATCH 2/2] kbuild: Rollback required CLANG version to 10 for LTO + +* ARM64 still requires CLANG 11 to fix https://github.com/ClangBuiltLinux/linux/issues/510 + +Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com> +--- + arch/Kconfig | 2 +- + arch/arm64/Kconfig | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/Kconfig b/arch/Kconfig +index 694bfdc2073f..54f6a55180ca 100644 +--- a/arch/Kconfig ++++ b/arch/Kconfig +@@ -595,7 +595,7 @@ config LTO_NONE + config LTO_CLANG + bool "Clang's Link Time Optimization (EXPERIMENTAL)" + # https://github.com/ClangBuiltLinux/linux/issues/510 +- depends on CC_IS_CLANG && CLANG_VERSION >= 110000 && LD_IS_LLD ++ depends on CC_IS_CLANG && CLANG_VERSION >= 100000 && LD_IS_LLD + depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm) + depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm) + depends on ARCH_SUPPORTS_LTO_CLANG +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index c9fb665b62b5..1883f42e341c 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -73,7 +73,7 @@ config ARM64 + select ARCH_SUPPORTS_MEMORY_FAILURE + select ARCH_SUPPORTS_SHADOW_CALL_STACK if CC_HAVE_SHADOW_CALL_STACK + select ARCH_SUPPORTS_LTO_CLANG +- select ARCH_SUPPORTS_THINLTO ++ select ARCH_SUPPORTS_THINLTO if CLANG_VERSION >= 110000 + select ARCH_SUPPORTS_ATOMIC_RMW + select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && (GCC_VERSION >= 50000 || CC_IS_CLANG) + select ARCH_SUPPORTS_NUMA_BALANCING +-- +2.28.0 + @@ -53,11 +53,14 @@ source=( 0022-x86-ftrace-disable-recordmcount-for-ftrace_make_nop.patch 0023-x86-relocs-Ignore-L4_PAGE_OFFSET-relocations.patch 0024-x86-build-allow-LTO_CLANG-and-THINLTO-to-be-selected.patch + # LTO custom + 0001-RAS-CEC-Fix-cec_init-prototype.patch + 0002-kbuild-Rollback-required-CLANG-version-to-10-for-LTO.patch # CPU enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch ) sha256sums=('SKIP' - '526c3f2d88be415c16015ce4b36518a60540ed4aedaf2d93b98785733eb822f7' + '2742a1348f1d7685671480ee24661a4d439f66c335a7e908b51290774e85a0dd' '8cb21e0b3411327b627a9dd15b8eb773295a0d2782b1a41b2a8839d1b2f5778c' '2f0090ec0c9a72e6241bbea05faaef979405119ce8ef669d84dead36c8e2246e' '5f21c12f002e71ec5b5db96832b415ce291a7e230fa07b328c21760274e72e9d' @@ -90,6 +93,8 @@ sha256sums=('SKIP' 'bd3f17cbb1da5293bb54a5bdeaa613098d41fe676ee327ba35867c18732ee80c' '539794c1dc9b8e35a73e2e165040f363d0c7f32bc5da415ae6b27a9ffe57dde2' '3b956c3768e59f2d5fb0546a855138319eff60e077822667befed734c7ac84af' + 'd89d15358b42c56bbb83a9f9d38bd25666d44a6f91be1029e5297bf79f8fbdc6' + '575e1c1353d4dca1773ac6e4b60f8d32e1611381596389c8b06a73aed0fe010a' '5ab29eb64e57df83b395a29a6a4f89030d142feffbfbf73b3afc6d97a2a7fd12') export KBUILD_BUILD_HOST=archlinux @@ -854,9 +854,12 @@ CONFIG_HAVE_STACKPROTECTOR=y CONFIG_CC_HAS_STACKPROTECTOR_NONE=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_LTO=y CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_THINLTO=y -CONFIG_LTO_NONE=y +CONFIG_THINLTO=y +# CONFIG_LTO_NONE is not set +CONFIG_LTO_CLANG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y |