8369e339d2
Starting with version 4.9, GCC assumes it can't safely dereference null pointers, and uses this for some optimizations. On s390, the lowcore memory is located at address 0, so this assumption is wrong and breaks the s390-ccw firmware. Pass -fdelete-null-pointer-checks to avoid that. Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Message-Id: <1434363843-14576-1-git-send-email-aurelien@aurel32.net> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
28 lines
702 B
Makefile
28 lines
702 B
Makefile
all: build-all
|
|
# Dummy command so that make thinks it has done something
|
|
@true
|
|
|
|
include ../../config-host.mak
|
|
include $(SRC_PATH)/rules.mak
|
|
|
|
$(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
|
|
|
|
.PHONY : all clean build-all
|
|
|
|
OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o
|
|
CFLAGS += -fPIE -fno-stack-protector -ffreestanding -fno-delete-null-pointer-checks
|
|
LDFLAGS += -Wl,-pie -nostdlib
|
|
|
|
build-all: s390-ccw.img
|
|
|
|
s390-ccw.elf: $(OBJECTS)
|
|
$(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(OBJECTS)," Building $(TARGET_DIR)$@")
|
|
|
|
s390-ccw.img: s390-ccw.elf
|
|
$(call quiet-command,strip --strip-unneeded $< -o $@," Stripping $(TARGET_DIR)$@")
|
|
|
|
$(OBJECTS): Makefile
|
|
|
|
clean:
|
|
rm -f *.o *.d *.img *.elf *~
|