Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,7 @@ function(
default_ram_size
default_stack_size
run_tests
executor
)
if(CMAKE_INSTALL_MESSAGE STREQUAL NEVER)
set(MESON_INSTALL_QUIET "--quiet")
Expand Down Expand Up @@ -758,6 +759,7 @@ function(
-Dspecsdir=none
-Dmultilib=false
-Dtests-enable-stack-protector=false
-Dtest-machine=${executor}
-Dtest-long-double=${enable_long_double_test}
-Dnewlib-nano-malloc=${newlib_nano_malloc}
--prefix <INSTALL_DIR>
Expand Down Expand Up @@ -1045,6 +1047,7 @@ macro(
default_ram_size
default_stack_size
run_tests
executor
)
# It would be nice to just pass ${ARGN} to both the underlying functions,
# but that has the side effect of expanding any list arguments (e.g.
Expand All @@ -1067,6 +1070,7 @@ macro(
"${default_ram_size}"
"${default_stack_size}"
"${run_tests}"
"${executor}"
)
elseif(LLVM_TOOLCHAIN_C_LIBRARY STREQUAL newlib)
add_newlib(
Expand Down Expand Up @@ -1458,6 +1462,7 @@ function(add_library_variant target_arch)
set(have_executor FALSE)
endif()
else()
set(VARIANT_EXECUTOR "qemu")
get_qemu_params(
"${target_triple}"
"${VARIANT_QEMU_MACHINE}"
Expand Down Expand Up @@ -1488,6 +1493,7 @@ function(add_library_variant target_arch)
"${VARIANT_RAM_SIZE}"
"${VARIANT_STACK_SIZE}"
"${have_executor}"
"${VARIANT_EXECUTOR}"
)
add_compiler_rt(
"${directory}"
Expand Down Expand Up @@ -1649,6 +1655,23 @@ add_library_variants_for_cpu(
RAM_SIZE 0x1000000
STACK_SIZE 8K
)
add_library_variants_for_cpu(
aarch64a
SUFFIX strict_align
COMPILE_FLAGS "-march=armv8-a -mno-unaligned-access"
MULTILIB_FLAGS "--target=aarch64-unknown-none-elf -mno-unaligned-access"
PICOLIBC_BUILD_TYPE "release"
EXECUTOR fvp
FVP_MODEL aem-a
FVP_CONFIG "v8a-aarch64"
BOOT_FLASH_ADDRESS 0x80000000
BOOT_FLASH_SIZE 0x1000
FLASH_ADDRESS 0x80001000
FLASH_SIZE 0xfff000
RAM_ADDRESS 0x81000000
RAM_SIZE 0x1000000
STACK_SIZE 8K
)
# For AArch32, clang uses different defaults for FPU selection than GCC, both
# when "+fp" or "+fp.dp" are used and when no FPU specifier is provided in
# "-march=". Using "-mfpu=" explicitly.
Expand Down
7 changes: 5 additions & 2 deletions patches/picolibc/0001-Enable-libcxx-builds.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 42f07bef7775a1387f9707e959f8b6782f9d6808 Mon Sep 17 00:00:00 2001
From 028fe75e045951a9d091008a85971523358160db Mon Sep 17 00:00:00 2001
From: Simi Pallipurath <[email protected]>
Date: Thu, 14 Nov 2024 10:07:08 +0000
Subject: [PATCH 1/2] [PATCH 1/2] Enable libcxx builds
Subject: Enable libcxx builds

Modifications to build config and linker script required to enable
libc++ builds.
Expand Down Expand Up @@ -47,3 +47,6 @@ index 7b63ba172..cda5e1e7e 100644
*(.gnu.linkonce.t.*)
KEEP (*(.fini .fini.*))
@PREFIX@__text_end = .;
--
2.39.5 (Apple Git-154)

7 changes: 5 additions & 2 deletions patches/picolibc/0002-Add-bootcode-for-AArch64-FVPs.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From f2ca20cebc85850a50b80424bb0f81c927edd04b Mon Sep 17 00:00:00 2001
From 58451642e678817d8822b04b8ff07ee4758a8f10 Mon Sep 17 00:00:00 2001
From: Simi Pallipurath <[email protected]>
Date: Thu, 14 Nov 2024 10:12:33 +0000
Subject: [PATCH 2/2] [PATCH 2/2] Add bootcode for AArch64 FVPs
Subject: Add bootcode for AArch64 FVPs

The AArch64 FVP (Fixed Virtual Platform) models differ from QEMU in a
few ways which affect the crt0 code:
Expand Down Expand Up @@ -868,3 +868,6 @@ index 76965990f..be8f875be 100644
+ endforeach

endforeach
--
2.39.5 (Apple Git-154)

Loading
Loading