Messages in this thread Patch in this message | | | Date | Fri, 2 Feb 2018 15:38:34 -0500 (EST) | From | Nicolas Pitre <> | Subject | Re: [PATCH 7/7] Kbuild: lto: pass -m32/-m64 to to LDFINAL |
| |
On Fri, 2 Feb 2018, Arnd Bergmann wrote:
> Do you have a git tree with other changes for LTO on ARM? I'd > like to try that as well.
I currently have only 2 other patches.
You need commit 75fea300d73a that just hit mainline (you may cherry-pick it easily if necessary).
Then the following:
----- >8 Subject: [PATCH] HACK: enable LTO on ARM
Without the ${KBUILD_VMLINUX_LIBS} move the build fails with missing memcpy all over the place. Didn't figure it out yet.
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4382315005..84450843ed 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -17,6 +17,7 @@ config ARM select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7 select ARCH_SUPPORTS_ATOMIC_RMW + select ARCH_SUPPORTS_LTO select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF select ARCH_WANT_IPC_PARSE_VERSION @@ -101,6 +102,7 @@ config ARM select PERF_USE_VMALLOC select RTC_LIB select SYS_SUPPORTS_APM_EMULATION + select THIN_ARCHIVES if LTO # Above selects are sorted alphabetically; please add new ones # according to that. Thanks. help diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 45a6b9b7af..39ac0a9639 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -97,7 +97,7 @@ targets := vmlinux vmlinux.lds piggy_data piggy.o \ clean-files += piggy_data lib1funcs.S ashldi3.S bswapsdi2.S \ $(libfdt) $(libfdt_hdrs) hyp-stub.S -KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING +KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING $(DISABLE_LTO) ifeq ($(CONFIG_FUNCTION_TRACER),y) ORIG_CFLAGS := $(KBUILD_CFLAGS) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index 964b2ee855..0774a87788 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -99,9 +99,9 @@ vmlinux_link() if [ -n "${CONFIG_THIN_ARCHIVES}" ]; then objects="--whole-archive \ built-in.o \ + ${KBUILD_VMLINUX_LIBS} \ --no-whole-archive \ --start-group \ - ${KBUILD_VMLINUX_LIBS} \ --end-group \ ${1}" else
> > Arnd >
| |