forked from openembedded/meta-openembedded
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
opensbi: Use -ffreestanding compiler options
This usually helps compiler to not use built-in optimizations for string functions and mem* functions unnecessarily, since OE's compiler is hosted for linux cross compile, this also means we instruct it rightly for building a baremetal application Refresh the patches to apply without fuzz Fixes linking errors e.g. platform/qemu/virt/lib/libplatsbi.a(sbi_string.o): in function `sbi_memset': | /mnt/b/yoe/build/tmp/work/riscv64-yoe-linux/opensbi/0.5-r0/git/lib/sbi/sbi_string.c:102: undefined reference to `memset' | collect2: error: ld returned 1 exit status Signed-off-by: Khem Raj <[email protected]> Signed-off-by: Richard Purdie <[email protected]>
- Loading branch information
Showing
3 changed files
with
31 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,26 +13,21 @@ Signed-off-by: Alistair Francis <[email protected]> | |
Makefile | 2 -- | ||
1 file changed, 2 deletions(-) | ||
|
||
diff --git a/Makefile b/Makefile | ||
index ae68f55..10851fc 100644 | ||
--- a/Makefile | ||
+++ b/Makefile | ||
@@ -145,7 +145,6 @@ GENFLAGS += $(firmware-genflags-y) | ||
@@ -162,7 +162,6 @@ GENFLAGS += $(firmware-genflags-y) | ||
CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 | ||
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls | ||
CFLAGS += -mno-save-restore -mstrict-align | ||
-CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) | ||
CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) | ||
CFLAGS += $(GENFLAGS) | ||
CFLAGS += $(platform-cflags-y) | ||
@@ -158,7 +157,6 @@ CPPFLAGS += $(firmware-cppflags-y) | ||
@@ -176,7 +175,6 @@ CPPFLAGS += $(firmware-cppflags-y) | ||
ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ | ||
ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls | ||
ASFLAGS += -mno-save-restore -mstrict-align | ||
-ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) | ||
ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) | ||
ASFLAGS += $(GENFLAGS) | ||
ASFLAGS += $(platform-asflags-y) | ||
-- | ||
2.20.1 | ||
|
28 changes: 28 additions & 0 deletions
28
meta/recipes-bsp/opensbi/files/0001-build-Use-ffreestanding.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
From efa39afecedf75a1f3154c39507bdde2810bc140 Mon Sep 17 00:00:00 2001 | ||
From: Khem Raj <[email protected]> | ||
Date: Mon, 6 Jan 2020 18:21:02 -0800 | ||
Subject: [PATCH] build: Use -ffreestanding | ||
|
||
this is a stand-alone/baremetal application, therefore demanding | ||
-ffreestanding would help it compile with hosted toolchains e.g. ( linux | ||
toolchains ), it also ensures that it won't be using platform | ||
optimizations like inlining mem* str* functions which gcc might decide | ||
especially with wrapper string functions in opensbi code | ||
|
||
Upstream-Status: Accepted [https://github.com/riscv/opensbi/commit/049ad0b3877352527ab470eba33bc767e9b54961] | ||
Signed-off-by: Khem Raj <[email protected]> | ||
--- | ||
Makefile | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
--- a/Makefile | ||
+++ b/Makefile | ||
@@ -159,7 +159,7 @@ GENFLAGS += $(libsbiutils-genflags-y) | ||
GENFLAGS += $(platform-genflags-y) | ||
GENFLAGS += $(firmware-genflags-y) | ||
|
||
-CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 | ||
+CFLAGS = -g -Wall -Werror -ffreestanding -nostdlib -fno-strict-aliasing -O2 | ||
CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls | ||
CFLAGS += -mno-save-restore -mstrict-align | ||
CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters