s390/decompressor: avoid reusing uncompressed image objects
Re-compile ebcdic.c and sclp_early_core.c for the decompressor, using proper decompressor CFLAGS. This also allows to potentially use instrumentation for those files when built for the main kernel image. With kbuild there is no easy way to re-compile a source file from another directory. Bypass ugly rules and Makefile meta-programming with relative path includes of original files. Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
2dd26659e3
commit
a1d7d91f10
5 changed files with 15 additions and 14 deletions
|
@ -15,14 +15,18 @@ KBUILD_CFLAGS := $(KBUILD_CFLAGS_DECOMPRESSOR)
|
|||
# message if the kernel is started on a machine which is too old
|
||||
#
|
||||
ifneq ($(CC_FLAGS_MARCH),-march=z900)
|
||||
AFLAGS_REMOVE_head.o += $(CC_FLAGS_MARCH)
|
||||
AFLAGS_head.o += -march=z900
|
||||
CFLAGS_REMOVE_als.o += $(CC_FLAGS_MARCH)
|
||||
CFLAGS_als.o += -march=z900
|
||||
AFLAGS_REMOVE_head.o += $(CC_FLAGS_MARCH)
|
||||
AFLAGS_head.o += -march=z900
|
||||
CFLAGS_REMOVE_als.o += $(CC_FLAGS_MARCH)
|
||||
CFLAGS_als.o += -march=z900
|
||||
CFLAGS_REMOVE_sclp_early_core.o += $(CC_FLAGS_MARCH)
|
||||
CFLAGS_sclp_early_core.o += -march=z900
|
||||
endif
|
||||
|
||||
obj-y := head.o als.o
|
||||
targets := bzImage startup.a $(obj-y)
|
||||
CFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char
|
||||
|
||||
obj-y := head.o als.o ebcdic.o sclp_early_core.o
|
||||
targets := bzImage setup.a $(obj-y)
|
||||
subdir- := compressed
|
||||
|
||||
OBJECTS := $(addprefix $(obj)/,$(obj-y))
|
||||
|
|
|
@ -16,9 +16,7 @@ targets += misc.o piggy.o sizes.h head.o
|
|||
KBUILD_AFLAGS := $(KBUILD_AFLAGS_DECOMPRESSOR)
|
||||
KBUILD_CFLAGS := $(KBUILD_CFLAGS_DECOMPRESSOR)
|
||||
|
||||
OBJECTS := $(objtree)/arch/s390/kernel/ebcdic.o
|
||||
OBJECTS += $(objtree)/drivers/s390/char/sclp_early_core.o
|
||||
OBJECTS += $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o
|
||||
OBJECTS := $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o
|
||||
|
||||
LDFLAGS_vmlinux := --oformat $(LD_BFD) -e startup -T
|
||||
$(obj)/vmlinux: $(obj)/vmlinux.lds $(objtree)/arch/s390/boot/startup.a $(OBJECTS)
|
||||
|
|
2
arch/s390/boot/ebcdic.c
Normal file
2
arch/s390/boot/ebcdic.c
Normal file
|
@ -0,0 +1,2 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "../kernel/ebcdic.c"
|
2
arch/s390/boot/sclp_early_core.c
Normal file
2
arch/s390/boot/sclp_early_core.c
Normal file
|
@ -0,0 +1,2 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "../../../drivers/s390/char/sclp_early_core.c"
|
|
@ -12,11 +12,6 @@ GCOV_PROFILE_sclp_early_core.o := n
|
|||
KCOV_INSTRUMENT_sclp_early_core.o := n
|
||||
UBSAN_SANITIZE_sclp_early_core.o := n
|
||||
|
||||
ifneq ($(CC_FLAGS_MARCH),-march=z900)
|
||||
CFLAGS_REMOVE_sclp_early_core.o += $(CC_FLAGS_MARCH)
|
||||
CFLAGS_sclp_early_core.o += -march=z900
|
||||
endif
|
||||
|
||||
CFLAGS_sclp_early_core.o += -D__NO_FORTIFY
|
||||
|
||||
CFLAGS_REMOVE_sclp_early_core.o += $(CC_FLAGS_EXPOLINE)
|
||||
|
|
Loading…
Reference in a new issue