Release linux (4.17.6-2).

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEErCspvTSmr92z9o8157/I7JWGEQkFAltL4ZwACgkQ57/I7JWG
 EQniUw//V7Vhq6IQ5FKEg+UHcI8b12GhOVWWVJoReQErFllaIkSOJax6GDXo9UYa
 EQ+xezR902ze99eetQfqJFqNm/fu9qi9Lc/Na3dIztFTkbonQmOOF5y5uM129wBi
 l8WKrcnGY175yuN2aQDgRZtZgMWvNy7pbreDX3i5WliOKiOYbG7ZaJvdSEQ12CjJ
 lnVctItwOhDqgXGoW8nW7YxC3Awi25Rk2dZNQNSVfa3Lq9DAA1HXsNVM7/jdMzv8
 OVE32Srq2LsWqt+dK0sARKCucVXZRDTWEjie32ZxyAISUYkuzxmLOpmfYXS+CVtj
 7gIe6nBPX1mnXSHh1CvFGJrHRDfKAtq7gfHoBSg255quuBYY9btCneVV/ebCuFR3
 OSmupwF74Kt6QMhDpe322SFQD/40gH2OEATRzgzNjaJFnWwDTx78EZIu7/SHul9g
 k6YKRyK03bGgfeTeEzsVwXUj71Fh8oF22kk1ViYpDMSEKu3xOB71poDwGmP+e11U
 rH3IV+F5ECzfiekNsbehPabG7dyY/t1TIGBmu+7rnK75EDCQzFfOI0MXEJCJG5X2
 c6QUBXcz8ygvR7Zec9kw4YeBRuDvUv4sXf8516kMc2dSwf7JY+BYyy+9Knb9Gy67
 K/Tw/4keQIgzjg52g9GxqVqI4N/DknWoe1FT3xU4uuLIgYkEilA=
 =JUfi
 -----END PGP SIGNATURE-----

Merge tag 'debian/4.17.6-2'

Release linux (4.17.6-2).

- Drop the ABI maintenance patch
- Resolve conflict between changes to config file generation in sid
  (delete CONFIG_BUILD_SALT) and master (putting them in
  arch-dependent packages)
This commit is contained in:
Ben Hutchings 2018-07-16 01:44:06 +01:00
commit 16bdbaf76f
13 changed files with 279 additions and 33 deletions

24
debian/changelog vendored
View File

