linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols
@ 2025-10-06 11:25 Naresh Kamboju
  2025-10-06 17:47 ` Heiko Carstens
  0 siblings, 1 reply; 5+ messages in thread
From: Naresh Kamboju @ 2025-10-06 11:25 UTC (permalink / raw)
  To: linux-s390, open list, lkft-triage, Linux Regressions
  Cc: Arnd Bergmann, Dan Carpenter, Anders Roxell, Ben Copeland,
	Heiko Carstens, Vasily Gorbik, Alexander Gordeev

The S390 defconfig builds failed on the Linux next-20251002 tag build due
to following build warnings / errors with gcc-8 toolchain.

* S390, build
  - gcc-8-defconfig

First seen on next-20251002
Good: next-20250929
Bad: next-20251002..next-20251003

Regression Analysis:
- New regression? yes
- Reproducibility? yes

Test regression: next-20251002: S390: gcc-8-defconfig: symbol
`.modinfo' required but not present - no symbols

Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>

### Build error log
s390x-linux-gnu-ld: .tmp_vmlinux1: warning: allocated section
`.got.plt' not in segment
s390x-linux-gnu-ld: .tmp_vmlinux2: warning: allocated section
`.got.plt' not in segment
s390x-linux-gnu-ld: vmlinux.unstripped: warning: allocated section
`.got.plt' not in segment
s390x-linux-gnu-objcopy: vmlinux: warning: allocated section
`.got.plt' not in segment
s390x-linux-gnu-objcopy: stM7JmYX: warning: allocated section
`.got.plt' not in segment
s390x-linux-gnu-objcopy: stM7JmYX: symbol `.modinfo' required but not present
s390x-linux-gnu-objcopy:stM7JmYX: no symbols
make[3]: *** [scripts/Makefile.vmlinux:97: vmlinux] Error 1


## Source
* Kernel version: 6.17.0
* Git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
* Git commit: 47a8d4b89844f5974f634b4189a39d5ccbacd81c
* Architectures: S390
* Toolchains: gcc-8
* Kconfigs: defconfig

## Build
* Build log: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/build.log
* Build details:
https://regressions.linaro.org/lkft/linux-next-master/next-20251003/build/gcc-8-defconfig/
* Build plan: https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn
* Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/
* Kernel config:
https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/config


## Steps to reproduce
  tuxmake --runtime podman --target-arch s390 --toolchain gcc-8
--kconfig defconfig --kconfig-add CONFIG_DEBUG_INFO_BTF=n

--
Linaro LKFT

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols
  2025-10-06 11:25 next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols Naresh Kamboju
@ 2025-10-06 17:47 ` Heiko Carstens
  2025-10-06 23:41   ` Nathan Chancellor
  0 siblings, 1 reply; 5+ messages in thread
From: Heiko Carstens @ 2025-10-06 17:47 UTC (permalink / raw)
  To: Naresh Kamboju, Alexey Gladkov, Nathan Chancellor
  Cc: linux-s390, open list, lkft-triage, Linux Regressions,
	Arnd Bergmann, Dan Carpenter, Anders Roxell, Ben Copeland,
	Vasily Gorbik, Alexander Gordeev

[full quote below, adding Alexey and Nathan]

