summaryrefslogtreecommitdiff
path: root/ports/risc-v64/gnu/example_build/erbium/erbium_gnu.cmake
blob: 0d55dd89f7dfc7c889f470cbc0bf572b995738a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# /***************************************************************************
#  * Copyright (c) 2026 Eclipse ThreadX contributors
#  *
#  * This program and the accompanying materials are made available under the
#  * terms of the MIT License which is available at
#  * https://opensource.org/licenses/MIT.
#  *
#  * AI Disclosure: This file was largely AI-generated by Claude Code (Opus 5.5).
#  * The AI-generated portions may be considered public domain (CC0-1.0)
#  * and not subject to the project's licence. The human contributor has
#  * reviewed and verified that the code is correct.
#  *
#  * SPDX-License-Identifier: MIT and CC0-1.0
#  ***************************************************************************/

# CMake toolchain file for the Erbium example.
#
# Erbium implements only part of the F extension, so the example and the
# ThreadX library are built for the integer ISA with the soft-float lp64 ABI.
#
# Target ISA : rv64imc_zicsr_zifencei
# ABI        : lp64    (64-bit long/ptr, soft-float)
# Code model : medany  (MRAM at 0x40000000, peripherals above 2 GiB)
#
# The riscv64-unknown-elf toolchain installed by scripts/install_riscv.sh is
# built for lp64d only, so the example links without libc and libgcc
# (-nostdlib); a missing helper is a link error rather than an ABI mix.

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR risc-v64)

set(THREADX_ARCH "risc-v64")
set(THREADX_TOOLCHAIN "gnu")
set(ARCH_FLAGS "-g -march=rv64imc_zicsr_zifencei -mabi=lp64 -mcmodel=medany")
set(CFLAGS "${ARCH_FLAGS}")
set(ASFLAGS "${ARCH_FLAGS}")
set(LDFLAGS "${ARCH_FLAGS}")

include(${CMAKE_CURRENT_LIST_DIR}/../../../../../cmake/riscv64-unknown-elf.cmake)