mirror of https://github.com/torvalds/linux.git
Kbuild fixes for 6.18 #1
- Fix UAPI types check in headers_check.pl - Only enable -Werror for hostprogs with CONFIG_WERROR / W=e - Ignore fsync() error when output of gen_init_cpio is a pipe - Several little build fixes for recent modules.builtin.modinfo series Signed-off-by: Nathan Chancellor <nathan@kernel.org> -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQR74yXHMTGczQHYypIdayaRccAalgUCaOqyGgAKCRAdayaRccAa lhIaAP4owzRbZv/KnwVgXt3IDlAN7tOJQyiNbuAOTTH9IewvhAEA24zfrlav7CQl WSc0d/poWAdmQJc0T/bdQ71G69j6dgQ= =ljuS -----END PGP SIGNATURE----- Merge tag 'kbuild-fixes-6.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux Pull Kbuild fixes from Nathan Chancellor: - Fix UAPI types check in headers_check.pl - Only enable -Werror for hostprogs with CONFIG_WERROR / W=e - Ignore fsync() error when output of gen_init_cpio is a pipe - Several little build fixes for recent modules.builtin.modinfo series * tag 'kbuild-fixes-6.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux: kbuild: Use '--strip-unneeded-symbol' for removing module device table symbols s390/vmlinux.lds.S: Move .vmlinux.info to end of allocatable sections kbuild: Add '.rel.*' strip pattern for vmlinux kbuild: Restore pattern to avoid stripping .rela.dyn from vmlinux gen_init_cpio: Ignore fsync() returning EINVAL on pipes scripts/Makefile.extrawarn: Respect CONFIG_WERROR / W=e for hostprogs kbuild: uapi: Strip comments before size type check
This commit is contained in:
commit
c04022dccb
|
|
@ -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/ : {
|
||||
|
|
|
|||
|
|
@ -223,9 +223,11 @@ KBUILD_USERCFLAGS += -Werror
|
|||
KBUILD_USERLDFLAGS += -Wl,--fatal-warnings
|
||||
KBUILD_RUSTFLAGS += -Dwarnings
|
||||
|
||||
endif
|
||||
|
||||
# Hostprog flags are used during build bootstrapping and can not rely on CONFIG_ symbols.
|
||||
# While hostprog flags are used during build bootstrapping (thus should not
|
||||
# depend on CONFIG_ symbols), -Werror is disruptive and should be opted into.
|
||||
# Only apply -Werror to hostprogs built after the initial Kconfig stage.
|
||||
KBUILD_HOSTCFLAGS += -Werror
|
||||
KBUILD_HOSTLDFLAGS += -Wl,--fatal-warnings
|
||||
KBUILD_HOSTRUSTFLAGS += -Dwarnings
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -82,9 +82,12 @@ endif
|
|||
# ---------------------------------------------------------------------------
|
||||
|
||||
remove-section-y := .modinfo
|
||||
remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
|
||||
remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' '!.rel*.dyn'
|
||||
# for compatibility with binutils < 2.32
|
||||
# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c12d9fa2afe7abcbe407a00e15719e1a1350c2a7
|
||||
remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel.*'
|
||||
|
||||
remove-symbols := -w --strip-symbol='__mod_device_table__*'
|
||||
remove-symbols := -w --strip-unneeded-symbol='__mod_device_table__*'
|
||||
|
||||
# To avoid warnings: "empty loadable segment detected at ..." from GNU objcopy,
|
||||
# it is necessary to remove the PT_LOAD flag from the segment.
|
||||
|
|
|
|||
|
|
@ -112,7 +112,10 @@ static int cpio_trailer(void)
|
|||
push_pad(padlen(offset, 512)) < 0)
|
||||
return -1;
|
||||
|
||||
return fsync(outfd);
|
||||
if (fsync(outfd) < 0 && errno != EINVAL)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cpio_mkslink(const char *name, const char *target,
|
||||
|
|
|
|||
|
|
@ -155,6 +155,8 @@ sub check_sizetypes
|
|||
if (my $included = ($line =~ /^\s*#\s*include\s+[<"](\S+)[>"]/)[0]) {
|
||||
check_include_typesh($included);
|
||||
}
|
||||
# strip single-line comments, as types may be referenced within them
|
||||
$line =~ s@/\*.*?\*/@@;
|
||||
if ($line =~ m/__[us](8|16|32|64)\b/) {
|
||||
printf STDERR "$filename:$lineno: " .
|
||||
"found __[us]{8,16,32,64} type " .
|
||||
|
|
|
|||
Loading…
Reference in New Issue