* Re: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script [not found] <20250224125414.2184-1-ceggers@arri.de> @ 2025-03-04 18:49 ` kernel test robot 2025-03-10 20:37 ` Nathan Chancellor 0 siblings, 1 reply; 4+ messages in thread From: kernel test robot @ 2025-03-04 18:49 UTC (permalink / raw) To: Christian Eggers, Russell King, Yuntao Liu, Russell King (Oracle), Arnd Bergmann, Linus Walleij, Greg Kroah-Hartman, Catalin Marinas, Nathan Chancellor, linux-arm-kernel Cc: llvm, oe-kbuild-all, linux-kernel, Christian Eggers, kernel test robot Hi Christian, kernel test robot noticed the following build errors: [auto build test ERROR on soc/for-next] [also build test ERROR on linus/master v6.14-rc5 next-20250304] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Christian-Eggers/ARM-avoid-that-vectors-are-removed-during-linker-garbage-collection/20250224-210146 base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next patch link: https://lore.kernel.org/r/20250224125414.2184-1-ceggers%40arri.de patch subject: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script config: arm-milbeaut_m10v_defconfig (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/config) compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503050230.820w99b6-lkp@intel.com/ All errors (new ones prefixed by >>): >> ld.lld: error: section .vectors.bhb.bpiall virtual address range overlaps with .vectors.bhb.loop8 >>> .vectors.bhb.bpiall range is [0xFFFF0000, 0xFFFF001F] >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] -- >> ld.lld: error: section .vectors.bhb.loop8 virtual address range overlaps with .vectors >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] >>> .vectors range is [0xFFFF0000, 0xFFFF001F] -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script 2025-03-04 18:49 ` [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script kernel test robot @ 2025-03-10 20:37 ` Nathan Chancellor 2025-03-11 8:18 ` Christian Eggers 0 siblings, 1 reply; 4+ messages in thread From: Nathan Chancellor @ 2025-03-10 20:37 UTC (permalink / raw) To: kernel test robot, Christian Eggers Cc: Russell King, Yuntao Liu, Russell King (Oracle), Arnd Bergmann, Linus Walleij, Greg Kroah-Hartman, Catalin Marinas, linux-arm-kernel, llvm, oe-kbuild-all, linux-kernel On Wed, Mar 05, 2025 at 02:49:38AM +0800, kernel test robot wrote: > Hi Christian, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on soc/for-next] > [also build test ERROR on linus/master v6.14-rc5 next-20250304] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Christian-Eggers/ARM-avoid-that-vectors-are-removed-during-linker-garbage-collection/20250224-210146 > base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next > patch link: https://lore.kernel.org/r/20250224125414.2184-1-ceggers%40arri.de > patch subject: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script > config: arm-milbeaut_m10v_defconfig (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/config) > compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6) > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202503050230.820w99b6-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > >> ld.lld: error: section .vectors.bhb.bpiall virtual address range overlaps with .vectors.bhb.loop8 > >>> .vectors.bhb.bpiall range is [0xFFFF0000, 0xFFFF001F] > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > -- > >> ld.lld: error: section .vectors.bhb.loop8 virtual address range overlaps with .vectors > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > >>> .vectors range is [0xFFFF0000, 0xFFFF001F] Looking at ld.lld's code, this error is intentionally ignored for OVERLAY: https://github.com/llvm/llvm-project/blob/9f170e6abed4a7b393bb8abbf07ac8d6930aa3b0/lld/ELF/Writer.cpp#L2751-L2761 I have submitted a patch that allows KEEP within OVERLAY to match GNU ld: https://github.com/llvm/llvm-project/pull/130661 Once/if that is accepted, we should go back to your v1 with something like the following diff on top to keep things working for all linkers. I hope that it won't take long for the ld.lld change to get reviewed and landed but if this needs to be fixed urgently, this whole diff minus '|| LLD_VERSION >= 210000' on the init/Kconfig change should work (with a comment change). I can always send a follow up change to add it back. Cheers, Nathan diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 835b5f100e92..f3f6b7a33b79 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -121,7 +121,7 @@ config ARM select HAVE_KERNEL_XZ select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M select HAVE_KRETPROBES if HAVE_KPROBES - select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_IS_LLD) + select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_CAN_USE_KEEP_IN_OVERLAY) select HAVE_MOD_ARCH_SPECIFIC select HAVE_NMI select HAVE_OPTPROBES if !THUMB2_KERNEL diff --git a/arch/arm/include/asm/vmlinux.lds.h b/arch/arm/include/asm/vmlinux.lds.h index f2ff79f740ab..14811b4f48ec 100644 --- a/arch/arm/include/asm/vmlinux.lds.h +++ b/arch/arm/include/asm/vmlinux.lds.h @@ -34,6 +34,12 @@ #define NOCROSSREFS #endif +#ifdef CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY +#define OVERLAY_KEEP(x) KEEP(x) +#else +#define OVERLAY_KEEP(x) x +#endif + /* Set start/end symbol names to the LMA for the section */ #define ARM_LMA(sym, section) \ sym##_start = LOADADDR(section); \ @@ -125,13 +131,13 @@ __vectors_lma = .; \ OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \ .vectors { \ - KEEP(*(.vectors)) \ + OVERLAY_KEEP(*(.vectors)) \ } \ .vectors.bhb.loop8 { \ - KEEP(*(.vectors.bhb.loop8)) \ + OVERLAY_KEEP(*(.vectors.bhb.loop8)) \ } \ .vectors.bhb.bpiall { \ - KEEP(*(.vectors.bhb.bpiall)) \ + OVERLAY_KEEP(*(.vectors.bhb.bpiall)) \ } \ } \ ARM_LMA(__vectors, .vectors); \ diff --git a/init/Kconfig b/init/Kconfig index d0d021b3fa3b..fc994f5cd5db 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -129,6 +129,11 @@ config CC_HAS_COUNTED_BY # https://github.com/llvm/llvm-project/pull/112636 depends on !(CC_IS_CLANG && CLANG_VERSION < 190103) +config LD_CAN_USE_KEEP_IN_OVERLAY + # ld.lld prior to 21.0.0 did not support KEEP within an overlay description + # https://github.com/llvm/llvm-project/pull/130661 + def_bool LD_IS_BFD || LLD_VERSION >= 210000 + config RUSTC_HAS_COERCE_POINTEE def_bool RUSTC_VERSION >= 108400 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script 2025-03-10 20:37 ` Nathan Chancellor @ 2025-03-11 8:18 ` Christian Eggers 2025-03-11 19:17 ` Nathan Chancellor 0 siblings, 1 reply; 4+ messages in thread From: Christian Eggers @ 2025-03-11 8:18 UTC (permalink / raw) To: kernel test robot, Nathan Chancellor Cc: Russell King, Yuntao Liu, Russell King (Oracle), Arnd Bergmann, Linus Walleij, Greg Kroah-Hartman, Catalin Marinas, linux-arm-kernel, llvm, oe-kbuild-all, linux-kernel [Resending, as first message got HTML'ed by my mailer...] Hi Nathan, thanks for pushing this into the right direction. Actually I didn't recognize that lld complains about overlapping virtual address ranges, maybe the .config provided by the first LKP report (which I used for testing) didn't enable the necessary options. On Monday, 10 March 2025, 21:37:29 CET, Nathan Chancellor wrote: > On Wed, Mar 05, 2025 at 02:49:38AM +0800, kernel test robot wrote: > > Hi Christian, > > > > kernel test robot noticed the following build errors: > > > > [auto build test ERROR on soc/for-next] > > [also build test ERROR on linus/master v6.14-rc5 next-20250304] > > [If your patch is applied to the wrong git tree, kindly drop us a note. > > And when submitting patch, we suggest to use '--base' as documented in > > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Christian-Eggers/ARM-avoid-that-vectors-are-removed-during-linker-garbage-collection/20250224-210146 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next > > patch link: https://lore.kernel.org/r/20250224125414.2184-1-ceggers%40arri.de > > patch subject: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script > > config: arm-milbeaut_m10v_defconfig (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/config) > > compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6) > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/reproduce) > > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > > the same patch/commit), kindly add following tags > > | Reported-by: kernel test robot <lkp@intel.com> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202503050230.820w99b6-lkp@intel.com/ > > > > All errors (new ones prefixed by >>): > > > > >> ld.lld: error: section .vectors.bhb.bpiall virtual address range overlaps with .vectors.bhb.loop8 > > >>> .vectors.bhb.bpiall range is [0xFFFF0000, 0xFFFF001F] > > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > > -- > > >> ld.lld: error: section .vectors.bhb.loop8 virtual address range overlaps with .vectors > > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > > >>> .vectors range is [0xFFFF0000, 0xFFFF001F] > > Looking at ld.lld's code, this error is intentionally ignored for > OVERLAY: > > https://github.com/llvm/llvm-project/blob/9f170e6abed4a7b393bb8abbf07ac8d6930aa3b0/lld/ELF/Writer.cpp#L2751-L2761 > > I have submitted a patch that allows KEEP within OVERLAY to match GNU > ld: > > https://github.com/llvm/llvm-project/pull/130661 > > Once/if that is accepted, we should go back to your v1 with something > like the following diff on top to keep things working for all linkers. I > hope that it won't take long for the ld.lld change to get reviewed and > landed but if this needs to be fixed urgently, this whole diff minus > '|| LLD_VERSION >= 210000' on the init/Kconfig change should work (with > a comment change). I can always send a follow up change to add it back. I build from an internal tree, so I am not in hurry. As the Kconfig changes probably should take your Signed-Off-By, I am also fine if you do the necessary changes on my v1 and resubmit it together with your patch when it is time. > > Cheers, > Nathan > regards, Christian > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 835b5f100e92..f3f6b7a33b79 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -121,7 +121,7 @@ config ARM > select HAVE_KERNEL_XZ > select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M > select HAVE_KRETPROBES if HAVE_KPROBES > - select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_IS_LLD) > + select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_CAN_USE_KEEP_IN_OVERLAY) > select HAVE_MOD_ARCH_SPECIFIC > select HAVE_NMI > select HAVE_OPTPROBES if !THUMB2_KERNEL > diff --git a/arch/arm/include/asm/vmlinux.lds.h b/arch/arm/include/asm/vmlinux.lds.h > index f2ff79f740ab..14811b4f48ec 100644 > --- a/arch/arm/include/asm/vmlinux.lds.h > +++ b/arch/arm/include/asm/vmlinux.lds.h > @@ -34,6 +34,12 @@ > #define NOCROSSREFS > #endif > > +#ifdef CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY > +#define OVERLAY_KEEP(x) KEEP(x) > +#else > +#define OVERLAY_KEEP(x) x > +#endif > + > /* Set start/end symbol names to the LMA for the section */ > #define ARM_LMA(sym, section) \ > sym##_start = LOADADDR(section); \ > @@ -125,13 +131,13 @@ > __vectors_lma = .; \ > OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \ > .vectors { \ > - KEEP(*(.vectors)) \ > + OVERLAY_KEEP(*(.vectors)) \ > } \ > .vectors.bhb.loop8 { \ > - KEEP(*(.vectors.bhb.loop8)) \ > + OVERLAY_KEEP(*(.vectors.bhb.loop8)) \ > } \ > .vectors.bhb.bpiall { \ > - KEEP(*(.vectors.bhb.bpiall)) \ > + OVERLAY_KEEP(*(.vectors.bhb.bpiall)) \ > } \ > } \ > ARM_LMA(__vectors, .vectors); \ > diff --git a/init/Kconfig b/init/Kconfig > index d0d021b3fa3b..fc994f5cd5db 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -129,6 +129,11 @@ config CC_HAS_COUNTED_BY > # https://github.com/llvm/llvm-project/pull/112636 > depends on !(CC_IS_CLANG && CLANG_VERSION < 190103) > > +config LD_CAN_USE_KEEP_IN_OVERLAY > + # ld.lld prior to 21.0.0 did not support KEEP within an overlay description > + # https://github.com/llvm/llvm-project/pull/130661 > + def_bool LD_IS_BFD || LLD_VERSION >= 210000 > + > config RUSTC_HAS_COERCE_POINTEE > def_bool RUSTC_VERSION >= 108400 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script 2025-03-11 8:18 ` Christian Eggers @ 2025-03-11 19:17 ` Nathan Chancellor 0 siblings, 0 replies; 4+ messages in thread From: Nathan Chancellor @ 2025-03-11 19:17 UTC (permalink / raw) To: Christian Eggers Cc: kernel test robot, Russell King, Yuntao Liu, Russell King (Oracle), Arnd Bergmann, Linus Walleij, Greg Kroah-Hartman, Catalin Marinas, linux-arm-kernel, llvm, oe-kbuild-all, linux-kernel On Tue, Mar 11, 2025 at 09:18:48AM +0100, Christian Eggers wrote: > thanks for pushing this into the right direction. Actually I didn't recognize that > lld complains about overlapping virtual address ranges, maybe the .config provided > by the first LKP report (which I used for testing) didn't enable the necessary options. Right, it looks like CONFIG_HARDEN_BRANCH_HISTORY is not enabled in the first configuration (since it was a randconfig) whereas it was in the second configuration. > On Monday, 10 March 2025, 21:37:29 CET, Nathan Chancellor wrote: > > On Wed, Mar 05, 2025 at 02:49:38AM +0800, kernel test robot wrote: > > > Hi Christian, > > > > > > kernel test robot noticed the following build errors: > > > > > > [auto build test ERROR on soc/for-next] > > > [also build test ERROR on linus/master v6.14-rc5 next-20250304] > > > [If your patch is applied to the wrong git tree, kindly drop us a note. > > > And when submitting patch, we suggest to use '--base' as documented in > > > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > > > > > url: https://github.com/intel-lab-lkp/linux/commits/Christian-Eggers/ARM-avoid-that-vectors-are-removed-during-linker-garbage-collection/20250224-210146 > > > base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next > > > patch link: https://lore.kernel.org/r/20250224125414.2184-1-ceggers%40arri.de > > > patch subject: [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script > > > config: arm-milbeaut_m10v_defconfig (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/config) > > > compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 14170b16028c087ca154878f5ed93d3089a965c6) > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250305/202503050230.820w99b6-lkp@intel.com/reproduce) > > > > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > > > the same patch/commit), kindly add following tags > > > | Reported-by: kernel test robot <lkp@intel.com> > > > | Closes: https://lore.kernel.org/oe-kbuild-all/202503050230.820w99b6-lkp@intel.com/ > > > > > > All errors (new ones prefixed by >>): > > > > > > >> ld.lld: error: section .vectors.bhb.bpiall virtual address range overlaps with .vectors.bhb.loop8 > > > >>> .vectors.bhb.bpiall range is [0xFFFF0000, 0xFFFF001F] > > > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > > > -- > > > >> ld.lld: error: section .vectors.bhb.loop8 virtual address range overlaps with .vectors > > > >>> .vectors.bhb.loop8 range is [0xFFFF0000, 0xFFFF001F] > > > >>> .vectors range is [0xFFFF0000, 0xFFFF001F] > > > > Looking at ld.lld's code, this error is intentionally ignored for > > OVERLAY: > > > > https://github.com/llvm/llvm-project/blob/9f170e6abed4a7b393bb8abbf07ac8d6930aa3b0/lld/ELF/Writer.cpp#L2751-L2761 > > > > I have submitted a patch that allows KEEP within OVERLAY to match GNU > > ld: > > > > https://github.com/llvm/llvm-project/pull/130661 > > > > Once/if that is accepted, we should go back to your v1 with something > > like the following diff on top to keep things working for all linkers. I > > hope that it won't take long for the ld.lld change to get reviewed and > > landed but if this needs to be fixed urgently, this whole diff minus > > '|| LLD_VERSION >= 210000' on the init/Kconfig change should work (with > > a comment change). I can always send a follow up change to add it back. > > > I build from an internal tree, so I am not in hurry. As the Kconfig changes > probably should take your Signed-Off-By, I am also fine if you do the necessary > changes on my v1 and resubmit it together with your patch when it is time. I landed the ld.lld change a little bit ago so I will go ahead and send along my patch plus yours formally shortly. https://github.com/llvm/llvm-project/commit/381599f1fe973afad3094e55ec99b1620dba7d8c Thanks again for bringing this up. Cheers, Nathan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-11 19:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250224125414.2184-1-ceggers@arri.de>
2025-03-04 18:49 ` [PATCH v2 1/2] ARM: substitute OVERLAY description in linker script kernel test robot
2025-03-10 20:37 ` Nathan Chancellor
2025-03-11 8:18 ` Christian Eggers
2025-03-11 19:17 ` Nathan Chancellor
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox