Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package user-mode-linux Dear Release Team, This is a request to unblock the package. The latest upload fixes bug 989665. [ Reason ] Bug 989665 occurred, as expected, because of the resolution put in bug 983379. Since it wasn't clear back then, if and whether the fix would be a Linux Stable material, we carried a patch in User Mode Linux in the interim. Now that the fix made into Linux Stable series, the fix for 989665 is to drop that patch. [ Impact ] Package user-mode-linux in Bullseye will not be in a buildable state without this fix. [ Tests ] The fix allows the package to build again. Right now, for Unstable, it has built proper for both the supported architectures (i386 and amd64) [ Risks ] None to my knowledge [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock user-mode-linux/5.10um3
diff -Nru user-mode-linux-5.10um2/config.amd64 user-mode-linux-5.10um3/config.amd64 --- user-mode-linux-5.10um2/config.amd64 2021-03-07 10:01:29.000000000 +0530 +++ user-mode-linux-5.10um3/config.amd64 2021-06-11 11:43:23.000000000 +0530 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/um 5.10.19 Kernel Configuration +# Linux/um 5.10.40 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110" CONFIG_CC_IS_GCC=y @@ -1771,6 +1771,7 @@ # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y @@ -1915,7 +1916,6 @@ # CONFIG_AD7091R5 is not set # CONFIG_AD7291 is not set # CONFIG_AD799X is not set -# CONFIG_ADI_AXI_ADC is not set # CONFIG_INA2XX_ADC is not set # CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set @@ -3095,7 +3095,6 @@ # um Debugging # # CONFIG_GPROF is not set -# CONFIG_GCOV is not set CONFIG_EARLY_PRINTK=y # end of um Debugging diff -Nru user-mode-linux-5.10um2/config.i386 user-mode-linux-5.10um3/config.i386 --- user-mode-linux-5.10um2/config.i386 2021-03-07 10:01:29.000000000 +0530 +++ user-mode-linux-5.10um3/config.i386 2021-06-11 11:43:23.000000000 +0530 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/um 5.10.19 Kernel Configuration +# Linux/um 5.10.40 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110" CONFIG_CC_IS_GCC=y @@ -8,6 +8,8 @@ CONFIG_LD_VERSION=235020000 CONFIG_CLANG_VERSION=0 CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_IRQ_WORK=y @@ -162,6 +164,7 @@ # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y +CONFIG_USERMODE_DRIVER=y # CONFIG_BPF_PRELOAD is not set CONFIG_USERFAULTFD=y # CONFIG_EMBEDDED is not set @@ -244,7 +247,7 @@ CONFIG_UML_X86=y # CONFIG_64BIT is not set CONFIG_X86_32=y -# CONFIG_3_LEVEL_PGTABLES is not set +CONFIG_3_LEVEL_PGTABLES=y CONFIG_ARCH_HAS_SC_SIGNALS=y CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y CONFIG_GENERIC_HWEIGHT=y @@ -255,7 +258,7 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_KERNEL_STACK_ORDER=2 CONFIG_MMAPPER=y -CONFIG_PGTABLE_LEVELS=2 +CONFIG_PGTABLE_LEVELS=3 # end of UML-specific options # @@ -310,7 +313,7 @@ CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y -CONFIG_COMPAT_32BIT_TIME=y +# CONFIG_COMPAT_32BIT_TIME is not set CONFIG_ARCH_NO_PREEMPT=y # @@ -915,7 +918,8 @@ CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_BPFILTER is not set +CONFIG_BPFILTER=y +CONFIG_BPFILTER_UMH=m CONFIG_IP_DCCP=m CONFIG_INET_DCCP_DIAG=m @@ -1795,6 +1799,7 @@ # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m CONFIG_UIO_PDRV_GENIRQ=m +# CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y @@ -1939,7 +1944,6 @@ # CONFIG_AD7091R5 is not set # CONFIG_AD7291 is not set # CONFIG_AD799X is not set -# CONFIG_ADI_AXI_ADC is not set # CONFIG_INA2XX_ADC is not set # CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set @@ -3115,7 +3119,6 @@ # um Debugging # # CONFIG_GPROF is not set -# CONFIG_GCOV is not set CONFIG_EARLY_PRINTK=y # end of um Debugging diff -Nru user-mode-linux-5.10um2/debian/changelog user-mode-linux-5.10um3/debian/changelog --- user-mode-linux-5.10um2/debian/changelog 2021-03-07 10:01:29.000000000 +0530 +++ user-mode-linux-5.10um3/debian/changelog 2021-06-11 11:43:23.000000000 +0530 @@ -1,3 +1,11 @@ +user-mode-linux (5.10um3) unstable; urgency=medium + + * [95d05ef] Drop patch um_mark_all_kernel_symbols_as_local.patch + (Closes: #989665) + * [bf8d469] Update UML Linux configs + + -- Ritesh Raj Sarraf <r...@debian.org> Fri, 11 Jun 2021 11:43:23 +0530 + user-mode-linux (5.10um2) unstable; urgency=medium [ Christopher Obbard ] diff -Nru user-mode-linux-5.10um2/debian/patches/series user-mode-linux-5.10um3/debian/patches/series --- user-mode-linux-5.10um2/debian/patches/series 2021-03-07 10:01:29.000000000 +0530 +++ user-mode-linux-5.10um3/debian/patches/series 2021-06-11 11:43:23.000000000 +0530 @@ -4,4 +4,3 @@ 06-fix-linkage-on-386-arch.patch 07-remove-rpath.patch 08-fix-pcap-linkage.patch -um_mark_all_kernel_symbols_as_local.patch diff -Nru user-mode-linux-5.10um2/debian/patches/um_mark_all_kernel_symbols_as_local.patch user-mode-linux-5.10um3/debian/patches/um_mark_all_kernel_symbols_as_local.patch --- user-mode-linux-5.10um2/debian/patches/um_mark_all_kernel_symbols_as_local.patch 2021-03-07 10:01:29.000000000 +0530 +++ user-mode-linux-5.10um3/debian/patches/um_mark_all_kernel_symbols_as_local.patch 1970-01-01 05:30:00.000000000 +0530 @@ -1,103 +0,0 @@ -From: Johannes Berg <johan...@sipsolutions.net> -To: linux...@lists.infradead.org -Cc: Ritesh Raj Sarraf <r...@debian.org>, - Anton Ivanov <anton.iva...@kot-begemot.co.uk>, - 983...@bugs.debian.org, - Christopher Obbard <chris.obb...@collabora.com>, - Johannes Berg <johannes.b...@intel.com> -Subject: [PATCH] um: mark all kernel symbols as local -Date: Fri, 5 Mar 2021 21:43:15 +0100 - -From: Johannes Berg <johannes.b...@intel.com> - -Ritesh reported a bug [1] against UML, noting that it crashed on -startup. The backtrace shows the following (heavily redacted): - -(gdb) bt -... - #26 0x0000000060015b5d in sem_init () at ipc/sem.c:268 - #27 0x00007f89906d92f7 in ?? () from /lib/x86_64-linux-gnu/libcom_err.so.2 - #28 0x00007f8990ab8fb2 in call_init (...) at dl-init.c:72 -... - #40 0x00007f89909bf3a6 in nss_load_library (...) at nsswitch.c:359 -... - #44 0x00007f8990895e35 in _nss_compat_getgrnam_r (...) at nss_compat/compat-grp.c:486 - #45 0x00007f8990968b85 in __getgrnam_r [...] - #46 0x00007f89909d6b77 in grantpt [...] - #47 0x00007f8990a9394e in __GI_openpty [...] - #48 0x00000000604a1f65 in openpty_cb (...) at arch/um/os-Linux/sigio.c:407 - #49 0x00000000604a58d0 in start_idle_thread (...) at arch/um/os-Linux/skas/process.c:598 - #50 0x0000000060004a3d in start_uml () at arch/um/kernel/skas/process.c:45 - #51 0x00000000600047b2 in linux_main (...) at arch/um/kernel/um_arch.c:334 - #52 0x000000006000574f in main (...) at arch/um/os-Linux/main.c:144 - -indicating that the UML function openpty_cb() calls openpty(), -which internally calls __getgrnam_r(), which causes the nsswitch -machinery to get started. - -This loads, through lots of indirection that I snipped, the -libcom_err.so.2 library, which (in an unknown function, "??") -calls sem_init(). - -Now, of course it wants to get libpthread's sem_init(), since -it's linked against libpthread. However, the dynamic linker -looks up that symbol against the binary first, and gets the -kernel's sem_init(). - -Hajime Tazaki noted that "objcopy -L" can localize a symbol, -so the dynamic linker wouldn't do the lookup this way. I tried, -but for some reason that didn't seem to work. - -Doing the same thing in the linker script instead does seem to -work, though I cannot entirely explain - it *also* works if I -just add "VERSION { { global: *; }; }" instead, indicating that -something else is happening that I don't really understand. It -may be that explicitly doing that marks them with some kind of -empty version, and that's different from the default. - -Explicitly marking them with a version breaks kallsyms, so that -doesn't seem to be possible. - -Marking all the symbols as local seems correct, and does seem -to address the issue, so do that. Also do it for static link, -nsswitch libraries could still be loaded there. - -[1] https://bugs.debian.org/983379 - -Reported-by: Ritesh Raj Sarraf <r...@debian.org> -Signed-off-by: Johannes Berg <johannes.b...@intel.com> ---- - arch/um/kernel/dyn.lds.S | 6 ++++++ - arch/um/kernel/uml.lds.S | 6 ++++++ - 2 files changed, 12 insertions(+) - ---- a/arch/um/kernel/dyn.lds.S -+++ b/arch/um/kernel/dyn.lds.S -@@ -6,6 +6,12 @@ - ENTRY(_start) - jiffies = jiffies_64; - -+VERSION { -+ { -+ local: *; -+ }; -+} -+ - SECTIONS - { - PROVIDE (__executable_start = START); ---- a/arch/um/kernel/uml.lds.S -+++ b/arch/um/kernel/uml.lds.S -@@ -7,6 +7,12 @@ - ENTRY(_start) - jiffies = jiffies_64; - -+VERSION { -+ { -+ local: *; -+ }; -+} -+ - SECTIONS - { - /* This must contain the right address - not quite the default ELF one.*/