[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH v2] pc-bios/s390-ccw: Optimize the s390-netboot.
From: |
Christian Borntraeger |
Subject: |
Re: [qemu-s390x] [PATCH v2] pc-bios/s390-ccw: Optimize the s390-netboot.img for size |
Date: |
Thu, 14 Jun 2018 16:04:06 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 06/14/2018 03:46 PM, Thomas Huth wrote:
> 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.
>
> Signed-off-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
> ---
> pc-bios/s390-ccw/Makefile | 1 +
> pc-bios/s390-ccw/netboot.mak | 4 ++--
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index 439e3cc..1eb316b 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -15,6 +15,7 @@ OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.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
>
> diff --git a/pc-bios/s390-ccw/netboot.mak b/pc-bios/s390-ccw/netboot.mak
> index 8af0cfd..14e96b2 100644
> --- a/pc-bios/s390-ccw/netboot.mak
> +++ b/pc-bios/s390-ccw/netboot.mak
> @@ -19,7 +19,7 @@ s390-netboot.img: s390-netboot.elf
>
> # libc files:
>
> -LIBC_CFLAGS := $(QEMU_CFLAGS) $(LIBC_INC) $(LIBNET_INC)
> +LIBC_CFLAGS := $(QEMU_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC)
>
> CTYPE_OBJS = isdigit.o isxdigit.o toupper.o
> %.o : $(SLOF_DIR)/lib/libc/ctype/%.c
> @@ -52,7 +52,7 @@ libc.a: $(LIBCOBJS)
>
> LIBNETOBJS := args.o dhcp.o dns.o icmpv6.o ipv6.o tcp.o udp.o bootp.o \
> dhcpv6.o ethernet.o ipv4.o ndp.o tftp.o pxelinux.o
> -LIBNETCFLAGS := $(QEMU_CFLAGS) -DDHCPARCH=0x1F $(LIBC_INC) $(LIBNET_INC)
> +LIBNETCFLAGS := $(QEMU_CFLAGS) $(CFLAGS) -DDHCPARCH=0x1F $(LIBC_INC)
> $(LIBNET_INC)
>
> %.o : $(SLOF_DIR)/lib/libnet/%.c
> $(call quiet-command,$(CC) $(LIBNETCFLAGS) -c -o $@
> $<,"CC","$(TARGET_DIR)$@")
>