On Mon, Oct 06, 2025 at 04:55:56PM +0530, Naresh Kamboju wrote:
> The S390 defconfig builds failed on the Linux next-20251002 tag build due
> to following build warnings / errors with gcc-8 toolchain.
> 
> * S390, build
>   - gcc-8-defconfig
> 
> First seen on next-20251002
> Good: next-20250929
> Bad: next-20251002..next-20251003
> 
> Regression Analysis:
> - New regression? yes
> - Reproducibility? yes
> 
> Test regression: next-20251002: S390: gcc-8-defconfig: symbol
> `.modinfo' required but not present - no symbols
> 
> Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
> 
> ### Build error log
> s390x-linux-gnu-ld: .tmp_vmlinux1: warning: allocated section
> `.got.plt' not in segment
> s390x-linux-gnu-ld: .tmp_vmlinux2: warning: allocated section
> `.got.plt' not in segment
> s390x-linux-gnu-ld: vmlinux.unstripped: warning: allocated section
> `.got.plt' not in segment
> s390x-linux-gnu-objcopy: vmlinux: warning: allocated section
> `.got.plt' not in segment
> s390x-linux-gnu-objcopy: stM7JmYX: warning: allocated section
> `.got.plt' not in segment
> s390x-linux-gnu-objcopy: stM7JmYX: symbol `.modinfo' required but not present
> s390x-linux-gnu-objcopy:stM7JmYX: no symbols
> make[3]: *** [scripts/Makefile.vmlinux:97: vmlinux] Error 1
> 
> 
> ## Source
> * Kernel version: 6.17.0
> * Git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
> * Git commit: 47a8d4b89844f5974f634b4189a39d5ccbacd81c
> * Architectures: S390
> * Toolchains: gcc-8
> * Kconfigs: defconfig
> 
> ## Build
> * Build log: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/build.log
> * Build details:
> https://regressions.linaro.org/lkft/linux-next-master/next-20251003/build/gcc-8-defconfig/
> * Build plan: https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn
> * Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/
> * Kernel config:
> https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/config
> 
> 
> ## Steps to reproduce
>   tuxmake --runtime podman --target-arch s390 --toolchain gcc-8
> --kconfig defconfig --kconfig-add CONFIG_DEBUG_INFO_BTF=n

Isn't the above exactly what is supposed to be addressed with commit
8d18ef04f940 ("s390: vmlinux.lds.S: Reorder sections")? Or did something
change with the commit? Didn't check, and might look into this tomorrow,
but adding Alexey and Nathan already now :)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols
  2025-10-06 17:47 ` Heiko Carstens
@ 2025-10-06 23:41   ` Nathan Chancellor
  2025-10-08  3:18     ` Nathan Chancellor
  0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2025-10-06 23:41 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Naresh Kamboju, Alexey Gladkov, linux-s390, open list,
	lkft-triage, Linux Regressions, Arnd Bergmann, Dan Carpenter,
	Anders Roxell, Ben Copeland, Vasily Gorbik, Alexander Gordeev

Hi Heiko,

On Mon, Oct 06, 2025 at 07:47:40PM +0200, Heiko Carstens wrote:
> [full quote below, adding Alexey and Nathan]
> 
> On Mon, Oct 06, 2025 at 04:55:56PM +0530, Naresh Kamboju wrote:
> > The S390 defconfig builds failed on the Linux next-20251002 tag build due
> > to following build warnings / errors with gcc-8 toolchain.
> > 
> > * S390, build
> >   - gcc-8-defconfig
> > 
> > First seen on next-20251002
> > Good: next-20250929
> > Bad: next-20251002..next-20251003
> > 
> > Regression Analysis:
> > - New regression? yes
> > - Reproducibility? yes
> > 
> > Test regression: next-20251002: S390: gcc-8-defconfig: symbol
> > `.modinfo' required but not present - no symbols
> > 
> > Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
> > 
> > ### Build error log
> > s390x-linux-gnu-ld: .tmp_vmlinux1: warning: allocated section
> > `.got.plt' not in segment
> > s390x-linux-gnu-ld: .tmp_vmlinux2: warning: allocated section
> > `.got.plt' not in segment
> > s390x-linux-gnu-ld: vmlinux.unstripped: warning: allocated section
> > `.got.plt' not in segment
> > s390x-linux-gnu-objcopy: vmlinux: warning: allocated section
> > `.got.plt' not in segment
> > s390x-linux-gnu-objcopy: stM7JmYX: warning: allocated section
> > `.got.plt' not in segment
> > s390x-linux-gnu-objcopy: stM7JmYX: symbol `.modinfo' required but not present
> > s390x-linux-gnu-objcopy:stM7JmYX: no symbols
> > make[3]: *** [scripts/Makefile.vmlinux:97: vmlinux] Error 1
> > 
> > 
> > ## Source
> > * Kernel version: 6.17.0
> > * Git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next.git
> > * Git commit: 47a8d4b89844f5974f634b4189a39d5ccbacd81c
> > * Architectures: S390
> > * Toolchains: gcc-8
> > * Kconfigs: defconfig
> > 
> > ## Build
> > * Build log: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/build.log
> > * Build details:
> > https://regressions.linaro.org/lkft/linux-next-master/next-20251003/build/gcc-8-defconfig/
> > * Build plan: https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn
> > * Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/
> > * Kernel config:
> > https://storage.tuxsuite.com/public/linaro/lkft/builds/33YUHdDpSLSMJfU4MFvRyEUQuDn/config
> > 
> > 
> > ## Steps to reproduce
> >   tuxmake --runtime podman --target-arch s390 --toolchain gcc-8
> > --kconfig defconfig --kconfig-add CONFIG_DEBUG_INFO_BTF=n
> 
> Isn't the above exactly what is supposed to be addressed with commit
> 8d18ef04f940 ("s390: vmlinux.lds.S: Reorder sections")? Or did something
> change with the commit? Didn't check, and might look into this tomorrow,
> but adding Alexey and Nathan already now :)

I did not change anything with that change before applying it so I would
have expected this issue to be avoided...

I can reproduce this issue with the tuxmake command above on
next-20251006 but I am not able to reproduce it with korg-gcc-8, so I
wonder if this is something toolchain specific? I will have a further
look tomorrow but if you or Alexey beat me to it, feel free to share
follow up findings.

Cheers,
Nathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols
  2025-10-06 23:41   ` Nathan Chancellor
