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
|
DWARF_DEBUG
|
||||||
ELF_DETAILS
|
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
|
* uncompressed image info used by the decompressor
|
||||||
* it should match struct vmlinux_info
|
* it should match struct vmlinux_info
|
||||||
|
|
@ -244,28 +266,6 @@ SECTIONS
|
||||||
#endif
|
#endif
|
||||||
} :NONE
|
} :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 */
|
/* Sections to be discarded */
|
||||||
DISCARDS
|
DISCARDS
|
||||||
/DISCARD/ : {
|
/DISCARD/ : {
|
||||||
|
|
|
||||||
|
|
@ -223,9 +223,11 @@ KBUILD_USERCFLAGS += -Werror
|
||||||
KBUILD_USERLDFLAGS += -Wl,--fatal-warnings
|
KBUILD_USERLDFLAGS += -Wl,--fatal-warnings
|
||||||
KBUILD_RUSTFLAGS += -Dwarnings
|
KBUILD_RUSTFLAGS += -Dwarnings
|
||||||
|
|
||||||
endif
|
# While hostprog flags are used during build bootstrapping (thus should not
|
||||||
|
# depend on CONFIG_ symbols), -Werror is disruptive and should be opted into.
|
||||||
# Hostprog flags are used during build bootstrapping and can not rely on CONFIG_ symbols.
|
# Only apply -Werror to hostprogs built after the initial Kconfig stage.
|
||||||
KBUILD_HOSTCFLAGS += -Werror
|
KBUILD_HOSTCFLAGS += -Werror
|
||||||
KBUILD_HOSTLDFLAGS += -Wl,--fatal-warnings
|
KBUILD_HOSTLDFLAGS += -Wl,--fatal-warnings
|
||||||
KBUILD_HOSTRUSTFLAGS += -Dwarnings
|
KBUILD_HOSTRUSTFLAGS += -Dwarnings
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
|
||||||
|
|
@ -82,9 +82,12 @@ endif
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
remove-section-y := .modinfo
|
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,
|
# To avoid warnings: "empty loadable segment detected at ..." from GNU objcopy,
|
||||||
# it is necessary to remove the PT_LOAD flag from the segment.
|
# 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)
|
push_pad(padlen(offset, 512)) < 0)
|
||||||
return -1;
|
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,
|
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]) {
|
if (my $included = ($line =~ /^\s*#\s*include\s+[<"](\S+)[>"]/)[0]) {
|
||||||
check_include_typesh($included);
|
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/) {
|
if ($line =~ m/__[us](8|16|32|64)\b/) {
|
||||||
printf STDERR "$filename:$lineno: " .
|
printf STDERR "$filename:$lineno: " .
|
||||||
"found __[us]{8,16,32,64} type " .
|
"found __[us]{8,16,32,64} type " .
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue