mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 05:43:47 +08:00
63c93fac18
The -O2 optimization flag is passed via CFLAGS to the firmware Makefile, but in netbook.mak, we've got some rules that only use QEMU_CFLAGS for compiling the libc and libnet from SLOF, so these files get compiled without optimization so far. Use CFLAGS here, too, to create faster and smaller code. We can additionally save some more bytes in the firmware images by compi- ling the code with -fno-asynchronous-unwind-tables. This will omit some ELF sections (used for stack unwinding for example) from the image that we do not need in the firmware. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
43 lines
1.2 KiB
Makefile
43 lines
1.2 KiB
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 jump2ipl.o sclp.o menu.o \
|
|
virtio.o virtio-scsi.o virtio-blkdev.o libc.o
|
|
|
|
QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
|
|
QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
|
|
QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
|
|
QEMU_CFLAGS += -fno-asynchronous-unwind-tables
|
|
QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
|
|
LDFLAGS += -Wl,-pie -nostdlib
|
|
|
|
build-all: s390-ccw.img s390-netboot.img
|
|
|
|
s390-ccw.elf: $(OBJECTS)
|
|
$(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(OBJECTS),"BUILD","$(TARGET_DIR)$@")
|
|
|
|
STRIP ?= strip
|
|
|
|
s390-ccw.img: s390-ccw.elf
|
|
$(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@")
|
|
|
|
$(OBJECTS): Makefile
|
|
|
|
ifneq ($(wildcard $(SRC_PATH)/roms/SLOF/lib/libnet),)
|
|
include $(SRC_PATH)/pc-bios/s390-ccw/netboot.mak
|
|
else
|
|
s390-netboot.img:
|
|
@echo "s390-netboot.img not built since roms/SLOF/ is not available."
|
|
endif
|
|
|
|
clean:
|
|
rm -f *.o *.d *.img *.elf *~ *.a
|