Skip to contentSkip to conversation

efi_loader helloworld.efi: Fix building with -Os

PATCH Applied Alexander Graf 1 participant 2 messages Dec 1, 2017 – Dec 4, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 efi_loader helloworld.efi: Fix building with -Os

Depending on your compiler, when compiling the hello world efi binary with -Os, gcc might think it's a smart idea to replace common patterns such as memory copies with explicit calls to memcpy().

While that sounds great at first, we don't have any memcpy() available in our helloworld build target. So let's indicate to gcc that we really do want to have the code be built as freestanding.

Fixes bbf75dd9 ("efi_loader: output load options in helloworld")
---
 lib/efi_loader/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
lib/efi_loader/Makefile +2 -2
index 83d879b686..2722265ee3 100644
@@ -7,8 +7,8 @@
 # This file only gets included with CONFIG_EFI_LOADER set, so all
 # object inclusion implicitly depends on it
 
-CFLAGS_helloworld.o := $(CFLAGS_EFI)
-CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_EFI)
+CFLAGS_helloworld.o := $(CFLAGS_EFI) -Os -ffreestanding
+CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_EFI) -Os
 
 ifneq ($(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)
 always += helloworld.efi
Signature · 1 line
2.12.3
author Applied
#1 lore raw
Quoted 10 lines

Depending on your compiler, when compiling the hello world efi binary with -Os, gcc might think it's a smart idea to replace common patterns such as memory copies with explicit calls to memcpy().

While that sounds great at first, we don't have any memcpy() available in our helloworld build target. So let's indicate to gcc that we really do want to have the code be built as freestanding.

Fixes bbf75dd9 ("efi_loader: output load options in helloworld")

Thanks, applied to efi-next

Alex