@ 2025-10-08  3:18     ` Nathan Chancellor
  2025-10-08 11:33       ` Heiko Carstens
  0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2025-10-08  3:18 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Naresh Kamboju, Alexey Gladkov, linux-s390, open list,
	lkft-triage, Linux Regressions, Arnd Bergmann, Dan Carpenter,
	Anders Roxell, Ben Copeland, Vasily Gorbik, Alexander Gordeev

On Mon, Oct 06, 2025 at 04:41:19PM -0700, Nathan Chancellor wrote:
...
> > > ### Build error log
> > > s390x-linux-gnu-ld: .tmp_vmlinux1: warning: allocated section `.got.plt' not in segment
> > > s390x-linux-gnu-ld: .tmp_vmlinux2: warning: allocated section `.got.plt' not in segment
> > > s390x-linux-gnu-ld: vmlinux.unstripped: warning: allocated section `.got.plt' not in segment
> > > s390x-linux-gnu-objcopy: vmlinux: warning: allocated section `.got.plt' not in segment
> > > s390x-linux-gnu-objcopy: stM7JmYX: warning: allocated section `.got.plt' not in segment

So these warnings should be fixed with:

diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index feecf1a6ddb4..d74d4c52ccd0 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -214,6 +214,28 @@ SECTIONS
 	DWARF_DEBUG
 	ELF_DETAILS
 
+	/*
+	 * Make sure that the .got.plt is either completely empty or it
+	 * contains only the three reserved double words.
+	 */
+	.got.plt : {
+		*(.got.plt)
+	}
+	ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT entries detected!")
+
+	/*
+	 * Sections that should stay zero sized, which is safer to
+	 * explicitly check instead of blindly discarding.
+	 */
+	.plt : {
+		*(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt)
+	}
+	ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
+	.rela.dyn : {
+		*(.rela.*) *(.rela_*)
+	}
+	ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
+
 	/*
 	 * uncompressed image info used by the decompressor
 	 * it should match struct vmlinux_info
@@ -244,28 +266,6 @@ SECTIONS
 #endif
 	} :NONE
 
-	/*
-	 * Make sure that the .got.plt is either completely empty or it
-	 * contains only the three reserved double words.
-	 */
-	.got.plt : {
-		*(.got.plt)
-	}
-	ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT entries detected!")
-
-	/*
-	 * Sections that should stay zero sized, which is safer to
-	 * explicitly check instead of blindly discarding.
-	 */
-	.plt : {
-		*(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt)
-	}
-	ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!")
-	.rela.dyn : {
-		*(.rela.*) *(.rela_*)
-	}
-	ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!")
-
 	/* Sections to be discarded */
 	DISCARDS
 	/DISCARD/ : {

I am unsure why newer binutils does not show this but I did not care
enough to actually bisect.

> > > s390x-linux-gnu-objcopy: stM7JmYX: symbol `.modinfo' required but not present
> > > s390x-linux-gnu-objcopy:stM7JmYX: no symbols

