s390/vmlinux.lds.S: Move .vmlinux.info to end of allocatable sections

When building s390 defconfig with binutils older than 2.32, there are
several warnings during the final linking stage:

s390-linux-ld: .tmp_vmlinux1: warning: allocated section `.got.plt' not in segment
s390-linux-ld: .tmp_vmlinux2: warning: allocated section `.got.plt' not in segment
s390-linux-ld: vmlinux.unstripped: warning: allocated section `.got.plt' not in segment
s390-linux-objcopy: vmlinux: warning: allocated section `.got.plt' not in segment
s390-linux-objcopy: st7afZyb: warning: allocated section `.got.plt' not in segment

binutils commit afca762f598 ("S/390: Improve partial relro support for
64 bit") [1] in 2.32 changed where .got.plt is emitted, avoiding the
warning.

The :NONE in the .vmlinux.info output section description changes the
segment for subsequent allocated sections. Move .vmlinux.info right
above the discards section to place all other sections in the previously
defined segment, .data.

Fixes: 30226853d6ec ("s390: vmlinux.lds.S: explicitly handle '.got' and '.plt' sections")
Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=afca762f598d453c563f244cd3777715b1a0cb72 [1]
Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Acked-by: Alexey Gladkov <legion@kernel.org>
Acked-by: Nicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20251008-kbuild-fix-modinfo-regressions-v1-3-9fc776c5887c@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>

+22 -22
+22 -22
arch/s390/kernel/vmlinux.lds.S
··· 215 215 ELF_DETAILS 216 216 217 217 /* 218 + * Make sure that the .got.plt is either completely empty or it 219 + * contains only the three reserved double words. 220 + */ 221 + .got.plt : { 222 + *(.got.plt) 223 + } 224 + ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT entries detected!") 225 + 226 + /* 227 + * Sections that should stay zero sized, which is safer to 228 + * explicitly check instead of blindly discarding. 229 + */ 230 + .plt : { 231 + *(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt) 232 + } 233 + ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!") 234 + .rela.dyn : { 235 + *(.rela.*) *(.rela_*) 236 + } 237 + ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!") 238 + 239 + /* 218 240 * uncompressed image info used by the decompressor 219 241 * it should match struct vmlinux_info 220 242 */ ··· 265 243 QUAD(kasan_early_shadow_p4d) 266 244 #endif 267 245 } :NONE 268 - 269 - /* 270 - * Make sure that the .got.plt is either completely empty or it 271 - * contains only the three reserved double words. 272 - */ 273 - .got.plt : { 274 - *(.got.plt) 275 - } 276 - ASSERT(SIZEOF(.got.plt) == 0 || SIZEOF(.got.plt) == 0x18, "Unexpected GOT/PLT entries detected!") 277 - 278 - /* 279 - * Sections that should stay zero sized, which is safer to 280 - * explicitly check instead of blindly discarding. 281 - */ 282 - .plt : { 283 - *(.plt) *(.plt.*) *(.iplt) *(.igot .igot.plt) 284 - } 285 - ASSERT(SIZEOF(.plt) == 0, "Unexpected run-time procedure linkages detected!") 286 - .rela.dyn : { 287 - *(.rela.*) *(.rela_*) 288 - } 289 - ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations (.rela) detected!") 290 246 291 247 /* Sections to be discarded */ 292 248 DISCARDS