@ -50,6 +50,30 @@ linux (4.18~rc3-1~exp1) experimental; urgency=medium
-- Ben Hutchings <ben@decadent.org.uk> Tue, 03 Jul 2018 17:26:05 +0100
linux (4.17.6-2) unstable; urgency=medium
[ Ben Hutchings ]
* [armhf] drm/sun4i: Ignore ABI changes (fixes FTBFS)
* debian/control: Fix arch/profile qualifications for libelf-dev
build-dependency
* debian/rules.real: Pass KERNEL_ARCH variable down to debian/rules.d
* debian/rules.d/tools/perf/Makefile: Use KERNEL_ARCH variable
* linux-kbuild: Fix the assumed host architecture for cross-built objtool
* [ppc64] linux-bootwrapper: Work around compiler include path quirk
(fixes FTBFS)
* Fix file conflicts between debug packages where a vDSO is identical
(Closes: #872263):
- kbuild: Add build salt to the kernel and modules
- [arm64,powerpc,x86] Add build salt to the vDSO
- Set BUILD_SALT equal to the release string
* init: Avoid ABI change for build salt
[ Vagrant Cascadian ]
* [riscv64] Build linux-libc-dev (Closes: #886440).
Thanks to Manuel A. Fernandez Montecelo.
-- Ben Hutchings <ben@decadent.org.uk> Sun, 15 Jul 2018 23:45:56 +0100
linux (4.17.6-1) unstable; urgency=medium
* New upstream stable update:

View File

@ -22,6 +22,7 @@ ignore-changes:
module:arch/x86/kvm/*
module:drivers/crypto/ccp/*
module:drivers/hv/*
module:drivers/gpu/drm/sun4i/*
module:drivers/iio/**
module:drivers/misc/cxl/*
module:drivers/mtd/nand/*
@ -96,6 +97,7 @@ arches:
powerpcspe
ppc64
ppc64el
riscv64
s390
s390x
sh3

4
debian/config/riscv64/defines vendored Normal file
View File

@ -0,0 +1,4 @@
[base]
kernel-arch: riscv
featuresets:
# empty; just building headers yet

View File

@ -0,0 +1,105 @@
From: Laura Abbott <labbott@redhat.com>
Date: Thu, 5 Jul 2018 17:49:37 -0700
Subject: kbuild: Add build salt to the kernel and modules
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit?id=8bc0ab58aca8a96fed7e9a38e21025d1737f4a4f
Bug-Debian: https://bugs.debian.org/872263
In Fedora, the debug information is packaged separately (foo-debuginfo) and
can be installed separately. There's been a long standing issue where only
one version of a debuginfo info package can be installed at a time. There's
been an effort for Fedora for parallel debuginfo to rectify this problem.
Part of the requirement to allow parallel debuginfo to work is that build ids
are unique between builds. The existing upstream rpm implementation ensures
this by re-calculating the build-id using the version and release as a
seed. This doesn't work 100% for the kernel because of the vDSO which is
its own binary and doesn't get updated when embedded.
Fix this by adding some data in an ELF note for both the kernel and modules.
The data is controlled via a Kconfig option so distributions can set it
to an appropriate value to ensure uniqueness between builds.
Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
include/linux/build-salt.h | 20 ++++++++++++++++++++
init/Kconfig | 9 +++++++++
init/version.c | 3 +++
scripts/mod/modpost.c | 3 +++
4 files changed, 35 insertions(+)
create mode 100644 include/linux/build-salt.h
--- /dev/null
+++ b/include/linux/build-salt.h
@@ -0,0 +1,20 @@
+#ifndef __BUILD_SALT_H
+#define __BUILD_SALT_H
+
+#include <linux/elfnote.h>
+
+#define LINUX_ELFNOTE_BUILD_SALT 0x100
+
+#ifdef __ASSEMBLER__
+
+#define BUILD_SALT \
+ ELFNOTE(Linux, LINUX_ELFNOTE_BUILD_SALT, .asciz CONFIG_BUILD_SALT)
+
+#else
+
+#define BUILD_SALT \
+ ELFNOTE32("Linux", LINUX_ELFNOTE_BUILD_SALT, CONFIG_BUILD_SALT)
+
+#endif
+
+#endif /* __BUILD_SALT_H */
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -109,6 +109,15 @@ config LOCALVERSION_AUTO
which is done within the script "scripts/setlocalversion".)
+config BUILD_SALT
+ string "Build ID Salt"
+ default ""
+ help
+ The build ID is used to link binaries and their debug info. Setting
+ this option will use the value in the calculation of the build id.
+ This is mostly useful for distributions which want to ensure the
+ build is unique between builds. It's safe to leave the default.
+
config HAVE_KERNEL_GZIP
bool
--- a/init/version.c
+++ b/init/version.c
@@ -7,6 +7,7 @@
*/
#include <generated/compile.h>
+#include <linux/build-salt.h>
#include <linux/export.h>
#include <linux/uts.h>
#include <linux/utsname.h>
@@ -49,3 +50,5 @@ const char linux_proc_banner[] =
"%s version %s"
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
" (" LINUX_COMPILER ") %s\n";
+
+BUILD_SALT;
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -2137,10 +2137,13 @@ static int check_modname_len(struct modu
**/
static void add_header(struct buffer *b, struct module *mod)
{
+ buf_printf(b, "#include <linux/build-salt.h>\n");
buf_printf(b, "#include <linux/module.h>\n");
buf_printf(b, "#include <linux/vermagic.h>\n");
buf_printf(b, "#include <linux/compiler.h>\n");
buf_printf(b, "\n");
+ buf_printf(b, "BUILD_SALT;\n");
+ buf_printf(b, "\n");
buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n");
buf_printf(b, "\n");

View File

@ -0,0 +1,29 @@
From: Laura Abbott <labbott@redhat.com>
Date: Thu, 5 Jul 2018 17:49:40 -0700
Subject: arm64: Add build salt to the vDSO
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit?id=13351cdf75405e38c1b7bb927624d910d328be2b
Bug-Debian: https://bugs.debian.org/872263
The vDSO needs to have a unique build id in a similar manner
to the kernel and modules. Use the build salt macro.
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/arm64/kernel/vdso/note.S | 3 +++
1 file changed, 3 insertions(+)
--- a/arch/arm64/kernel/vdso/note.S
+++ b/arch/arm64/kernel/vdso/note.S
@@ -22,7 +22,10 @@
#include <linux/uts.h>
#include <linux/version.h>
#include <linux/elfnote.h>
+#include <linux/build-salt.h>
ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
ELFNOTE_END
+
+BUILD_SALT

View File

@ -0,0 +1,31 @@
From: Laura Abbott <labbott@redhat.com>
Date: Thu, 5 Jul 2018 17:49:39 -0700
Subject: powerpc: Add build salt to the vDSO
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit?id=29f07b97416a95d28ee62e70fd91b44956d3c8ce
Bug-Debian: https://bugs.debian.org/872263
The vDSO needs to have a unique build id in a similar manner
to the kernel and modules. Use the build salt macro.
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/powerpc/kernel/vdso32/note.S | 3 +++
1 file changed, 3 insertions(+)
--- a/arch/powerpc/kernel/vdso32/note.S
+++ b/arch/powerpc/kernel/vdso32/note.S
@@ -5,6 +5,7 @@
#include <linux/uts.h>
#include <linux/version.h>
+#include <linux/build-salt.h>
#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
.section name, flags; \
@@ -23,3 +24,5 @@
ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
.long LINUX_VERSION_CODE
ASM_ELF_NOTE_END
+
+BUILD_SALT

View File

@ -0,0 +1,52 @@
From: Laura Abbott <labbott@redhat.com>
Date: Thu, 5 Jul 2018 17:49:38 -0700
Subject: x86: Add build salt to the vDSO
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit?id=fdc3ae38182c7f983f4f8b97c86b753a3c16e269
Bug-Debian: https://bugs.debian.org/872263
The vDSO needs to have a unique build id in a similar manner
to the kernel and modules. Use the build salt macro.
Acked-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
arch/x86/entry/vdso/vdso-note.S | 3 +++
arch/x86/entry/vdso/vdso32/note.S | 3 +++
2 files changed, 6 insertions(+)
--- a/arch/x86/entry/vdso/vdso-note.S
+++ b/arch/x86/entry/vdso/vdso-note.S
@@ -3,6 +3,7 @@
* Here we can supply some information useful to userland.
*/
+#include <linux/build-salt.h>
#include <linux/uts.h>
#include <linux/version.h>
#include <linux/elfnote.h>
@@ -10,3 +11,5 @@
ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
ELFNOTE_END
+
+BUILD_SALT
--- a/arch/x86/entry/vdso/vdso32/note.S
+++ b/arch/x86/entry/vdso/vdso32/note.S
@@ -4,6 +4,7 @@
* Here we can supply some information useful to userland.
*/
+#include <linux/build-salt.h>
#include <linux/version.h>
#include <linux/elfnote.h>
@@ -14,6 +15,8 @@ ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
ELFNOTE_END
+BUILD_SALT
+
#ifdef CONFIG_XEN
/*
* Add a special note telling glibc's dynamic linker a fake hardware

View File

@ -93,6 +93,10 @@ bugfix/all/i40e-build-for-64-bit-targets-only.patch
bugfix/all/netfilter-ipvs-Fix-invalid-bytes-in-IP_VS_MH_TAB_IND.patch
# Miscellaneous features
features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch
features/x86/x86-add-build-salt-to-the-vdso.patch
features/powerpc/powerpc-add-build-salt-to-the-vdso.patch
features/arm64/arm64-add-build-salt-to-the-vdso.patch
# Lockdown (formerly 'securelevel') patchset
features/all/lockdown/0001-Add-the-ability-to-lock-down-access-to-the-running-k.patch

View File

@ -9,3 +9,10 @@ SCRIPTS = \
include $(top_rulesdir)/Makefile.inc
CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
# gcc for ppc64 currently seems to be treating -I like -isystem, and
# since arch/powerpc/boot has substitute versions of some standard
# headers for use at boot time, they are also included in these tools.
# In this case there is actually no need to use the -I option, so
# filter it out.
CPPFLAGS := $(filter-out -I%,$(CPPFLAGS))

View File

@ -5,7 +5,7 @@ all:
# for multiple targets and add a wrapper, same as for modpost.
# objtool explicitly sets CC and LD to be native tools; we need to override
# this on the command line to make cross-builds work.
$(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) ARCH=x86 CC=$(CC) LD=$(CROSS_COMPILE)ld
$(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) HOSTARCH=$(KERNEL_ARCH) ARCH=x86 CC=$(CC) LD=$(CROSS_COMPILE)ld
install:
install -D -m755 objtool $(DESTDIR)/$(installdir)/objtool

View File

@ -2,37 +2,21 @@ include $(top_rulesdir)/Makefile.inc
ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),)
DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
ifeq ($(DEB_HOST_ARCH_CPU),alpha)
KERNEL_ARCH_PERF = alpha
else ifeq ($(DEB_HOST_ARCH_CPU),arm)
KERNEL_ARCH_PERF = arm
else ifeq ($(DEB_HOST_ARCH_CPU),arm64)
KERNEL_ARCH_PERF = arm64
else ifneq ($(filter mips%,$(DEB_HOST_ARCH_CPU)),)
KERNEL_ARCH_PERF = mips
else ifeq ($(DEB_HOST_ARCH_CPU),hppa)
KERNEL_ARCH_PERF = parisc
else ifneq ($(filter powerpc% ppc%,$(DEB_HOST_ARCH_CPU)),)
# But pure 32-bit toolchains currently don't work
ifneq ($(filter alpha arm arm64 mips parisc s390 sh sparc,$(KERNEL_ARCH)),)
HAVE_PERF := 1
else ifeq ($(KERNEL_ARCH),powerpc)
# Pure 32-bit toolchains currently don't work
ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),powerpcspe)
KERNEL_ARCH_PERF = powerpc
HAVE_PERF := 1
endif
else ifneq ($(filter s390%,$(DEB_HOST_ARCH_CPU)),)
KERNEL_ARCH_PERF = s390
else ifeq ($(DEB_HOST_ARCH_CPU),sh4)
KERNEL_ARCH_PERF = sh
else ifneq ($(filter sparc%,$(DEB_HOST_ARCH_CPU)),)
KERNEL_ARCH_PERF = sparc
else ifneq ($(filter amd64 i386,$(DEB_HOST_ARCH_CPU)),)
# But x32 isn't supported yet
else ifeq ($(KERNEL_ARCH),x86)
# x32 isn't supported yet
ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),x32)
KERNEL_ARCH_PERF = x86
HAVE_PERF := 1
endif
endif
MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 ARCH=$(KERNEL_ARCH_PERF) EXTRA_WARNINGS=-Wno-error EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 ARCH=$(KERNEL_ARCH) EXTRA_WARNINGS=-Wno-error EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
# Disable Gtk UI until it's more usable
MAKE_PERF += NO_GTK2=1
@ -61,7 +45,7 @@ MAKE_PERF += USE_ASCIIDOCTOR=1
MAKE_PERF += PYTHON=/usr/bin/python3
all:
ifdef KERNEL_ARCH_PERF
ifdef HAVE_PERF
# perf changes some default directories depending on whether DESTDIR is
# set. We must define it even when building to avoid a rebuild when we
# run 'make install'.
@ -77,7 +61,7 @@ endif
endif
install:
ifdef KERNEL_ARCH_PERF
ifdef HAVE_PERF
+$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf install VERSION=$(VERSION)
# Don't install a 'trace' alias yet:
# - We need a wrapper for it anyway, so there's little point adding a

9
debian/rules.real vendored
View File

@ -175,6 +175,8 @@ $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(FEA
rm -rf '$(DIR)'
mkdir '$(DIR)'
cp '$(CONFIG)' '$(DIR)/.config'
# Add "salt" to fix #872263
echo 'CONFIG_BUILD_SALT="$(ABINAME)$(LOCALVERSION_IMAGE)"' >> '$(DIR)/.config'
echo 'override ARCH = $(KERNEL_ARCH)' >> '$(DIR)/.kernelvariables'
echo 'override KERNELRELEASE = $(ABINAME)$(LOCALVERSION_IMAGE)' >> '$(DIR)/.kernelvariables'
echo 'CCACHE = ccache' >> '$(DIR)/.kernelvariables'
@ -587,14 +589,15 @@ install-config_$(ARCH):
dh_testdir
dh_testroot
dh_installdirs /usr/src/linux-config-$(UPSTREAMVERSION)
# Fix the module signing configuration to work for custom kernels
# Fix the module signing configuration to work for custom kernels. Also delete
# CONFIG_BUILD_SALT which makes no sense for custom kernels.
for triplet in $(TRIPLETS); do \
sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\)[ =]/d' $(BUILD_DIR)/build_$$triplet/.config | xz -c >debian/$(PACKAGE_NAME)/usr/src/linux-config-$(UPSTREAMVERSION)/config.$$triplet.xz; \
sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\|BUILD_SALT\)[ =]/d' $(BUILD_DIR)/build_$$triplet/.config | xz -c >debian/$(PACKAGE_NAME)/usr/src/linux-config-$(UPSTREAMVERSION)/config.$$triplet.xz; \
done
+$(MAKE_SELF) install-base
define make-tools
+mkdir -p $(BUILD_DIR)/build-tools/$(1) && $(MAKE_CLEAN) -C $(BUILD_DIR)/build-tools/$(1) -f $(CURDIR)/debian/rules.d/$(1)/Makefile top_srcdir=$(CURDIR) top_rulesdir=$(CURDIR)/debian/rules.d OUTDIR=$(1) VERSION=$(VERSION)
+mkdir -p $(BUILD_DIR)/build-tools/$(1) && $(MAKE_CLEAN) -C $(BUILD_DIR)/build-tools/$(1) -f $(CURDIR)/debian/rules.d/$(1)/Makefile top_srcdir=$(CURDIR) top_rulesdir=$(CURDIR)/debian/rules.d OUTDIR=$(1) VERSION=$(VERSION) KERNEL_ARCH=$(KERNEL_ARCH)
endef
$(STAMPS_DIR)/build-tools:

View File

@ -27,6 +27,9 @@ Build-Depends-Arch:
# used by upstream to build signing tools and to process certificates
libssl-dev:native <!stage1>, libssl-dev <!stage1 !pkg.linux.notools cross>,
openssl (>= 1.1.0-1~) <!stage1>,
# used by upstream to build objtool (native for amd64 images; host arch for
# linux-kbuild) and perf (host arch)
libelf-dev:native [amd64] <!stage1>, libelf-dev <!stage1 !pkg.linux.notools>,
# used by upstream to build perf documentation
asciidoctor <!stage1 !nodoc !pkg.linux.notools>,
# used by upstream to build perf
@ -36,8 +39,6 @@ Build-Depends-Arch:
# - libbabeltrace-ctf-dev may or may not be needed as well
libbabeltrace-dev (>= 1.5.3-2~) <!stage1 !pkg.linux.notools !nopython> | libbabeltrace-ctf-dev (>= 1.5.0) <!stage1 !pkg.linux.notools !nopython>,
libdw-dev <!stage1 !pkg.linux.notools !nopython>,
# needed for objtool with CONFIG_STACK_VALIDATION=y and CONFIG_UNWINDER_ORC=y
libelf-dev <!stage1>,
libiberty-dev <!stage1 !pkg.linux.notools !nopython>,
libnewt-dev <!stage1 !pkg.linux.notools !nopython>,
libnuma-dev [amd64 arm64 hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc powerpcspe ppc64 ppc64el sparc x32] <!stage1 !pkg.linux.notools !nopython>,