I did bisect binutils to figure out that commit c12d9fa2afe ("Support
objcopy --remove-section=.relaFOO") [1] in binutils 2.32 resolves this
error.

I can fix this for those older binutils with:

diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
index 7c6ae9886f8f..9ea92c3317dc 100644
--- a/scripts/Makefile.vmlinux
+++ b/scripts/Makefile.vmlinux
@@ -82,7 +82,7 @@ endif
 # ---------------------------------------------------------------------------
 
 remove-section-y                                   := .modinfo
-remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
+remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' '.rel.*'
 
 remove-symbols := -w --strip-symbol='__mod_device_table__*'
 

I can send a patch series tomorrow.

[1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c12d9fa2afe7abcbe407a00e15719e1a1350c2a7

Cheers,
Nathan

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols
  2025-10-08  3:18     ` Nathan Chancellor
@ 2025-10-08 11:33       ` Heiko Carstens
  0 siblings, 0 replies; 5+ messages in thread
From: Heiko Carstens @ 2025-10-08 11:33 UTC (permalink / raw)
  To: Nathan Chancellor
  Cc: Naresh Kamboju, Alexey Gladkov, linux-s390, open list,
	lkft-triage, Linux Regressions, Arnd Bergmann, Dan Carpenter,
	Anders Roxell, Ben Copeland, Vasily Gorbik, Alexander Gordeev

Hi Nathan,

On Tue, Oct 07, 2025 at 08:18:49PM -0700, Nathan Chancellor wrote:
> On Mon, Oct 06, 2025 at 04:41:19PM -0700, Nathan Chancellor wrote:
> ...
> > > > ### Build error log
> > > > s390x-linux-gnu-ld: .tmp_vmlinux1: warning: allocated section `.got.plt' not in segment
> > > > s390x-linux-gnu-ld: .tmp_vmlinux2: warning: allocated section `.got.plt' not in segment
> > > > s390x-linux-gnu-ld: vmlinux.unstripped: warning: allocated section `.got.plt' not in segment
> > > > s390x-linux-gnu-objcopy: vmlinux: warning: allocated section `.got.plt' not in segment
> > > > s390x-linux-gnu-objcopy: stM7JmYX: warning: allocated section `.got.plt' not in segment
> 
> So these warnings should be fixed with:

...

> I am unsure why newer binutils does not show this but I did not care
> enough to actually bisect.
> 
> > > > s390x-linux-gnu-objcopy: stM7JmYX: symbol `.modinfo' required but not present
> > > > s390x-linux-gnu-objcopy:stM7JmYX: no symbols
> 
> I did bisect binutils to figure out that commit c12d9fa2afe ("Support
> objcopy --remove-section=.relaFOO") [1] in binutils 2.32 resolves this
> error.
> 
> I can fix this for those older binutils with:
> 
> diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> index 7c6ae9886f8f..9ea92c3317dc 100644
> --- a/scripts/Makefile.vmlinux
> +++ b/scripts/Makefile.vmlinux
> @@ -82,7 +82,7 @@ endif
>  # ---------------------------------------------------------------------------
>  
>  remove-section-y                                   := .modinfo
> -remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
> +remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' '.rel.*'
>  
>  remove-symbols := -w --strip-symbol='__mod_device_table__*'
> 
> I can send a patch series tomorrow.

Thank you for figuring this out. Highly appreciated!

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-10-08 11:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-06 11:25 next-20251002: S390: gcc-8-defconfig: symbol `.modinfo' required but not present - no symbols Naresh Kamboju
2025-10-06 17:47 ` Heiko Carstens
2025-10-06 23:41   ` Nathan Chancellor
2025-10-08  3:18     ` Nathan Chancellor
2025-10-08 11:33       ` Heiko Carstens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).