From 951e42ac3d36d69a7749328101ac045831ac2adf Mon Sep 17 00:00:00 2001 From: Miguel Bernal Marin Date: Wed, 6 Nov 2019 16:36:15 -0600 Subject: [PATCH] add workaround for binutils optimization --- ...workaround-for-binutils-optimization.patch | 60 +++++++++++++++++++ linux-iot-lts2018.spec | 4 +- release | 2 +- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 9003-add-workaround-for-binutils-optimization.patch diff --git a/9003-add-workaround-for-binutils-optimization.patch b/9003-add-workaround-for-binutils-optimization.patch new file mode 100644 index 00000000..d26f4bc2 --- /dev/null +++ b/9003-add-workaround-for-binutils-optimization.patch @@ -0,0 +1,60 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Arjan van de Ven +Date: Wed, 6 Nov 2019 04:03:04 +0000 +Subject: [PATCH] add workaround for binutils optimization + +--- + arch/x86/Makefile | 9 ++++++--- + arch/x86/boot/compressed/Makefile | 2 +- + 2 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/arch/x86/Makefile b/arch/x86/Makefile +index 65e5205..7cc0aad 100644 +--- a/arch/x86/Makefile ++++ b/arch/x86/Makefile +@@ -58,7 +58,7 @@ endif + # + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383 + # +-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow ++KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wa,-mbranches-within-no-boundaries + KBUILD_CFLAGS += $(call cc-option,-mno-avx,) + + ifeq ($(CONFIG_X86_32),y) +@@ -201,8 +201,8 @@ avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1) + sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1) + sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1) + +-KBUILD_AFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) +-KBUILD_CFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) ++KBUILD_AFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) -Wa,-mbranches-within-no-boundaries ++KBUILD_CFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) -Wa,-mbranches-within-no-boundaries + + KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE) + +@@ -214,6 +214,9 @@ KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE) + ifdef CONFIG_X86_64 + KBUILD_LDFLAGS += $(call ld-option, -z max-page-size=0x200000) + endif ++ifdef CONFIG_X86_64 ++KBUILD_LDFLAGS += $(call ld-option, -mbranches-within-no-boundaries) ++endif + + # Speed up the build + KBUILD_CFLAGS += -pipe +diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile +index 466f66c..3eea18f 100644 +--- a/arch/x86/boot/compressed/Makefile ++++ b/arch/x86/boot/compressed/Makefile +@@ -39,7 +39,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) + KBUILD_CFLAGS += $(call cc-disable-warning, gnu) + KBUILD_CFLAGS += -Wno-pointer-sign + +-KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ ++KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ -Wa,-mbranches-within-no-boundaries + GCOV_PROFILE := n + UBSAN_SANITIZE :=n + +-- +https://clearlinux.org + diff --git a/linux-iot-lts2018.spec b/linux-iot-lts2018.spec index 95ad9d4d..701f7e05 100644 --- a/linux-iot-lts2018.spec +++ b/linux-iot-lts2018.spec @@ -18,7 +18,7 @@ Version: 4.19.78 # upstream number is the number from PKT it consist in # YYMMDDHHMM a 10 length number %global upstreamnumber 1903221317 -Release: 95 +Release: 96 License: GPL-2.0 Summary: The Linux kernel Url: http://www.kernel.org/ @@ -1236,6 +1236,7 @@ Patch1180: 1180-ASoC-Intel-Skylake-Recover-BXT-FW-on-DSP-boot-timeou.patch # Clear Linux Series Patch9001: 9001-init-wait-for-partition-and-retry-scan.patch Patch9002: 9002-Add-boot-option-to-allow-unsigned-modules.patch +Patch9003: 9003-add-workaround-for-binutils-optimization.patch %description The Linux IOT LTS2018 kernel. @@ -2483,6 +2484,7 @@ Linux kernel build files and install script # Clear Linux Series %patch9001 -p1 %patch9002 -p1 +%patch9003 -p1 cp %{SOURCE1} . cp %{SOURCE2} . diff --git a/release b/release index 5595fa46..f906e184 100644 --- a/release +++ b/release @@ -1 +1 @@ -95 +96