On 07/08/2016 01:53, Brad Smith wrote: > On 07/14/16 09:52, Paolo Bonzini wrote: >> diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile >> index 2cdda87..d88ce11 100644 >> --- a/pc-bios/optionrom/Makefile >> +++ b/pc-bios/optionrom/Makefile >> @@ -9,22 +9,46 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/optionrom) >> >> .PHONY : all clean build-all >> >> -CFLAGS := -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer >> -fno-builtin >> -CFLAGS += -I$(SRC_PATH) >> -CFLAGS += $(call cc-option, $(CFLAGS), -fno-stack-protector) >> -CFLAGS += $(CFLAGS_NOPIE) >> -QEMU_CFLAGS = $(CFLAGS) >> - >> -build-all: multiboot.bin linuxboot.bin kvmvapic.bin >> +# Drop -fstack-protector and the like >> +QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS)) $(CFLAGS_NOPIE) >> -ffreestanding >> +QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -m16) > > This change in CFLAGS handling broke the build on OpenBSD. Filtering > -fstack-protector is not enough and is why the Makefile had an explicit > -fno-stack-protector provided. > > Adding this back in fixes the issue.. > > QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
Ok, will add back. Paolo > > > ld -nopie -m elf_i386 -Ttext 0 -e _start -s -o linuxboot_dma.img > linuxboot_dma.o > linuxboot_dma.o: In function `bios_cfg_read_entry': > linuxboot_dma.c:(.text+0x90): undefined reference to `__guard_local' > linuxboot_dma.c:(.text+0x12d): undefined reference to `__guard_local' > linuxboot_dma.c:(.text+0x149): undefined reference to > `__stack_smash_handler' > linuxboot_dma.o: In function `load_kernel': > linuxboot_dma.c:(.text+0x168): undefined reference to `__guard_local' > linuxboot_dma.c:(.text+0x381): undefined reference to `__guard_local' > linuxboot_dma.c:(.text+0x3b6): undefined reference to > `__stack_smash_handler' > gmake[1]: *** [Makefile:52: linuxboot_dma.img] Error 1