summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Hernandez Samaniego <alejandro@enedino.org>2024-05-18 23:50:47 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-05-28 09:38:23 +0100
commit40d1877fafac3712eb76041311b58930568264e6 (patch)
tree79f0850a0f606afe116c2b841512c1e57a5fe1ae
parent09b5bafd0daad0d36382a06aeded5f6ac66cfb20 (diff)
downloadpoky-40d1877fafac3712eb76041311b58930568264e6.tar.gz
newlib: Use mcmodel=medany for RISCV64
It was previously discovered that mcmodel=medany should be used for RISCV64, however this was only being set for the applications themselves, but not for newlib, this meant that we ended up with C library that used a code model and an application that used another one which is not something we want. Pass mcmodel=medany when building newlib for RISCV64 as well. Also, s/CFLAGS/TARGET_CFLAGS to standarize across recipes, the variable expansion provides no functional difference at this point. (From OE-Core rev: 3ed0a2fab5dbc37dd352ead8846da6aae5de5c20) Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-recipe/baremetal-image.bbclass2
-rw-r--r--meta/recipes-core/newlib/newlib.inc8
2 files changed, 9 insertions, 1 deletions
diff --git a/meta/classes-recipe/baremetal-image.bbclass b/meta/classes-recipe/baremetal-image.bbclass
index b9a584351a..4e7d413626 100644
--- a/meta/classes-recipe/baremetal-image.bbclass
+++ b/meta/classes-recipe/baremetal-image.bbclass
@@ -103,7 +103,7 @@ QB_OPT_APPEND:append:qemuriscv32 = " -bios none"
103# since medlow can only access addresses below 0x80000000 and RAM 103# since medlow can only access addresses below 0x80000000 and RAM
104# starts at 0x80000000 on RISC-V 64 104# starts at 0x80000000 on RISC-V 64
105# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB) 105# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB)
106CFLAGS:append:qemuriscv64 = " -mcmodel=medany" 106TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
107 107
108 108
109## Emulate image.bbclass 109## Emulate image.bbclass
diff --git a/meta/recipes-core/newlib/newlib.inc b/meta/recipes-core/newlib/newlib.inc
index 6113f5e831..34b0f3f747 100644
--- a/meta/recipes-core/newlib/newlib.inc
+++ b/meta/recipes-core/newlib/newlib.inc
@@ -28,6 +28,14 @@ B = "${WORKDIR}/build"
28## disable stdlib 28## disable stdlib
29TARGET_CC_ARCH:append = " -nostdlib" 29TARGET_CC_ARCH:append = " -nostdlib"
30 30
31# Both the C library and the application should share the same mcmodel.
32# Use the medium-any code model for the RISC-V 64 bit implementation,
33# since medlow can only access addresses below 0x80000000 and RAM
34# starts at 0x80000000 on RISC-V 64
35# Keep RISC-V 32 using -mcmodel=medlow (symbols lie between -2GB:2GB)
36TARGET_CFLAGS:append:qemuriscv64 = " -mcmodel=medany"
37
38
31EXTRA_OECONF = " \ 39EXTRA_OECONF = " \
32 --build=${BUILD_SYS} \ 40 --build=${BUILD_SYS} \
33 --target=${TARGET_SYS} \ 41 --target=${TARGET_SYS} \