mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 01:04:14 -04:00
Convert memset(16|32|64)() from assembler to C, which should make it easier to read and change, if required. And it allows the compiler to optimize the code, and use different instructions, except for the used inline assemblies. Reviewed-by: Juergen Christ <jchrist@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
49 lines
1.9 KiB
Makefile
49 lines
1.9 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
purgatory-y := head.o purgatory.o string.o sha256.o
|
|
|
|
targets += $(purgatory-y) purgatory.lds purgatory purgatory.chk purgatory.ro
|
|
PURGATORY_OBJS = $(addprefix $(obj)/,$(purgatory-y))
|
|
|
|
$(obj)/sha256.o: $(srctree)/lib/crypto/sha256.c FORCE
|
|
$(call if_changed_rule,cc_o_c)
|
|
|
|
CFLAGS_sha256.o := -D__NO_FORTIFY
|
|
|
|
CC_FLAGS_MARCH_MINIMUM := -march=z10
|
|
|
|
KBUILD_CFLAGS := $(CC_FLAGS_DIALECT) -fno-strict-aliasing -Wall -Wstrict-prototypes
|
|
KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
|
|
KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
|
|
KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common
|
|
KBUILD_CFLAGS += -fno-stack-protector
|
|
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
|
KBUILD_CFLAGS += $(CC_FLAGS_MARCH_MINIMUM) -D__DISABLE_EXPORTS
|
|
KBUILD_CFLAGS += $(CLANG_FLAGS)
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
|
|
KBUILD_CFLAGS += $(call cc-option, -Wno-default-const-init-unsafe)
|
|
KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
|
|
KBUILD_AFLAGS += $(CC_FLAGS_MARCH_MINIMUM) -D__DISABLE_EXPORTS
|
|
|
|
# Since we link purgatory with -r unresolved symbols are not checked, so we
|
|
# also link a purgatory.chk binary without -r to check for unresolved symbols.
|
|
PURGATORY_LDFLAGS := -nostdlib -z nodefaultlib
|
|
LDFLAGS_purgatory := -r $(PURGATORY_LDFLAGS) -T
|
|
LDFLAGS_purgatory.chk := -e purgatory_start $(PURGATORY_LDFLAGS)
|
|
$(obj)/purgatory: $(obj)/purgatory.lds $(PURGATORY_OBJS) FORCE
|
|
$(call if_changed,ld)
|
|
|
|
$(obj)/purgatory.chk: $(obj)/purgatory FORCE
|
|
$(call if_changed,ld)
|
|
|
|
OBJCOPYFLAGS_purgatory.ro := -O elf64-s390
|
|
OBJCOPYFLAGS_purgatory.ro += --remove-section='*debug*'
|
|
OBJCOPYFLAGS_purgatory.ro += --remove-section='.comment'
|
|
OBJCOPYFLAGS_purgatory.ro += --remove-section='.note.*'
|
|
$(obj)/purgatory.ro: $(obj)/purgatory $(obj)/purgatory.chk FORCE
|
|
$(call if_changed,objcopy)
|
|
|
|
$(obj)/kexec-purgatory.o: $(obj)/purgatory.ro
|
|
|
|
obj-y += kexec-purgatory.o
|