On Wed, Mar 23, 2022 at 2:39 AM Nathan Chancellor <nat...@kernel.org> wrote: > > When booting a clang compiled UML kernel, the kernel panics when trying > to run init: > > wait_stub_done : failed to wait for SIGTRAP, pid = 651294, n = 651294, > errno = 0, status = 0xb7f > Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b > > After the commit in Fixes, many flags from KBUILD_CFLAGS do not appear > in USER_CFLAGS, likely due to USER_CFLAGS initially being a recursive > variable ("VAR =") then being switched to a simple ("VAR :=") variable. > For example, diffing arch/x86/um/.ptrace_user.o.cmd shows flags such as > '-Os' and '-fno-delete-null-pointer-checks' getting dropped, which both > impact code generation. > > Rework the filtering to use filter-out instead of patsubst, which allows > all the patterns that USER_CFLAGS cares about to be excluded in one > command and ensures all flags from KBUILD_CFLAGS are transferred over to > USER_CFLAGS properly, which resolves the boot issue noted above. > > Fixes: 6580c5c18fb3 ("um: clang: Strip out -mno-global-merge from > USER_CFLAGS") > Signed-off-by: Nathan Chancellor <nat...@kernel.org>
Can we remove -mno-global-merge entirely? 61163efae02040f66a95 was a very old commit, without enough explanation. Shall we remove -mno-global-merge, and do compile-tests. If we are hit by problems for arm/arm64, we can re-add it. > --- > arch/um/Makefile | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/arch/um/Makefile b/arch/um/Makefile > index 320b09cd513c..d202f501e9e1 100644 > --- a/arch/um/Makefile > +++ b/arch/um/Makefile > @@ -70,15 +70,11 @@ KBUILD_CFLAGS += $(CFLAGS) $(CFLAGS-y) -D__arch_um__ \ > > KBUILD_AFLAGS += $(ARCH_INCLUDE) > > -USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst > -I%,,$(KBUILD_CFLAGS))) \ > +USER_CFLAGS = $(filter-out $(KERNEL_DEFINES) -I% > -mno-global-merge,$(KBUILD_CFLAGS)) \ > $(ARCH_INCLUDE) $(MODE_INCLUDE) $(filter -I%,$(CFLAGS)) \ > -D_FILE_OFFSET_BITS=64 -idirafter $(srctree)/include \ > -idirafter $(objtree)/include -D__KERNEL__ -D__UM_HOST__ > > -ifdef CONFIG_CC_IS_CLANG > -USER_CFLAGS := $(patsubst -mno-global-merge,,$(USER_CFLAGS)) > -endif > - > #This will adjust *FLAGS accordingly to the platform. > include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) > > > base-commit: 82017457957a550d7d00dde419435dd74a890887 > -- > 2.35.1 > -- Best Regards Masahiro Yamada _______________________________________________ linux-um mailing list linux-um@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-um