├── .cmakelintrc ├── .github └── workflows │ └── lint.yml ├── .gitignore ├── CHANGELOG.md ├── CMakeLists.txt ├── LICENSE.txt ├── Omax.cfg ├── OmaxLTO.cfg ├── README.md ├── arm-multilib ├── CMakeLists.txt ├── json │ ├── multilib.json │ └── variants │ │ ├── aarch64a.json │ │ ├── aarch64a_be.json │ │ ├── aarch64a_be_exn_rtti.json │ │ ├── aarch64a_be_soft_nofp.json │ │ ├── aarch64a_be_soft_nofp_exn_rtti.json │ │ ├── aarch64a_exn_rtti.json │ │ ├── aarch64a_soft_nofp.json │ │ ├── aarch64a_soft_nofp_exn_rtti.json │ │ ├── aarch64a_strictalign.json │ │ ├── aarch64a_strictalign_exn_rtti.json │ │ ├── armebv6m_soft_nofp.json │ │ ├── armebv6m_soft_nofp_exn_rtti.json │ │ ├── armv4t.json │ │ ├── armv4t_exn_rtti.json │ │ ├── armv5te.json │ │ ├── armv5te_exn_rtti.json │ │ ├── armv6m_soft_nofp.json │ │ ├── armv6m_soft_nofp_exn_rtti.json │ │ ├── armv6m_soft_nofp_exn_rtti_unaligned.json │ │ ├── armv6m_soft_nofp_unaligned.json │ │ ├── armv7a_hard_vfpv3_d16.json │ │ ├── armv7a_hard_vfpv3_d16_exn_rtti.json │ │ ├── armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json │ │ ├── armv7a_hard_vfpv3_d16_unaligned.json │ │ ├── armv7a_soft_nofp.json │ │ ├── armv7a_soft_nofp_exn_rtti.json │ │ ├── armv7a_soft_nofp_exn_rtti_unaligned.json │ │ ├── armv7a_soft_nofp_unaligned.json │ │ ├── armv7a_soft_vfpv3_d16.json │ │ ├── armv7a_soft_vfpv3_d16_exn_rtti.json │ │ ├── armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json │ │ ├── armv7a_soft_vfpv3_d16_unaligned.json │ │ ├── armv7m_hard_fpv4_sp_d16.json │ │ ├── armv7m_hard_fpv4_sp_d16_exn_rtti.json │ │ ├── armv7m_hard_fpv4_sp_d16_exn_rtti_unaligned.json │ │ ├── armv7m_hard_fpv4_sp_d16_unaligned.json │ │ ├── armv7m_hard_fpv5_d16.json │ │ ├── armv7m_hard_fpv5_d16_exn_rtti.json │ │ ├── armv7m_soft_fpv4_sp_d16.json │ │ ├── armv7m_soft_fpv4_sp_d16_exn_rtti.json │ │ ├── armv7m_soft_fpv4_sp_d16_exn_rtti_unaligned.json │ │ ├── armv7m_soft_fpv4_sp_d16_unaligned.json │ │ ├── armv7m_soft_nofp.json │ │ ├── armv7m_soft_nofp_exn_rtti.json │ │ ├── armv7m_soft_nofp_exn_rtti_unaligned.json │ │ ├── armv7m_soft_nofp_unaligned.json │ │ ├── armv7r_hard_vfpv3_d16.json │ │ ├── armv7r_hard_vfpv3_d16_exn_rtti.json │ │ ├── armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json │ │ ├── armv7r_hard_vfpv3_d16_unaligned.json │ │ ├── armv7r_hard_vfpv3xd.json │ │ ├── armv7r_hard_vfpv3xd_exn_rtti.json │ │ ├── armv7r_hard_vfpv3xd_exn_rtti_unaligned.json │ │ ├── armv7r_hard_vfpv3xd_unaligned.json │ │ ├── armv7r_soft_nofp.json │ │ ├── armv7r_soft_nofp_exn_rtti.json │ │ ├── armv7r_soft_nofp_exn_rtti_unaligned.json │ │ ├── armv7r_soft_nofp_unaligned.json │ │ ├── armv7r_soft_vfpv3xd.json │ │ ├── armv7r_soft_vfpv3xd_exn_rtti.json │ │ ├── armv7r_soft_vfpv3xd_exn_rtti_unaligned.json │ │ ├── armv7r_soft_vfpv3xd_unaligned.json │ │ ├── armv8.1m.main_hard_fp_nomve.json │ │ ├── armv8.1m.main_hard_fp_nomve_exn_rtti.json │ │ ├── armv8.1m.main_hard_fp_nomve_pacret_bti.json │ │ ├── armv8.1m.main_hard_fp_nomve_pacret_bti_exn_rtti.json │ │ ├── armv8.1m.main_hard_fpdp_nomve.json │ │ ├── armv8.1m.main_hard_fpdp_nomve_exn_rtti.json │ │ ├── armv8.1m.main_hard_fpdp_nomve_pacret_bti.json │ │ ├── armv8.1m.main_hard_fpdp_nomve_pacret_bti_exn_rtti.json │ │ ├── armv8.1m.main_hard_nofp_mve.json │ │ ├── armv8.1m.main_hard_nofp_mve_exn_rtti.json │ │ ├── armv8.1m.main_hard_nofp_mve_pacret_bti.json │ │ ├── armv8.1m.main_hard_nofp_mve_pacret_bti_exn_rtti.json │ │ ├── armv8.1m.main_soft_nofp_nomve.json │ │ ├── armv8.1m.main_soft_nofp_nomve_exn_rtti.json │ │ ├── armv8.1m.main_soft_nofp_nomve_pacret_bti.json │ │ ├── armv8.1m.main_soft_nofp_nomve_pacret_bti_exn_rtti.json │ │ ├── armv8m.main_hard_fp.json │ │ ├── armv8m.main_hard_fp_exn_rtti.json │ │ ├── armv8m.main_soft_nofp.json │ │ └── armv8m.main_soft_nofp_exn_rtti.json ├── multilib-generate.py └── multilib.yaml.in ├── arm-runtimes ├── CMakeLists.txt ├── meson-cross-build.txt.in ├── test-support │ ├── lit-exec-fvp.py │ ├── lit-exec-qemu.py │ ├── llvm-libc++-picolibc.cfg.in │ ├── llvm-libc++abi-picolibc.cfg.in │ ├── llvm-libunwind-picolibc.cfg.in │ ├── modify-compiler-rt-xml.py │ ├── modify-picolibc-xml.py │ ├── picolibc-test-wrapper.py │ ├── run_fvp.py │ └── run_qemu.py └── to_meson_list.cmake ├── cmake ├── .gitattributes ├── THIRD-PARTY-LICENSES.txt.in ├── VERSION.txt.in ├── copy_target_libraries.py ├── fetch_llvm.cmake ├── fetch_newlib.cmake ├── fetch_picolibc.cmake ├── generate_version_txt.cmake ├── handle-windows-symlinks.sh ├── patch_repo.cmake ├── patch_repo.py └── read_versions.cmake ├── docs ├── building-from-source.md ├── contributing.md ├── llvmlibc.md ├── migrating.md ├── newlib.md └── optimization-flags.md ├── fvp ├── config │ ├── big-endian.cfg │ ├── cortex-m85.cfg │ ├── m-big-endian.cfg │ ├── m-fp.cfg │ ├── m-nofp.cfg │ ├── m-pacbti.cfg │ ├── mve-fp.cfg │ ├── mve-int.cfg │ ├── mve-none.cfg │ ├── v8a-aarch32.cfg │ ├── v8a-aarch64.cfg │ ├── v8r-aarch32.cfg │ └── v8r-aarch64.cfg └── get_fvps.sh ├── llvmlibc-samples └── src │ └── llvmlibc │ └── baremetal-semihosting │ ├── Makefile │ ├── crt0llvmlibc.c │ ├── hello.c │ ├── microbit-llvmlibc.ld │ └── vector.c ├── llvmlibc-support ├── CMakeLists.txt ├── crt0.c ├── exit.c ├── init.c ├── platform.h ├── semihost.h ├── stdio_read.c └── stdio_write.c ├── llvmlibc.cfg ├── mingw-licenses ├── COPYING.MinGW-w64-runtime.txt ├── COPYING.RUNTIME └── COPYING3.GCC ├── newlib.cfg ├── packagetest ├── CMakeLists.txt ├── Inputs │ └── microbit.ld ├── README.md ├── baremetal-semihosting-aarch64.test ├── baremetal-semihosting.test ├── baremetal-uart.test ├── cpp-baremetal-semihosting-cfi.test ├── cpp-baremetal-semihosting-exceptions.test ├── cpp-baremetal-semihosting-prof.test ├── cpp-baremetal-semihosting-ubsan.test ├── cpp-baremetal-semihosting.test ├── hello.c ├── hello.cpp ├── lit.cfg.py └── lit.site.cfg.py.in ├── patches ├── llvm-project-perf │ ├── 0001-LTOpasses-add-loop-unroll.patch │ └── 0002-ARM-Codegen-Set-LDM-STM-inlining-preference-for-v7m.patch ├── llvm-project │ ├── 0001-libc-tests-with-picolibc-xfail-one-remaining-test.patch │ ├── 0002-libc-tests-with-picolibc-disable-large-tests.patch │ ├── 0003-Disable-failing-compiler-rt-test.patch │ ├── 0004-libc-tests-with-picolibc-XFAIL-uses-of-atomics.patch │ ├── 0005-libc-tests-with-picolibc-mark-two-more-large-tests.patch │ ├── 0006-Define-_LIBCPP_HAS_C8RTOMB_MBRTOC8.patch │ ├── 0007-libcxx-Remove-xfails-due-to-picolibc-s-support-for-c.patch │ └── 0008-library-order-workaround-for-597.patch ├── newlib │ └── 0001-Enable-newlib-build.patch └── picolibc │ ├── 0001-Enable-libcxx-builds.patch │ ├── 0002-Define-picocrt_machines-for-AArch32-builds-as-well-a.patch │ └── 0003-Add-support-for-strict-align-no-unaligned-access-in-.patch ├── requirements-lint.txt ├── run-precommit-checks.sh ├── samples ├── .gitignore ├── Makefile.conf ├── README.md ├── ldscripts │ ├── microbit.ld │ └── raspi3b.ld └── src │ ├── baremetal-semihosting-aarch64 │ ├── Makefile │ ├── README.md │ ├── hello.c │ └── make.bat │ ├── baremetal-semihosting │ ├── Makefile │ ├── README.md │ ├── hello.c │ └── make.bat │ ├── baremetal-uart │ ├── Makefile │ ├── README.md │ ├── hello.c │ └── make.bat │ ├── cpp-baremetal-semihosting-cfi │ ├── Makefile │ ├── README.md │ ├── hello.cpp │ └── make.bat │ ├── cpp-baremetal-semihosting-exceptions │ ├── Makefile │ ├── README.md │ ├── hello-exn.cpp │ ├── hello.cpp │ └── make.bat │ ├── cpp-baremetal-semihosting-prof │ ├── Makefile │ ├── README.md │ ├── hello.cpp │ ├── make.bat │ └── proflib.c │ ├── cpp-baremetal-semihosting-ubsan │ ├── Makefile │ ├── README.md │ ├── hello.cpp │ ├── libubsan.cpp │ └── make.bat │ └── cpp-baremetal-semihosting │ ├── Makefile │ ├── README.md │ ├── hello.cpp │ └── make.bat ├── setup.sh ├── test ├── CMakeLists.txt ├── lit.cfg.py ├── lit.site.cfg.py.in └── multilib │ ├── aarch64.test │ ├── aarch64_a_supported_variants.test │ ├── aarch64_r_supported_variants.test │ ├── arm_a_supported_variants.test │ ├── arm_m_supported_variants.test │ ├── arm_r_supported_variants.test │ ├── armv4t.test │ ├── armv5e.test │ ├── armv6m.test │ ├── armv7a.test │ ├── armv7m.test │ ├── armv7r.test │ ├── armv8.1m.main.test │ ├── armv8a.test │ ├── armv8m.main.test │ ├── armv8r.test │ └── fpus.test └── versions.json /.cmakelintrc: -------------------------------------------------------------------------------- 1 | filter=-linelength,-readability/wonkycase 2 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: 4 | # Triggers the workflow on push or pull request events but only for the main 5 | # branch 6 | push: 7 | branches: [ main ] 8 | pull_request: 9 | branches: [ main ] 10 | # Allows you to run this workflow manually from the Actions tab 11 | workflow_dispatch: ~ 12 | 13 | jobs: 14 | lint: 15 | strategy: 16 | matrix: 17 | python-version: [3.9] 18 | 19 | runs-on: ubuntu-latest 20 | 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Set up Python ${{ matrix.python-version }} 24 | uses: actions/setup-python@v2 25 | with: 26 | python-version: ${{ matrix.python-version }} 27 | # Cache installed packages 28 | - name: pip cache 29 | uses: actions/cache@v2 30 | with: 31 | path: ~/.cache/pip 32 | key: pip-${{ matrix.python-version }}-${{ hashFiles('requirements*.txt') }} 33 | # Install dependencies for linters 34 | - name: Install python packages 35 | run: | 36 | python -m pip install --upgrade pip wheel setuptools 37 | python -m pip install -r requirements-lint.txt 38 | - name: Lint CMakeLists.txt 39 | run: cmakelint --quiet CMakeLists.txt 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | .idea 3 | /repos*/ 4 | /build*/ 5 | /install*/ 6 | /venv/ 7 | /*LLVMEmbeddedToolchainForArm* 8 | __pycache__ 9 | *.egg-info 10 | 11 | # IDEs 12 | .vscode 13 | compile_commands.json 14 | 15 | # Downloaded FVPs 16 | /fvp/download/ 17 | /fvp/install/ 18 | -------------------------------------------------------------------------------- /Omax.cfg: -------------------------------------------------------------------------------- 1 | -O3 -ffast-math \ 2 | -mllvm -inline-threshold=500 \ 3 | -mllvm -unroll-threshold=450 \ 4 | -mllvm -unroll-partial-threshold=450 \ 5 | -mllvm -unroll-max-iteration-count-to-analyze=20 \ 6 | -mllvm -lsr-complexity-limit=1073741823 \ 7 | -mllvm -force-attribute=main:norecurse \ 8 | -mllvm -enable-dfa-jump-thread \ 9 | -mllvm -enable-loop-flatten \ 10 | -mllvm -enable-unroll-and-jam \ 11 | -mllvm -enable-inline-memcpy-ld-st 12 | -------------------------------------------------------------------------------- /OmaxLTO.cfg: -------------------------------------------------------------------------------- 1 | -flto=full \ 2 | -fuse-linker-plugin \ 3 | -fvirtual-function-elimination \ 4 | -fwhole-program-vtables \ 5 | -Wl,-plugin-opt=-extra-LTO-loop-unroll=true \ 6 | -Wl,-plugin-opt=-inline-threshold=500 \ 7 | -Wl,-plugin-opt=-unroll-threshold=450 \ 8 | -Wl,-plugin-opt=-unroll-partial-threshold=450 \ 9 | -Wl,-plugin-opt=-unroll-max-iteration-count-to-analyze=20 \ 10 | -Wl,-plugin-opt=-lsr-complexity-limit=1073741823 \ 11 | -Wl,-plugin-opt=-force-attribute=main:norecurse \ 12 | 13 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a", 6 | "COMPILE_FLAGS": "-march=armv8-a", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "virt", 11 | "QEMU_CPU": "cortex-a57", 12 | "BOOT_FLASH_ADDRESS": "0x40000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x40001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x41000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_be.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_be", 6 | "COMPILE_FLAGS": "-march=armv8-a -mbig-endian -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64 big-endian", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_be_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_be_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv8-a -mbig-endian -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64 big-endian", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_be_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_be_soft_nofp", 6 | "COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mbig-endian -mabi=aapcs-soft -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64 big-endian", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_be_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_be_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mbig-endian -mabi=aapcs-soft -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64 big-endian", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv8-a", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "virt", 11 | "QEMU_CPU": "cortex-a57", 12 | "BOOT_FLASH_ADDRESS": "0x40000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x40001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x41000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_soft_nofp", 6 | "COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mabi=aapcs-soft -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "virt", 11 | "QEMU_CPU": "cortex-a57", 12 | "BOOT_FLASH_ADDRESS": "0x40000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x40001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x41000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv8-a+nofp+nosimd -mabi=aapcs-soft -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "virt", 11 | "QEMU_CPU": "cortex-a57", 12 | "BOOT_FLASH_ADDRESS": "0x40000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x40001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x41000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_strictalign.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_strictalign", 6 | "COMPILE_FLAGS": "-march=armv8-a -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/aarch64a_strictalign_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "aarch64a", 5 | "VARIANT": "aarch64a_strictalign_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv8-a -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "aem-a", 11 | "FVP_CONFIG": "v8a-aarch64", 12 | "BOOT_FLASH_ADDRESS": "0x80000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80001000", 15 | "FLASH_SIZE": "0xfff000", 16 | "RAM_ADDRESS": "0x81000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "8K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armebv6m_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armebv6m_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mbig-endian -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-big-endian m-nofp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armebv6m_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armebv6m_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mbig-endian -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-big-endian m-nofp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv4t.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv4t", 5 | "VARIANT": "armv4t", 6 | "COMPILE_FLAGS": "-march=armv4t -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "ti925t", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "minsize", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv4t_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv4t", 5 | "VARIANT": "armv4t_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv4t -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "ti925t", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "minsize", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "OFF", 25 | "ENABLE_COMPILER_RT_TESTS": "OFF", 26 | "ENABLE_LIBCXX_TESTS": "OFF" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv5te.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv5te", 5 | "VARIANT": "armv5te", 6 | "COMPILE_FLAGS": "-march=armv5te -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "arm926", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "minsize", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv5te_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv5te", 5 | "VARIANT": "armv5te_exn_rtti", 6 | "COMPILE_FLAGS": "-march=armv5te -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "arm926", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "minsize", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "OFF", 25 | "ENABLE_COMPILER_RT_TESTS": "OFF", 26 | "ENABLE_LIBCXX_TESTS": "OFF" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv6m_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armv6m_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an385", 11 | "QEMU_CPU": "cortex-m3", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv6m_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armv6m_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an385", 11 | "QEMU_CPU": "cortex-m3", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv6m_soft_nofp_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armv6m_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an385", 11 | "QEMU_CPU": "cortex-m3", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv6m_soft_nofp_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv6m", 5 | "VARIANT": "armv6m_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv6m -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an385", 11 | "QEMU_CPU": "cortex-m3", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_hard_vfpv3_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_hard_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7a -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_hard_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7a -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_hard_vfpv3_d16_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_hard_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7a -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_hard_vfpv3_d16_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_hard_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7a -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7a -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a7", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7a -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a7", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_nofp_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7a -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a7", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_nofp_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7a -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a7", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_vfpv3_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7a -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7a -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_vfpv3_d16_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7a -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7a_soft_vfpv3_d16_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7a", 5 | "VARIANT": "armv7a_soft_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7a -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-a8", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv4_sp_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv4_sp_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv4-sp-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv4_sp_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv4_sp_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv4-sp-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv4_sp_d16_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv4_sp_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv4-sp-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv4_sp_d16_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv4_sp_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv4-sp-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv5_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv5_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv5-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an500", 11 | "QEMU_CPU": "cortex-m7", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x60600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_hard_fpv5_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_hard_fpv5_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7m -mfpu=fpv5-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an500", 11 | "QEMU_CPU": "cortex-m7", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x60600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_fpv4_sp_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_fpv4_sp_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7m -mfpu=fpv4-sp-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_fpv4_sp_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_fpv4_sp_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7m -mfpu=fpv4-sp-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_fpv4_sp_d16_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_fpv4_sp_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7m -mfpu=fpv4-sp-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_fpv4_sp_d16_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_fpv4_sp_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7m -mfpu=fpv4-sp-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7m -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7m -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_nofp_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7m -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7m_soft_nofp_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7m", 5 | "VARIANT": "armv7m_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7m -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an386", 11 | "QEMU_CPU": "cortex-m4", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x21000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x21600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "minsize", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "ON", 25 | "ENABLE_LIBCXX_TESTS": "ON" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3_d16.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3-d16 -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3_d16_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3_d16_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3_d16_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3_d16", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3xd.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3xd", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3xd -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3xd_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3xd -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3xd_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3xd_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3xd", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_hard_vfpv3xd_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_hard_vfpv3xd", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3xd", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7r -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7r -mfpu=none -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_nofp_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7r -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_nofp_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv7r -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_vfpv3xd.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_vfpv3xd", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7r -mfpu=vfpv3xd -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_vfpv3xd_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7r -mfpu=vfpv3xd -mno-unaligned-access", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_vfpv3xd_exn_rtti_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_vfpv3xd_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7r -mfpu=vfpv3xd", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv7r_soft_vfpv3xd_unaligned.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv7r", 5 | "VARIANT": "armv7r_soft_vfpv3xd", 6 | "COMPILE_FLAGS": "-mfloat-abi=softfp -march=armv7r -mfpu=vfpv3xd", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "none", 11 | "QEMU_CPU": "cortex-r5f", 12 | "QEMU_PARAMS": "-m 1G", 13 | "BOOT_FLASH_ADDRESS": "0x00000000", 14 | "BOOT_FLASH_SIZE": "0x1000", 15 | "FLASH_ADDRESS": "0x20000000", 16 | "FLASH_SIZE": "0x1000000", 17 | "RAM_ADDRESS": "0x21000000", 18 | "RAM_SIZE": "0x1000000", 19 | "STACK_SIZE": "4K" 20 | }, 21 | "picolibc": { 22 | "PICOLIBC_BUILD_TYPE": "release", 23 | "ENABLE_CXX_LIBS": "ON", 24 | "ENABLE_LIBC_TESTS": "ON", 25 | "ENABLE_COMPILER_RT_TESTS": "ON", 26 | "ENABLE_LIBCXX_TESTS": "ON" 27 | }, 28 | "newlib": { 29 | "ENABLE_CXX_LIBS": "ON", 30 | "ENABLE_LIBC_TESTS": "OFF", 31 | "ENABLE_COMPILER_RT_TESTS": "OFF", 32 | "ENABLE_LIBCXX_TESTS": "OFF" 33 | }, 34 | "llvmlibc": { 35 | "ENABLE_CXX_LIBS": "OFF", 36 | "ENABLE_LIBC_TESTS": "OFF", 37 | "ENABLE_COMPILER_RT_TESTS": "OFF", 38 | "ENABLE_LIBCXX_TESTS": "OFF" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fp_nomve.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fp_nomve", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-sp-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fp_nomve_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fp_nomve_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-sp-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fp_nomve_pacret_bti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fp_nomve_pacret_bti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve+pacbti -mfpu=fp-armv8-fullfp16-sp-d16 -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-fp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fp_nomve_pacret_bti_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fp_nomve_pacret_bti_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve+pacbti -mfpu=fp-armv8-fullfp16-sp-d16 -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-fp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fpdp_nomve.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fpdp_nomve", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fpdp_nomve_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fpdp_nomve_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fpdp_nomve_pacret_bti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fpdp_nomve_pacret_bti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve+pacbti -mfpu=fp-armv8-fullfp16-d16 -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-fp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_fpdp_nomve_pacret_bti_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_fpdp_nomve_pacret_bti_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+nomve+pacbti -mfpu=fp-armv8-fullfp16-d16 -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-fp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_nofp_mve.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_nofp_mve", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+mve -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_nofp_mve_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_nofp_mve_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+mve -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_nofp_mve_pacret_bti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_nofp_mve_pacret_bti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+mve+pacbti -mfpu=none -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-nofp mve-int", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_hard_nofp_mve_pacret_bti_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_hard_nofp_mve_pacret_bti_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8.1m.main+mve+pacbti -mfpu=none -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-nofp mve-int", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_soft_nofp_nomve.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_soft_nofp_nomve", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8.1m.main+nomve -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_soft_nofp_nomve_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_soft_nofp_nomve_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8.1m.main+nomve -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps3-an547", 11 | "QEMU_CPU": "cortex-m55", 12 | "BOOT_FLASH_ADDRESS": "0x00000000", 13 | "BOOT_FLASH_SIZE": "512K", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_soft_nofp_nomve_pacret_bti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_soft_nofp_nomve_pacret_bti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8.1m.main+nomve+pacbti -mfpu=none -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-nofp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8.1m.main_soft_nofp_nomve_pacret_bti_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8.1m.main", 5 | "VARIANT": "armv8.1m.main_soft_nofp_nomve_pacret_bti_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8.1m.main+nomve+pacbti -mfpu=none -mbranch-protection=pac-ret+bti", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "fvp", 10 | "FVP_MODEL": "corstone-310", 11 | "FVP_CONFIG": "cortex-m85 m-pacbti m-nofp mve-none", 12 | "BOOT_FLASH_ADDRESS": "0x01000000", 13 | "BOOT_FLASH_SIZE": "2M", 14 | "FLASH_ADDRESS": "0x60000000", 15 | "FLASH_SIZE": "0x1000000", 16 | "RAM_ADDRESS": "0x61000000", 17 | "RAM_SIZE": "0x1000000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8m.main_hard_fp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8m.main", 5 | "VARIANT": "armv8m.main_hard_fp", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8m.main -mfpu=fpv5-sp-d16", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an505", 11 | "QEMU_CPU": "cortex-m33", 12 | "BOOT_FLASH_ADDRESS": "0x10000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x80600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8m.main_hard_fp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8m.main", 5 | "VARIANT": "armv8m.main_hard_fp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=hard -march=armv8m.main -mfpu=fpv5-sp-d16", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an505", 11 | "QEMU_CPU": "cortex-m33", 12 | "BOOT_FLASH_ADDRESS": "0x10000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x80600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8m.main_soft_nofp.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8m.main", 5 | "VARIANT": "armv8m.main_soft_nofp", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8m.main -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "OFF", 8 | "ENABLE_RTTI": "OFF", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an505", 11 | "QEMU_CPU": "cortex-m33", 12 | "BOOT_FLASH_ADDRESS": "0x10000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x80600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-multilib/json/variants/armv8m.main_soft_nofp_exn_rtti.json: -------------------------------------------------------------------------------- 1 | { 2 | "args": { 3 | "common": { 4 | "TARGET_ARCH": "armv8m.main", 5 | "VARIANT": "armv8m.main_soft_nofp_exn_rtti", 6 | "COMPILE_FLAGS": "-mfloat-abi=soft -march=armv8m.main -mfpu=none", 7 | "ENABLE_EXCEPTIONS": "ON", 8 | "ENABLE_RTTI": "ON", 9 | "TEST_EXECUTOR": "qemu", 10 | "QEMU_MACHINE": "mps2-an505", 11 | "QEMU_CPU": "cortex-m33", 12 | "BOOT_FLASH_ADDRESS": "0x10000000", 13 | "BOOT_FLASH_SIZE": "0x1000", 14 | "FLASH_ADDRESS": "0x80000000", 15 | "FLASH_SIZE": "0x600000", 16 | "RAM_ADDRESS": "0x80600000", 17 | "RAM_SIZE": "0xa00000", 18 | "STACK_SIZE": "4K" 19 | }, 20 | "picolibc": { 21 | "PICOLIBC_BUILD_TYPE": "release", 22 | "ENABLE_CXX_LIBS": "ON", 23 | "ENABLE_LIBC_TESTS": "ON", 24 | "ENABLE_COMPILER_RT_TESTS": "OFF", 25 | "ENABLE_LIBCXX_TESTS": "OFF" 26 | }, 27 | "newlib": { 28 | "ENABLE_CXX_LIBS": "ON", 29 | "ENABLE_LIBC_TESTS": "OFF", 30 | "ENABLE_COMPILER_RT_TESTS": "OFF", 31 | "ENABLE_LIBCXX_TESTS": "OFF" 32 | }, 33 | "llvmlibc": { 34 | "ENABLE_CXX_LIBS": "OFF", 35 | "ENABLE_LIBC_TESTS": "OFF", 36 | "ENABLE_COMPILER_RT_TESTS": "OFF", 37 | "ENABLE_LIBCXX_TESTS": "OFF" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /arm-runtimes/meson-cross-build.txt.in: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = [@picolibc_meson_flags@, '-nostdlib'] 3 | ar = '@LLVM_BINARY_DIR@/bin/llvm-ar@CMAKE_EXECUTABLE_SUFFIX@' 4 | strip = '@LLVM_BINARY_DIR@/bin/llvm-strip@CMAKE_EXECUTABLE_SUFFIX@' 5 | # only needed to run tests 6 | # setting stdin to /dev/null prevents qemu from fiddling with the echo bit of 7 | # the parent terminal 8 | exe_wrapper = [ 9 | 'sh', 10 | '-c', 11 | 'test -z "$PICOLIBC_TEST" || @picolibc_test_executor_bin@ "$@" < /dev/null', 12 | '@picolibc_test_executor_bin@', 13 | @meson_test_executor_params@] 14 | 15 | [host_machine] 16 | system = 'none' 17 | cpu_family = '@cpu_family@' 18 | cpu = '@cpu_family@' 19 | endian = 'little' 20 | 21 | [properties] 22 | skip_sanity_check = true 23 | libgcc ='-lclang_rt.builtins' 24 | separate_boot_flash = true 25 | default_boot_flash_addr = '@BOOT_FLASH_ADDRESS@' 26 | default_boot_flash_size = '@BOOT_FLASH_SIZE@' 27 | default_flash_addr = '@FLASH_ADDRESS@' 28 | default_flash_size = '@FLASH_SIZE@' 29 | default_ram_addr = '@RAM_ADDRESS@' 30 | default_ram_size = '@RAM_SIZE@' 31 | default_stack_size = '@STACK_SIZE@' 32 | -------------------------------------------------------------------------------- /arm-runtimes/test-support/llvm-libc++abi-picolibc.cfg.in: -------------------------------------------------------------------------------- 1 | # This testing configuration handles running the test suite against LLVM's libc++abi 2 | # using a static library. 3 | 4 | lit_config.load_config(config, '@CMAKE_CURRENT_BINARY_DIR@/cmake-bridge.cfg') 5 | 6 | config.name = 'libc++abi-@RUNTIME_VARIANT_NAME@' 7 | 8 | config.substitutions.append(('%{libc-include}', '@CMAKE_INSTALL_PREFIX@/include')) 9 | config.substitutions.append(('%{libc-lib}', '@CMAKE_INSTALL_PREFIX@/lib')) 10 | config.substitutions.append(('%{libc-extra-link-flags}', '@RUNTIME_TEST_LINK_FLAGS@')) 11 | 12 | config.substitutions.append(('%{flags}', '@RUNTIME_TEST_ARCH_FLAGS@')) 13 | config.substitutions.append(('%{compile_flags}', 14 | '-nostdinc++ -I %{include} -I %{cxx-include} -I %{cxx-target-include} %{maybe-include-libunwind} ' 15 | ' -I %{libcxx}/test/support -I %{libcxx}/src -D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS' 16 | ' -isystem %{libc-include}' 17 | )) 18 | config.substitutions.append(('%{link_flags}', 19 | ' -nostdlib++ -L %{lib}' 20 | ' -lc++ -lc++abi' 21 | ' -nostdlib -L %{libc-lib}' 22 | ' -lc -lm -lclang_rt.builtins' 23 | ' %{libc-extra-link-flags}' 24 | )) 25 | config.substitutions.append(('%{exec}', 26 | '%{executor} --execdir %T -- ' 27 | )) 28 | 29 | import os, site 30 | site.addsitedir(os.path.join('@LIBCXXABI_LIBCXX_PATH@', 'utils')) 31 | import libcxx.test.params, libcxx.test.config 32 | libcxx.test.config.configure( 33 | libcxx.test.params.DEFAULT_PARAMETERS, 34 | libcxx.test.features.DEFAULT_FEATURES, 35 | config, 36 | lit_config 37 | ) 38 | -------------------------------------------------------------------------------- /arm-runtimes/test-support/llvm-libunwind-picolibc.cfg.in: -------------------------------------------------------------------------------- 1 | # 2 | # Configuration file for running the libunwind tests against the static library. 3 | # 4 | 5 | lit_config.load_config(config, '@CMAKE_CURRENT_BINARY_DIR@/cmake-bridge.cfg') 6 | 7 | config.name = 'libunwind-@RUNTIME_VARIANT_NAME@' 8 | 9 | config.substitutions.append(('%{libc-include}', '@CMAKE_INSTALL_PREFIX@/include')) 10 | config.substitutions.append(('%{libc-lib}', '@CMAKE_INSTALL_PREFIX@/lib')) 11 | config.substitutions.append(('%{libc-extra-link-flags}', '@RUNTIME_TEST_LINK_FLAGS@')) 12 | 13 | compile_flags = [] 14 | 15 | if @LIBUNWIND_ENABLE_CET@: 16 | compile_flags.append('-fcf-protection=full') 17 | 18 | # Stack unwinding tests need unwinding tables and these are not generated by default on all targets. 19 | compile_flags.append('-funwind-tables') 20 | 21 | local_sysroot = '@CMAKE_OSX_SYSROOT@' or '@CMAKE_SYSROOT@' 22 | config.substitutions.append(('%{flags}', 23 | '@RUNTIME_TEST_ARCH_FLAGS@' + 24 | (' -isysroot {}'.format(local_sysroot) if local_sysroot else '') 25 | )) 26 | config.substitutions.append(('%{compile_flags}', 27 | '-nostdinc++ -I %{include} ' 28 | ' -isystem %{libc-include} ' 29 | + ' '.join(compile_flags) 30 | )) 31 | config.substitutions.append(('%{link_flags}', 32 | ' -nostdlib++ -L %{lib}' 33 | ' -lc++ -lc++abi -lunwind' 34 | ' -nostdlib -L %{libc-lib}' 35 | ' -lc -lm -lclang_rt.builtins' 36 | ' %{libc-extra-link-flags}' 37 | )) 38 | config.substitutions.append(('%{exec}', 39 | '%{executor} --execdir %T -- ' 40 | )) 41 | 42 | import os, site 43 | site.addsitedir(os.path.join('@LIBUNWIND_LIBCXX_PATH@', 'utils')) 44 | import libcxx.test.params, libcxx.test.config 45 | libcxx.test.config.configure( 46 | libcxx.test.params.DEFAULT_PARAMETERS, 47 | libcxx.test.features.DEFAULT_FEATURES, 48 | config, 49 | lit_config 50 | ) 51 | -------------------------------------------------------------------------------- /arm-runtimes/test-support/modify-picolibc-xml.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Helper script to modify the xml results from picolibc. 4 | 5 | # Picolibc always puts all the test results into the "picolibc" 6 | # testsuite in the junit xml file. We have multiple variants of 7 | # picolibc, so the xml is modified to group the tests by variant. 8 | 9 | import argparse 10 | import os 11 | from xml.etree import ElementTree 12 | 13 | 14 | def main(): 15 | parser = argparse.ArgumentParser(description="Reformat picolibc xml results") 16 | parser.add_argument( 17 | "--dir", 18 | required=True, 19 | help="Path to picolibc build directory", 20 | ) 21 | parser.add_argument( 22 | "--variant", 23 | required=True, 24 | help="Name of the variant under test", 25 | ) 26 | args = parser.parse_args() 27 | 28 | # A '.' character is used in junit xml to split classes/groups. 29 | # Variants such as armv8m.main need to be renamed. 30 | variant_name = args.variant.replace(".", "_") 31 | 32 | xml_file = os.path.join(args.dir, "meson-logs", "testlog.junit.xml") 33 | 34 | tree = ElementTree.parse(xml_file) 35 | root = tree.getroot() 36 | for testsuite in root.iter("testsuite"): 37 | testsuite.set("name", f"picolibc-{variant_name}") 38 | for testcase in root.iter("testcase"): 39 | testcase.set("classname", f"picolibc-{variant_name}.picolibc-{variant_name}") 40 | tree.write(xml_file) 41 | print(f"Results written to {xml_file}") 42 | 43 | 44 | if __name__ == "__main__": 45 | main() 46 | -------------------------------------------------------------------------------- /arm-runtimes/to_meson_list.cmake: -------------------------------------------------------------------------------- 1 | # Converts a cmake list to a string, which can be interpreted as list content in 2 | # meson configuration file. 3 | # The delimiting brackets are not included. 4 | # Example output: "'foo', 'bar', 'baz'" 5 | 6 | function(to_meson_list input_list out_var) 7 | list(JOIN input_list "', '" input_list) 8 | set(${out_var} "'${input_list}'" PARENT_SCOPE) 9 | endfunction() 10 | -------------------------------------------------------------------------------- /cmake/.gitattributes: -------------------------------------------------------------------------------- 1 | # During git archive, replace $Format:%H$ with the commit hash. 2 | generate_version_txt.cmake export-subst 3 | -------------------------------------------------------------------------------- /cmake/THIRD-PARTY-LICENSES.txt.in: -------------------------------------------------------------------------------- 1 | This product embeds and uses the following pieces of software which have 2 | additional or alternate licenses: 3 | - LLVM: third-party-licenses/LLVM-LICENSE.txt 4 | - Clang: third-party-licenses/CLANG-LICENSE.txt 5 | - lld: third-party-licenses/LLD-LICENSE.txt 6 | - compiler-rt: third-party-licenses/COMPILER-RT-LICENSE.txt 7 | - libc++: third-party-licenses/LIBCXX-LICENSE.txt 8 | - libc++abi: third-party-licenses/LIBCXXABI-LICENSE.txt 9 | - libunwind: third-party-licenses/LIBUNWIND-LICENSE.txt 10 | - Picolibc: third-party-licenses/COPYING.NEWLIB, third-party-licenses/COPYING.picolibc${mingw_runtime_dlls} 11 | 12 | Picolibc licenses refer to its source files. Sources are identified in VERSION.txt. 13 | -------------------------------------------------------------------------------- /cmake/VERSION.txt.in: -------------------------------------------------------------------------------- 1 | LLVM Embedded Toolchain for Arm ${LLVMEmbeddedToolchainForArm_VERSION} 2 | 3 | Sources: 4 | * LLVM Embedded Toolchain for Arm: https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm (commit ${LLVMEmbeddedToolchainForArm_COMMIT}) 5 | * LLVM: https://github.com/llvm/llvm-project.git (commit ${llvmproject_COMMIT}) 6 | * Picolibc: https://github.com/picolibc/picolibc.git (commit ${picolibc_COMMIT}) 7 | -------------------------------------------------------------------------------- /cmake/fetch_llvm.cmake: -------------------------------------------------------------------------------- 1 | # To avoid duplicating the FetchContent code, this file can be 2 | # included by either the top-level toolchain cmake, or the 3 | # arm-runtimes sub-project. 4 | # FETCHCONTENT_SOURCE_DIR_LLVMPROJECT should be passed down from the 5 | # top level to any library builds to prevent repeated checkouts. 6 | 7 | include(FetchContent) 8 | include(${CMAKE_CURRENT_LIST_DIR}/patch_repo.cmake) 9 | 10 | if(NOT VERSIONS_JSON) 11 | include(${CMAKE_CURRENT_LIST_DIR}/read_versions.cmake) 12 | endif() 13 | read_repo_version(llvmproject llvm-project) 14 | get_patch_command(${CMAKE_CURRENT_LIST_DIR}/.. llvm-project llvm_patch_command) 15 | if(APPLY_LLVM_PERFORMANCE_PATCHES) 16 | get_patch_command(${CMAKE_CURRENT_LIST_DIR}/.. llvm-project-perf llvm_perf_patch_command) 17 | set(llvm_patch_command ${llvm_patch_command} && ${llvm_perf_patch_command} ) 18 | endif() 19 | 20 | FetchContent_Declare(llvmproject 21 | GIT_REPOSITORY https://github.com/llvm/llvm-project.git 22 | GIT_TAG "${llvmproject_TAG}" 23 | GIT_SHALLOW "${llvmproject_SHALLOW}" 24 | GIT_PROGRESS TRUE 25 | PATCH_COMMAND ${llvm_patch_command} 26 | # Add the llvm subdirectory later to ensure that 27 | # LLVMEmbeddedToolchainForArm is the first project declared. 28 | # Otherwise CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 29 | # can't be used. 30 | SOURCE_SUBDIR do_not_add_llvm_subdir_yet 31 | ) 32 | FetchContent_MakeAvailable(llvmproject) 33 | FetchContent_GetProperties(llvmproject SOURCE_DIR FETCHCONTENT_SOURCE_DIR_LLVMPROJECT) 34 | -------------------------------------------------------------------------------- /cmake/fetch_newlib.cmake: -------------------------------------------------------------------------------- 1 | # To avoid duplicating the FetchContent code, this file can be 2 | # included by either the top-level toolchain cmake, or the 3 | # arm-runtimes sub-project. 4 | # FETCHCONTENT_SOURCE_DIR_NEWLIB should be passed down from the 5 | # top level to any library builss to prevent repeated checkouts. 6 | 7 | include(FetchContent) 8 | include(${CMAKE_CURRENT_LIST_DIR}/patch_repo.cmake) 9 | 10 | if(NOT VERSIONS_JSON) 11 | include(${CMAKE_CURRENT_LIST_DIR}/read_versions.cmake) 12 | endif() 13 | read_repo_version(newlib newlib) 14 | get_patch_command(${CMAKE_CURRENT_LIST_DIR}/.. newlib newlib_patch_command) 15 | 16 | FetchContent_Declare(newlib 17 | GIT_REPOSITORY https://sourceware.org/git/newlib-cygwin.git 18 | GIT_TAG "${newlib_TAG}" 19 | GIT_SHALLOW "${newlib_SHALLOW}" 20 | GIT_PROGRESS TRUE 21 | PATCH_COMMAND ${newlib_patch_command} 22 | # Similarly to picolibc, we don't do the configuration here. 23 | SOURCE_SUBDIR do_not_add_newlib_subdir 24 | ) 25 | FetchContent_MakeAvailable(newlib) 26 | FetchContent_GetProperties(newlib SOURCE_DIR FETCHCONTENT_SOURCE_DIR_NEWLIB) 27 | -------------------------------------------------------------------------------- /cmake/fetch_picolibc.cmake: -------------------------------------------------------------------------------- 1 | # To avoid duplicating the FetchContent code, this file can be 2 | # included by either the top-level toolchain cmake, or the 3 | # arm-runtimes sub-project. 4 | # FETCHCONTENT_SOURCE_DIR_PICOLIBC should be passed down from the 5 | # top level to any library builss to prevent repeated checkouts. 6 | 7 | include(FetchContent) 8 | include(${CMAKE_CURRENT_LIST_DIR}/patch_repo.cmake) 9 | 10 | if(NOT VERSIONS_JSON) 11 | include(${CMAKE_CURRENT_LIST_DIR}/read_versions.cmake) 12 | endif() 13 | read_repo_version(picolibc picolibc) 14 | get_patch_command(${CMAKE_CURRENT_LIST_DIR}/.. picolibc picolibc_patch_command) 15 | 16 | FetchContent_Declare(picolibc 17 | GIT_REPOSITORY https://github.com/picolibc/picolibc.git 18 | GIT_TAG "${picolibc_TAG}" 19 | GIT_SHALLOW "${picolibc_SHALLOW}" 20 | GIT_PROGRESS TRUE 21 | PATCH_COMMAND ${picolibc_patch_command} 22 | # We only want to download the content, not configure it at this 23 | # stage. picolibc will be built in many configurations using 24 | # ExternalProject_Add using the sources that are checked out here. 25 | SOURCE_SUBDIR do_not_add_picolibc_subdir 26 | ) 27 | FetchContent_MakeAvailable(picolibc) 28 | FetchContent_GetProperties(picolibc SOURCE_DIR FETCHCONTENT_SOURCE_DIR_PICOLIBC) 29 | -------------------------------------------------------------------------------- /cmake/generate_version_txt.cmake: -------------------------------------------------------------------------------- 1 | # The following line will look different depending on how you got this 2 | # source file. If you got it from a Git repository then it will contain 3 | # a string in the git pretty format with dollar symbols. If you got it 4 | # from a source archive then the `git archive` command should have 5 | # replaced the format string with the Git revision at the time the 6 | # archive was created. This is configured in the .gitattributes file. 7 | # In the former case, this script will run a Git command to find out the 8 | # current revision. In the latter case the revision will be used as is. 9 | set(LLVMEmbeddedToolchainForArm_COMMIT "c9dff0ac5ab961cf393b6189f27cadbde77dc02e") 10 | 11 | if(NOT ${LLVMEmbeddedToolchainForArm_COMMIT} MATCHES "^[a-f0-9]+$") 12 | execute_process( 13 | COMMAND git -C ${LLVMEmbeddedToolchainForArm_SOURCE_DIR} rev-parse HEAD 14 | OUTPUT_VARIABLE LLVMEmbeddedToolchainForArm_COMMIT 15 | OUTPUT_STRIP_TRAILING_WHITESPACE 16 | COMMAND_ERROR_IS_FATAL ANY 17 | ) 18 | endif() 19 | 20 | execute_process( 21 | COMMAND git -C ${llvmproject_SOURCE_DIR} rev-parse HEAD 22 | OUTPUT_VARIABLE llvmproject_COMMIT 23 | OUTPUT_STRIP_TRAILING_WHITESPACE 24 | COMMAND_ERROR_IS_FATAL ANY 25 | ) 26 | if(NOT (LLVM_TOOLCHAIN_C_LIBRARY STREQUAL llvmlibc)) # libc in a separate repo? 27 | execute_process( 28 | COMMAND git -C ${${LLVM_TOOLCHAIN_C_LIBRARY}_SOURCE_DIR} rev-parse HEAD 29 | OUTPUT_VARIABLE ${LLVM_TOOLCHAIN_C_LIBRARY}_COMMIT 30 | OUTPUT_STRIP_TRAILING_WHITESPACE 31 | COMMAND_ERROR_IS_FATAL ANY 32 | ) 33 | endif() 34 | 35 | configure_file( 36 | ${CMAKE_CURRENT_LIST_DIR}/VERSION.txt.in 37 | ${CMAKE_CURRENT_BINARY_DIR}/VERSION.txt 38 | ) 39 | -------------------------------------------------------------------------------- /cmake/handle-windows-symlinks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Exit immediately if a command exits with a non-zero status. 4 | set -e 5 | 6 | # Handle symlinks such as clang++ when cross-building to Windows. 7 | # CPack supports putting symlinks in zip files but to Windows they 8 | # just look like a file containing text like "clang". 9 | 10 | # 1. Convert required symlinks to regular files. 11 | for name in \ 12 | clang++ \ 13 | clang-cpp \ 14 | ld.lld \ 15 | llvm-ranlib \ 16 | llvm-readelf \ 17 | llvm-strip 18 | do 19 | ln -f $(realpath -m "bin/${name}.exe") bin/${name}.exe 20 | done 21 | 22 | # 2. Remove remaining symlinks 23 | find -type l -exec rm {} + 24 | -------------------------------------------------------------------------------- /cmake/patch_repo.cmake: -------------------------------------------------------------------------------- 1 | 2 | # Function to generate a PATCH_COMMAND, calling the 3 | # patch_repo.py script using a target set of patches. 4 | 5 | function(get_patch_command toolchain_root patch_dir patch_command_out) 6 | set(patch_script ${toolchain_root}/cmake/patch_repo.py) 7 | list(APPEND patch_script_args ${Python3_EXECUTABLE} ${patch_script}) 8 | if(GIT_PATCH_METHOD STREQUAL "am") 9 | list(APPEND patch_script_args "--method" "am") 10 | elseif(GIT_PATCH_METHOD STREQUAL "apply") 11 | list(APPEND patch_script_args "--method" "apply") 12 | endif() 13 | list(APPEND patch_script_args ${toolchain_root}/patches/${patch_dir}) 14 | 15 | set(${patch_command_out} ${patch_script_args} PARENT_SCOPE) 16 | endfunction() 17 | -------------------------------------------------------------------------------- /cmake/read_versions.cmake: -------------------------------------------------------------------------------- 1 | # Read which revisions of the repos to use. 2 | file(READ ${CMAKE_CURRENT_LIST_DIR}/../versions.json VERSIONS_JSON) 3 | function(read_repo_version output_variable_prefix repo) 4 | string(JSON tag GET ${VERSIONS_JSON} "repos" "${repo}" "tag") 5 | string(JSON tagType GET ${VERSIONS_JSON} "repos" "${repo}" "tagType") 6 | if(tagType STREQUAL "commithash") 7 | # GIT_SHALLOW doesn't work with commit hashes. 8 | set(shallow OFF) 9 | elseif(tagType STREQUAL "branch") 10 | set(shallow ON) 11 | # CMake docs recommend that "branch names and tags should 12 | # generally be specified as remote names" 13 | set(tag "origin/${tag}") 14 | elseif(tagType STREQUAL "tag") 15 | set(shallow ON) 16 | else() 17 | message(FATAL_ERROR "Unrecognised tagType ${tagType}") 18 | endif() 19 | 20 | set(${output_variable_prefix}_TAG "${tag}" PARENT_SCOPE) 21 | set(${output_variable_prefix}_SHALLOW "${shallow}" PARENT_SCOPE) 22 | endfunction() 23 | -------------------------------------------------------------------------------- /docs/optimization-flags.md: -------------------------------------------------------------------------------- 1 | Additional optimization flags 2 | ============================= 3 | 4 | ## Additional loop unroll in the LTO pipeline 5 | In some cases it is benefitial to perform an additional loop unroll pass so that extra information becomes available to later passes, e.g. SROA. 6 | Use cases where this could be beneficial - multiple (N>=4) nested loops. 7 | 8 | ### Usage: 9 | -Wl,-plugin-opt=-extra-LTO-loop-unroll=true/false 10 | 11 | ## Inline memcpy with LD/ST instructions 12 | In some cases inlining of memcpy instructions performs best when using LD/ST instructions. 13 | 14 | ### Usage: 15 | -mllvm -enable-inline-memcpy-ld-st 16 | -------------------------------------------------------------------------------- /fvp/config/big-endian.cfg: -------------------------------------------------------------------------------- 1 | cluster0.cpu0.CFGEND=1 2 | -------------------------------------------------------------------------------- /fvp/config/cortex-m85.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable GUI visualisation. 4 | mps3_board.visualisation.disable-visualisation=1 5 | 6 | # Silence output about telnet ports. 7 | # Yes, the terminals are numbered 0, 1, 2 and 5 8 | mps3_board.telnetterminal0.quiet=1 9 | mps3_board.telnetterminal1.quiet=1 10 | mps3_board.telnetterminal2.quiet=1 11 | mps3_board.telnetterminal5.quiet=1 12 | 13 | # Enable semihosting 14 | cpu0.semihosting-enable=1 15 | -------------------------------------------------------------------------------- /fvp/config/m-big-endian.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | cpu0.CFGBIGEND=1 3 | -------------------------------------------------------------------------------- /fvp/config/m-fp.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Enable M-profile scalar FPU. This includes the double-precision extension, I 4 | # don't see a parameter to disable that in the Corstone-310 FVP, probably 5 | # because Cortex-M85 can't be configured with an SP-only FPU. 6 | cpu0.FPU=1 7 | -------------------------------------------------------------------------------- /fvp/config/m-nofp.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable M-profile scalar FPU 4 | cpu0.FPU=0 5 | -------------------------------------------------------------------------------- /fvp/config/m-pacbti.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Enable M-profile PAC and BTI 4 | cpu0.CFGPACBTI=1 5 | cpu0.ID_ISAR5.PACBTI=1 6 | -------------------------------------------------------------------------------- /fvp/config/mve-fp.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Enable integer and floating-point MVE 4 | cpu0.MVE=2 5 | -------------------------------------------------------------------------------- /fvp/config/mve-int.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Enable integer-only MVE 4 | cpu0.MVE=1 5 | -------------------------------------------------------------------------------- /fvp/config/mve-none.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable MVE 4 | cpu0.MVE=0 5 | -------------------------------------------------------------------------------- /fvp/config/v8a-aarch32.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable GUI visualisation. 4 | bp.vis.disable_visualisation=1 5 | 6 | # Silence output about telnet ports. 7 | bp.terminal_0.quiet=1 8 | bp.terminal_1.quiet=1 9 | bp.terminal_2.quiet=1 10 | bp.terminal_3.quiet=1 11 | 12 | # We only want a single core 13 | cluster0.NUM_CORES=1 14 | cluster1.NUM_CORES=0 15 | 16 | # All memory is non-secure, so we can boot straight into main DRAM. 17 | bp.secure_memory=0 18 | 19 | # Boot in AArch32 mode 20 | cluster0.cpu0.CONFIG64=0 21 | -------------------------------------------------------------------------------- /fvp/config/v8a-aarch64.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable GUI visualisation. 4 | bp.vis.disable_visualisation=1 5 | 6 | # Silence output about telnet ports. 7 | bp.terminal_0.quiet=1 8 | bp.terminal_1.quiet=1 9 | bp.terminal_2.quiet=1 10 | bp.terminal_3.quiet=1 11 | 12 | # We only want a single core 13 | cluster0.NUM_CORES=1 14 | cluster1.NUM_CORES=0 15 | 16 | # All memory is non-secure, so we can boot straight into main DRAM. 17 | bp.secure_memory=0 18 | 19 | # Boot in AArch64 mode 20 | cluster0.cpu0.CONFIG64=1 21 | -------------------------------------------------------------------------------- /fvp/config/v8r-aarch32.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable GUI visualisation. 4 | bp.vis.disable_visualisation=1 5 | 6 | # Silence output about telnet ports. 7 | bp.terminal_0.quiet=1 8 | bp.terminal_1.quiet=1 9 | bp.terminal_2.quiet=1 10 | bp.terminal_3.quiet=1 11 | 12 | # We only want a single core 13 | cluster0.NUM_CORES=1 14 | 15 | # AArch32 mode 16 | cluster0.has_aarch64=0 17 | -------------------------------------------------------------------------------- /fvp/config/v8r-aarch64.cfg: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: Copyright 2024 Arm Limited and/or its affiliates 2 | 3 | # Disable GUI visualisation. 4 | bp.vis.disable_visualisation=1 5 | 6 | # Silence output about telnet ports. 7 | bp.terminal_0.quiet=1 8 | bp.terminal_1.quiet=1 9 | bp.terminal_2.quiet=1 10 | bp.terminal_3.quiet=1 11 | 12 | # We only want a single core 13 | cluster0.NUM_CORES=1 14 | 15 | # AArch64 mode 16 | cluster0.has_aarch64=1 17 | 18 | # Suppress some warnings caused by defaults not valid for AArch64, these values 19 | # all come from the warning message if you leave them at the default. 20 | cluster0.gicv3.cpuintf-mmap-access-level=2 21 | cluster0.gicv3.SRE-enable-action-on-mmap=2 22 | cluster0.gicv3.SRE-EL2-enable-RAO=1 23 | cluster0.gicv3.extended-interrupt-range-support=1 24 | -------------------------------------------------------------------------------- /llvmlibc-samples/src/llvmlibc/baremetal-semihosting/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2020-2024, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.c 23 | ../$(BIN_PATH)/clang --config=llvmlibc.cfg $(MICROBIT_TARGET) -nostartfiles -lsemihost -g -fno-exceptions -fno-rtti -T microbit-llvmlibc.ld -o hello.elf $^ 24 | 25 | %.hex: %.elf 26 | ../$(BIN_PATH)/llvm-objcopy -O ihex $< $@ 27 | 28 | run: hello.hex 29 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 30 | 31 | debug: hello.hex 32 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 33 | 34 | clean: 35 | rm -f *.elf *.hex 36 | 37 | .PHONY: clean run debug 38 | -------------------------------------------------------------------------------- /llvmlibc-samples/src/llvmlibc/baremetal-semihosting/crt0llvmlibc.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, Arm Limited and affiliates. 2 | // SPDX-License-Identifier: Apache-2.0 3 | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | extern int main(int argc, char** argv); 22 | 23 | extern void _platform_init(); 24 | 25 | extern char __data_source[]; 26 | extern char __data_start[]; 27 | extern char __data_end[]; 28 | extern char __data_size[]; 29 | extern char __bss_start[]; 30 | extern char __bss_end[]; 31 | extern char __bss_size[]; 32 | extern char __tls_base[]; 33 | extern char __tdata_end[]; 34 | extern char __tls_end[]; 35 | 36 | void _start(void) { 37 | memcpy(__data_start, __data_source, (size_t) __data_size); 38 | memset(__bss_start, 0, (size_t) __bss_size); 39 | _platform_init(); 40 | _Exit(main(0, NULL)); 41 | } 42 | -------------------------------------------------------------------------------- /llvmlibc-samples/src/llvmlibc/baremetal-semihosting/hello.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, Arm Limited and affiliates. 2 | // SPDX-License-Identifier: Apache-2.0 3 | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | // Implementation of errno 23 | int *__llvm_libc_errno() { 24 | static int internal_err; 25 | return &internal_err; 26 | } 27 | 28 | // Example that uses heap, string and math library. 29 | 30 | int main(void) { 31 | const char *hello_s = "hello "; 32 | const char *world_s = "world"; 33 | const size_t hello_s_len = strlen(hello_s); 34 | const size_t world_s_len = strlen(world_s); 35 | const size_t out_s_len = hello_s_len + world_s_len + 1; 36 | char *out_s = (char*) malloc(out_s_len); 37 | assert(out_s_len >= hello_s_len + 1); 38 | strncpy(out_s, hello_s, hello_s_len + 1); 39 | assert(out_s_len >= strlen(out_s) + world_s_len + 1); 40 | strncat(out_s, world_s, world_s_len + 1); 41 | // 2024-10-17 Embedded printf implementation does not currently 42 | // support printing floating point numbers. 43 | printf("%s %li\n", out_s, lround(400000 * atanf(1.0f))); 44 | free(out_s); 45 | return 0; 46 | } 47 | -------------------------------------------------------------------------------- /llvmlibc-support/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2022, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | # This directory builds two additional library files to go with llvm-libc: 19 | # 20 | # libcrt0.a contains an implementation of the _start() default entry point, 21 | # which sets up the stack and does any necessary initialization before 22 | # calling main(). 23 | # 24 | # libsemihost.a implements llvm-libc's porting function API such as 25 | # __llvm_libc_stdio_write, in terms of the Arm semihosting system. 26 | # 27 | # To use LLVM libc in a semihosting context, include both of these 28 | # libraries. To use it in a different context, you will need to 29 | # reimplement the same functions that libsemihost.a provides, but 30 | # libcrt0.a might still be useful. 31 | 32 | cmake_minimum_required(VERSION 3.20.0) 33 | project(llvmlibc-support LANGUAGES C ASM) 34 | 35 | add_library(semihost STATIC 36 | init.c 37 | exit.c 38 | stdio_read.c 39 | stdio_write.c 40 | ) 41 | 42 | add_library(crt0 STATIC 43 | crt0.c 44 | ) 45 | 46 | install(TARGETS semihost crt0) 47 | -------------------------------------------------------------------------------- /llvmlibc-support/crt0.c: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | #include 19 | #include 20 | 21 | #include "platform.h" 22 | 23 | int main(int, char **); 24 | 25 | __attribute__((used)) static void c_startup(void) { 26 | _platform_init(); 27 | _Exit(main(0, NULL)); 28 | } 29 | 30 | extern long __stack[]; 31 | __attribute__((naked)) void _start(void) { 32 | __asm__("mov sp, %0" : : "r"(__stack)); 33 | __asm__("b c_startup"); 34 | } 35 | -------------------------------------------------------------------------------- /llvmlibc-support/exit.c: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | #include 19 | 20 | #include "semihost.h" 21 | 22 | void __llvm_libc_exit(int status) { 23 | 24 | #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE 25 | size_t block[2]; 26 | block[0] = ADP_Stopped_ApplicationExit; 27 | block[1] = status; 28 | semihosting_call(SYS_EXIT, block); 29 | #else 30 | semihosting_call(SYS_EXIT, (const void *)ADP_Stopped_ApplicationExit); 31 | #endif 32 | 33 | __builtin_unreachable(); /* semihosting call doesn't return */ 34 | } 35 | -------------------------------------------------------------------------------- /llvmlibc-support/init.c: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | #include 19 | 20 | #include "platform.h" 21 | #include "semihost.h" 22 | 23 | struct __llvm_libc_stdio_cookie __llvm_libc_stdin_cookie; 24 | struct __llvm_libc_stdio_cookie __llvm_libc_stdout_cookie; 25 | struct __llvm_libc_stdio_cookie __llvm_libc_stderr_cookie; 26 | 27 | static void stdio_open(struct __llvm_libc_stdio_cookie *cookie, int mode) { 28 | size_t args[3]; 29 | args[0] = (size_t) ":tt"; 30 | args[1] = (size_t)mode; 31 | args[2] = (size_t)3; /* name length */ 32 | cookie->handle = semihosting_call(SYS_OPEN, args); 33 | } 34 | 35 | void _platform_init(void) { 36 | stdio_open(&__llvm_libc_stdin_cookie, OPENMODE_R); 37 | stdio_open(&__llvm_libc_stdout_cookie, OPENMODE_W); 38 | stdio_open(&__llvm_libc_stderr_cookie, OPENMODE_W); 39 | } 40 | -------------------------------------------------------------------------------- /llvmlibc-support/platform.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | // This header file defines the interface between libcrt0.a, which defines 19 | // the program entry point, and libsemihost.a, which implements the 20 | // LLVM-libc porting functions in terms of semihosting. If you replace 21 | // libsemihost.a with something else, this header file shows how to make 22 | // that work with libcrt0.a. 23 | 24 | #ifndef LLVMET_LLVMLIBC_SUPPORT_PLATFORM_H 25 | #define LLVMET_LLVMLIBC_SUPPORT_PLATFORM_H 26 | 27 | // libcrt0.a will call this function after the stack pointer is 28 | // initialized. If any setup specific to the libc porting layer is 29 | // needed, this is where to do it. For example, in semihosting, the 30 | // standard I/O handles must be opened via the SYS_OPEN operation, and 31 | // this function is where libsemihost.a does it. 32 | void _platform_init(void); 33 | 34 | #endif // LLVMET_LLVMLIBC_SUPPORT_PLATFORM_H 35 | -------------------------------------------------------------------------------- /llvmlibc-support/stdio_read.c: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | #include 19 | 20 | #include "semihost.h" 21 | 22 | ssize_t __llvm_libc_stdio_read(struct __llvm_libc_stdio_cookie *cookie, 23 | const char *buf, size_t size) { 24 | size_t args[4]; 25 | args[0] = (size_t)cookie->handle; 26 | args[1] = (size_t)buf; 27 | args[2] = (size_t)size; 28 | args[3] = 0; 29 | ssize_t retval = semihosting_call(SYS_READ, args); 30 | if (retval >= 0) 31 | retval = size - retval; 32 | return retval; 33 | } 34 | -------------------------------------------------------------------------------- /llvmlibc-support/stdio_write.c: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) 2022, Arm Limited and affiliates. 3 | // SPDX-License-Identifier: Apache-2.0 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); 6 | // you may not use this file except in compliance with the License. 7 | // You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, software 12 | // distributed under the License is distributed on an "AS IS" BASIS, 13 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | // See the License for the specific language governing permissions and 15 | // limitations under the License. 16 | // 17 | 18 | #include 19 | 20 | #include "semihost.h" 21 | 22 | ssize_t __llvm_libc_stdio_write(struct __llvm_libc_stdio_cookie *cookie, 23 | const char *buf, size_t size) { 24 | size_t args[4]; 25 | args[0] = (size_t)cookie->handle; 26 | args[1] = (size_t)buf; 27 | args[2] = (size_t)size; 28 | ssize_t retval = semihosting_call(SYS_WRITE, args); 29 | if (retval >= 0) 30 | retval = size - retval; 31 | return retval; 32 | } 33 | -------------------------------------------------------------------------------- /llvmlibc.cfg: -------------------------------------------------------------------------------- 1 | --sysroot /../lib/clang-runtimes/llvmlibc 2 | -------------------------------------------------------------------------------- /newlib.cfg: -------------------------------------------------------------------------------- 1 | --sysroot /../lib/clang-runtimes/newlib 2 | -------------------------------------------------------------------------------- /packagetest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(LLVM_ENABLE_BACKTRACES) 2 | set(ENABLE_BACKTRACES 1) 3 | endif() 4 | llvm_canonicalize_cmake_booleans( 5 | ENABLE_BACKTRACES 6 | ) 7 | 8 | # If samples are included in the package then use the packaged samples in 9 | # post-package tests, otherwise use the samples from the source directory. 10 | if(llvm-toolchain-samples IN_LIST LLVM_TOOLCHAIN_DISTRIBUTION_COMPONENTS) 11 | set(samples_dir ${unpack_directory}/samples) 12 | else() 13 | set(samples_dir ${CMAKE_CURRENT_SOURCE_DIR}/../samples) 14 | endif() 15 | 16 | configure_lit_site_cfg( 17 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in 18 | ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py 19 | MAIN_CONFIG 20 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py 21 | ) 22 | 23 | list(APPEND LLVM_TOOLCHAIN_PACKAGE_TEST_DEPS 24 | unpack-llvm-toolchain 25 | FileCheck 26 | count 27 | not 28 | ) 29 | 30 | add_lit_testsuite(check-package-llvm-toolchain 31 | "Running LLVM Embedded Toolchain for Arm package tests" 32 | ${CMAKE_CURRENT_BINARY_DIR} 33 | DEPENDS ${LLVM_TOOLCHAIN_PACKAGE_TEST_DEPS} 34 | ) 35 | 36 | add_lit_testsuites(package-llvm-toolchain ${CMAKE_CURRENT_SOURCE_DIR} 37 | DEPENDS ${LLVM_TOOLCHAIN_PACKAGE_TEST_DEPS} 38 | ) 39 | -------------------------------------------------------------------------------- /packagetest/Inputs/microbit.ld: -------------------------------------------------------------------------------- 1 | __boot_flash = 0x00000000; /* fragment of the flash where interrupt vector goes */ 2 | __boot_flash_size = 0x1000; /* length of flash fragment with interrupt vector */ 3 | __flash = 0x00001000; /* starting address of the remaining flash */ 4 | __flash_size = 0x3f000; /* length of the remaining flash */ 5 | __ram = 0x20000000; /* starting address of RAM bank 0 */ 6 | __ram_size = 0x4000; /* length of RAM bank 0 */ 7 | __stack_size = 512; 8 | 9 | INCLUDE picolibcpp.ld 10 | -------------------------------------------------------------------------------- /packagetest/README.md: -------------------------------------------------------------------------------- 1 | This directory contains LLVM lit tests to be run against LLVM Embedded 2 | Toolchain for Arm that has been extracted from a package in the same way 3 | that a user of the product would. This is unlike the tests in the test 4 | directory, which run against tools in the build directory. 5 | 6 | You can run the tests ensuring that all dependencies are built: 7 | 8 | ninja check-package-llvm-toolchain 9 | 10 | Or run the tests with lit directly: 11 | 12 | ${BUILD_DIR}/llvm/bin/llvm-lit -sv ${BUILD_DIR}/packagetest 13 | -------------------------------------------------------------------------------- /packagetest/baremetal-semihosting-aarch64.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/baremetal-semihosting-aarch64 clean 2 | # RUN: make -C %samples_dir/src/baremetal-semihosting-aarch64 run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/baremetal-semihosting-aarch64 clean 4 | # CHECK: Hello World! 5 | -------------------------------------------------------------------------------- /packagetest/baremetal-semihosting.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/baremetal-semihosting clean 2 | # RUN: make -C %samples_dir/src/baremetal-semihosting run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/baremetal-semihosting clean 4 | # CHECK: Hello World! 5 | -------------------------------------------------------------------------------- /packagetest/baremetal-uart.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/baremetal-uart clean 2 | # The sample never terminates so we can't run it here, but we can at 3 | # least make sure it builds. 4 | # RUN: make -C %samples_dir/src/baremetal-uart build BIN_PATH=%unpack_directory/bin 5 | # RUN: make -C %samples_dir/src/baremetal-uart clean 6 | -------------------------------------------------------------------------------- /packagetest/cpp-baremetal-semihosting-cfi.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi clean 2 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi clean 4 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi build-no-cfi 5 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s --check-prefix=NOCFI 6 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-cfi clean 7 | # CHECK-NOT: Bad 8 | # CHECK: hardfault 9 | # NOCFI: Bad 10 | # NOCFI: C++ CFI sample 11 | -------------------------------------------------------------------------------- /packagetest/cpp-baremetal-semihosting-exceptions.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-exceptions clean 2 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-exceptions run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-exceptions clean 4 | # CHECK: No exceptions. 5 | # CHECK: Exception caught. 6 | -------------------------------------------------------------------------------- /packagetest/cpp-baremetal-semihosting-prof.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-prof clean 2 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-prof run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-prof clean 4 | # CHECK: 1 2 3 4 5 5 | -------------------------------------------------------------------------------- /packagetest/cpp-baremetal-semihosting-ubsan.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-ubsan clean 2 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-ubsan run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting-ubsan clean 4 | # CHECK: UBSAN: add-overflow (recovered) 5 | # CHECK: C++ UBSan sample 6 | -------------------------------------------------------------------------------- /packagetest/cpp-baremetal-semihosting.test: -------------------------------------------------------------------------------- 1 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting clean 2 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting run BIN_PATH=%unpack_directory/bin 2>&1 | FileCheck %s 3 | # RUN: make -C %samples_dir/src/cpp-baremetal-semihosting clean 4 | # CHECK: 1 2 3 4 5 5 | -------------------------------------------------------------------------------- /packagetest/hello.c: -------------------------------------------------------------------------------- 1 | // RUN: %clang --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -nostartfiles -lcrt0-semihost -lsemihost -T %S/Inputs/microbit.ld %s -o %t.out 2 | // RUN: qemu-system-arm -M microbit -semihosting -nographic -device loader,file=%t.out 2>&1 | FileCheck %s 3 | 4 | #include 5 | 6 | int main(void) { 7 | printf("Hello World!\n"); // CHECK: Hello World! 8 | return 0; 9 | } 10 | -------------------------------------------------------------------------------- /packagetest/lit.cfg.py: -------------------------------------------------------------------------------- 1 | # -*- Python -*- 2 | 3 | import os 4 | import sys 5 | 6 | import lit.formats 7 | 8 | from lit.llvm import llvm_config 9 | from lit.llvm.subst import FindTool, ToolSubst 10 | 11 | # Configuration file for the 'lit' test runner. 12 | 13 | config.name = 'package' 14 | config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) 15 | config.suffixes = ['.c', '.cpp', '.test'] 16 | config.excludes = ['CMakeLists.txt', 'README.md'] 17 | config.test_source_root = os.path.dirname(__file__) 18 | 19 | 20 | # Copy-pasted from use_default_substitutions in 21 | # llvm-project/llvm/utils/lit/lit/llvm/config.py 22 | # FileCheck is not packaged so we need to get it from a different directory. 23 | tool_patterns = [ 24 | ToolSubst("FileCheck", unresolved="fatal"), 25 | # Handle these specially as they are strings searched for during 26 | # testing. 27 | ToolSubst( 28 | r"\| \bcount\b", 29 | command=FindTool("count"), 30 | verbatim=True, 31 | unresolved="fatal", 32 | ), 33 | ToolSubst( 34 | r"\| \bnot\b", 35 | command=FindTool("not"), 36 | verbatim=True, 37 | unresolved="fatal", 38 | ), 39 | ] 40 | llvm_config.config.substitutions.append(("%python", '"%s"' % (sys.executable))) 41 | llvm_config.add_tool_substitutions(tool_patterns, [os.path.join(config.llvm_obj_root, "bin")]) 42 | llvm_config.add_err_msg_substitutions() 43 | llvm_config.use_clang() 44 | llvm_config.config.substitutions.append(("%samples_dir", '"%s"' % config.samples_dir)) 45 | llvm_config.config.substitutions.append(("%unpack_directory", '"%s"' % config.unpack_directory)) 46 | 47 | config.environment["CLANG_NO_DEFAULT_CONFIG"] = "1" 48 | -------------------------------------------------------------------------------- /packagetest/lit.site.cfg.py.in: -------------------------------------------------------------------------------- 1 | @LIT_SITE_CFG_IN_HEADER@ 2 | 3 | config.llvm_src_root = "@LLVM_SOURCE_DIR@" 4 | config.llvm_obj_root = "@LLVM_BINARY_DIR@" 5 | config.unpack_directory = lit_config.substitute("@unpack_directory@") 6 | config.samples_dir = lit_config.substitute("@samples_dir@") 7 | config.llvm_tools_dir = lit_config.substitute("@unpack_directory@/bin") 8 | config.llvm_libs_dir = lit_config.substitute("@unpack_directory@/lib") 9 | config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" 10 | config.enable_backtrace = @ENABLE_BACKTRACES@ 11 | config.errc_messages = "@LLVM_LIT_ERRC_MESSAGES@" 12 | config.host_triple = "@LLVM_HOST_TRIPLE@" 13 | config.target_triple = "@LLVM_DEFAULT_TARGET_TRIPLE@" 14 | config.python_executable = "@Python3_EXECUTABLE@" 15 | config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" 16 | 17 | import lit.llvm 18 | lit.llvm.initialize(lit_config, config) 19 | 20 | # Let the main config do the real work. 21 | lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py") 22 | -------------------------------------------------------------------------------- /patches/llvm-project/0001-libc-tests-with-picolibc-xfail-one-remaining-test.patch: -------------------------------------------------------------------------------- 1 | From 623881f1ea465f9c1837981db143f7225108580a Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Dominik=20W=C3=B3jt?= 3 | Date: Mon, 16 Oct 2023 11:35:48 +0200 4 | Subject: [libc++] tests with picolibc: xfail one remaining test 5 | 6 | --- 7 | .../language.support/support.start.term/quick_exit.pass.cpp | 3 +++ 8 | 1 file changed, 3 insertions(+) 9 | 10 | diff --git a/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp b/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp 11 | index d8eff69cb53f..e16048df722e 100644 12 | --- a/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp 13 | +++ b/libcxx/test/std/language.support/support.start.term/quick_exit.pass.cpp 14 | @@ -17,6 +17,9 @@ 15 | 16 | // test quick_exit and at_quick_exit 17 | 18 | +// TODO: Find out why the at_quick_exit symbol is not found. 19 | +// XFAIL: LIBCXX-PICOLIBC-FIXME 20 | + 21 | #include 22 | 23 | void f() {} 24 | -- 25 | 2.39.5 (Apple Git-154) 26 | 27 | -------------------------------------------------------------------------------- /patches/llvm-project/0003-Disable-failing-compiler-rt-test.patch: -------------------------------------------------------------------------------- 1 | From 0f8dc80a7642430c8d02c36283766aeb5a59a331 Mon Sep 17 00:00:00 2001 2 | From: Piotr Przybyla 3 | Date: Wed, 15 Nov 2023 16:04:24 +0000 4 | Subject: Disable failing compiler-rt test 5 | 6 | --- 7 | compiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c | 2 ++ 8 | 1 file changed, 2 insertions(+) 9 | 10 | diff --git a/compiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c b/compiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c 11 | index 2ff65a8b9ec3..98611a75e85f 100644 12 | --- a/compiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c 13 | +++ b/compiler-rt/test/builtins/Unit/arm/aeabi_uldivmod_test.c 14 | @@ -1,3 +1,5 @@ 15 | +// This fails when libcxx is built with exceptions 16 | +// UNSUPPORTED: armv6m-target-arch 17 | // REQUIRES: arm-target-arch || armv6m-target-arch 18 | // RUN: %clang_builtins %s %librt -o %t && %run %t 19 | 20 | -- 21 | 2.39.5 (Apple Git-154) 22 | 23 | -------------------------------------------------------------------------------- /patches/picolibc/0002-Define-picocrt_machines-for-AArch32-builds-as-well-a.patch: -------------------------------------------------------------------------------- 1 | From c9a704b1322aec5f699e2962368bbffd286eb010 Mon Sep 17 00:00:00 2001 2 | From: Simi Pallipurath 3 | Date: Thu, 14 Nov 2024 10:12:33 +0000 4 | Subject: Define picocrt_machines for AArch32 builds as well as 64. 5 | 6 | Our cmake build command for picolibc unconditionally includes 7 | `-Dtest-machine=...`, which depends on this being defined. 8 | --- 9 | picocrt/machine/arm/meson.build | 7 +++++++ 10 | 1 file changed, 7 insertions(+) 11 | 12 | diff --git a/picocrt/machine/arm/meson.build b/picocrt/machine/arm/meson.build 13 | index 808d691a5..ecc9a485b 100644 14 | --- a/picocrt/machine/arm/meson.build 15 | +++ b/picocrt/machine/arm/meson.build 16 | @@ -33,3 +33,10 @@ 17 | # OF THE POSSIBILITY OF SUCH DAMAGE. 18 | # 19 | src_picocrt += files('crt0.c') 20 | + 21 | +picocrt_machines += [ 22 | + { 23 | + 'name': 'fvp', 24 | + 'suffix': '-fvp', 25 | + }, 26 | +] 27 | -- 28 | 2.43.0 29 | 30 | -------------------------------------------------------------------------------- /requirements-lint.txt: -------------------------------------------------------------------------------- 1 | # Lint tools and their dependencies. 2 | # Used by run-precommit-checks.sh and Github workflows. 3 | cmakelint==1.4.2 4 | -------------------------------------------------------------------------------- /run-precommit-checks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -d ./venv ]; then 4 | echo "Please run ./setup.sh" 5 | exit 1 6 | fi 7 | 8 | . ./venv/bin/activate 9 | pip3 -q install -r requirements-lint.txt 10 | 11 | echo "Checking with CMakeLint" 12 | cmakelint CMakeLists.txt 13 | -------------------------------------------------------------------------------- /samples/.gitignore: -------------------------------------------------------------------------------- 1 | **/*.elf 2 | **/*.hex 3 | -------------------------------------------------------------------------------- /samples/Makefile.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2020-2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | ifndef BIN_PATH 19 | BIN_PATH=../../../bin 20 | endif 21 | 22 | MICROBIT_TARGET=--target=armv6m-none-eabi -march=armv6m -mfpu=none -mfloat-abi=soft 23 | AARCH64_TARGET=--target=aarch64-none-elf 24 | 25 | CRT_SEMIHOST=-nostartfiles -lcrt0-semihost -lsemihost 26 | 27 | CPP_FLAGS=-fno-exceptions -fno-rtti 28 | -------------------------------------------------------------------------------- /samples/ldscripts/microbit.ld: -------------------------------------------------------------------------------- 1 | __boot_flash = 0x00000000; /* fragment of the flash where interrupt vector goes */ 2 | __boot_flash_size = 0x3000; /* length of flash fragment with interrupt vector */ 3 | __flash = 0x00003000; /* starting address of the remaining flash */ 4 | __flash_size = 0x3d000; /* length of the remaining flash */ 5 | __ram = 0x20000000; /* starting address of RAM bank 0 */ 6 | __ram_size = 0x4000; /* length of RAM bank 0 */ 7 | __stack_size = 512; 8 | 9 | INCLUDE picolibcpp.ld 10 | -------------------------------------------------------------------------------- /samples/ldscripts/raspi3b.ld: -------------------------------------------------------------------------------- 1 | /* 2 | Raspberry Pi does not have flash, but to accommodate for the picolibc.ld, we 3 | put the boot_flash, flash and ram momory in Raspberry's RAM. The boot_flash 4 | memory has to be put at fixed address. The flash and ram memory are placed 5 | arbitrarily. 6 | 7 | This is enough for simple testing, for real projects appropriate custom 8 | linker script file should be provided. 9 | */ 10 | __boot_flash = 0x80000; /* Default firmware address for Rapberry Pi 3 */ 11 | __boot_flash_size = 0x1000; 12 | __flash = 0x10000000; 13 | __flash_size = 0x10000000; 14 | __ram = 0x20000000; 15 | __ram_size = 0x20000000; 16 | __stack_size = 4096; 17 | 18 | INCLUDE picolibcpp.ld 19 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting-aarch64/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2020-2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.c 23 | $(BIN_PATH)/clang $(AARCH64_TARGET) $(CRT_SEMIHOST) -g -T ../../ldscripts/raspi3b.ld -o hello.elf $^ 24 | 25 | %.img: %.elf 26 | $(BIN_PATH)/llvm-objcopy -O binary $< $@ 27 | 28 | run: hello.img 29 | qemu-system-aarch64 -M raspi3b -semihosting -nographic -kernel $< 30 | 31 | debug: hello.img 32 | qemu-system-aarch64 -M raspi3b -semihosting -nographic -kernel $< -s -S 33 | 34 | clean: 35 | rm -f *.elf *.img 36 | 37 | .PHONY: clean run debug 38 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting-aarch64/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal AArch64 semihosting sample 2 | 3 | This sample shows how to use semihosting with 4 | [QEMU Arm System emulator](https://www.qemu.org/docs/master/system/target-arm.html) 5 | targeting the 6 | [Raspberry Pi 3 Model B](https://www.qemu.org/docs/master/system/arm/raspi.html). 7 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting-aarch64/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | printf("Hello World!\n"); 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting-aarch64/make.bat: -------------------------------------------------------------------------------- 1 | @REM Copyright (c) 2023, Arm Limited and affiliates. 2 | @REM SPDX-License-Identifier: Apache-2.0 3 | @REM 4 | @REM Licensed under the Apache License, Version 2.0 (the "License"); 5 | @REM you may not use this file except in compliance with the License. 6 | @REM You may obtain a copy of the License at 7 | @REM 8 | @REM http://www.apache.org/licenses/LICENSE-2.0 9 | @REM 10 | @REM Unless required by applicable law or agreed to in writing, software 11 | @REM distributed under the License is distributed on an "AS IS" BASIS, 12 | @REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @REM See the License for the specific language governing permissions and 14 | @REM limitations under the License. 15 | 16 | @if [%1]==[] goto :target_empty 17 | @set target=%1 18 | @goto :make 19 | :target_empty 20 | @set target=build 21 | 22 | :make 23 | @if [%target%]==[build] goto :build 24 | @if [%target%]==[run] goto :run 25 | @if [%target%]==[clean] goto :clean 26 | @echo Error: unknown target "%target%" 27 | @exit /B 1 28 | 29 | :build 30 | @if [%BIN_PATH%]==[] goto :bin_path_empty 31 | @call :build_fn 32 | @exit /B 33 | 34 | :run 35 | @if exist hello.img goto :do_run 36 | @if [%BIN_PATH%]==[] goto :bin_path_empty 37 | @call :build_fn 38 | :do_run 39 | qemu-system-aarch64.exe -M raspi3b -semihosting -nographic -kernel hello.img 40 | @exit /B 41 | 42 | :clean 43 | if exist hello.elf del /q hello.elf 44 | if exist hello.img del /q hello.img 45 | @exit /B 46 | 47 | :bin_path_empty 48 | @echo Error: BIN_PATH environment variable is not set 49 | @exit /B 1 50 | 51 | :build_fn 52 | %BIN_PATH%\clang.exe --target=aarch64-none-elf -nostartfiles -lcrt0-semihost -lsemihost -g -T ..\..\ldscripts\raspi3b.ld -o hello.elf hello.c 53 | %BIN_PATH%\llvm-objcopy.exe -O binary hello.elf hello.img 54 | @exit /B 55 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2020-2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.c 23 | $(BIN_PATH)/clang $(MICROBIT_TARGET) $(CRT_SEMIHOST) -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 24 | 25 | %.hex: %.elf 26 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 27 | 28 | run: hello.hex 29 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 30 | 31 | debug: hello.hex 32 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 33 | 34 | clean: 35 | rm -f *.elf *.hex 36 | 37 | .PHONY: clean run debug 38 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal semihosting sample 2 | 3 | This sample shows how to use semihosting with 4 | [QEMU Arm System emulator](https://www.qemu.org/docs/master/system/target-arm.html) 5 | targeting the 6 | [micro:bit board model](https://www.qemu.org/2019/05/22/microbit/). 7 | -------------------------------------------------------------------------------- /samples/src/baremetal-semihosting/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | printf("Hello World!\n"); 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /samples/src/baremetal-uart/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2020-2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.c 23 | $(BIN_PATH)/clang $(MICROBIT_TARGET) -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 24 | 25 | %.hex: %.elf 26 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 27 | 28 | run: hello.hex 29 | qemu-system-arm -M microbit -nographic -device loader,file=$< 30 | 31 | debug: hello.hex 32 | qemu-system-arm -M microbit -nographic -device loader,file=$< -s -S 33 | 34 | clean: 35 | rm -f *.elf *.hex 36 | 37 | .PHONY: clean run debug 38 | -------------------------------------------------------------------------------- /samples/src/baremetal-uart/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal sample without semihosting 2 | 3 | This sample shows how to use 4 | [QEMU Arm System emulator](https://www.qemu.org/docs/master/system/target-arm.html) 5 | without semihosting targeting the 6 | [micro:bit board model](https://www.qemu.org/2019/05/22/microbit/). 7 | 8 | _Note: The sample code hangs at the end of the execution in an infinite loop! Use ``Ctrl-a x`` to terminate._ 9 | -------------------------------------------------------------------------------- /samples/src/baremetal-uart/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // https://infocenter.nordicsemi.com/pdf/nRF51_RM_v3.0.pdf sections 14.2 and 29.10 4 | 5 | #define DEFINE_PORT(name,address) volatile unsigned int* name = (unsigned int*) address 6 | 7 | DEFINE_PORT(gpio_dir_set, 0x50000518); 8 | 9 | DEFINE_PORT(uart_starttx, 0x40002008); 10 | DEFINE_PORT(uart_txdrdy, 0x4000211C); 11 | DEFINE_PORT(uart_enable, 0x40002500); 12 | DEFINE_PORT(uart_pseltxd, 0x4000250C); 13 | DEFINE_PORT(uart_txd, 0x4000251C); 14 | DEFINE_PORT(uart_baud_rate, 0x40002524); 15 | DEFINE_PORT(uart_config, 0x4000256C); 16 | 17 | __attribute__ ((noinline)) void delay(int cycles) 18 | { 19 | for (int c = cycles; --c; ) { 20 | // prevent the compiler from optimising out the loop 21 | asm(""); 22 | } 23 | } 24 | 25 | void uart_init() 26 | { 27 | *gpio_dir_set = 1 << 24; 28 | *uart_baud_rate = 0x01D7E000; // 115200 29 | *uart_config = 0; 30 | *uart_pseltxd = 24; 31 | *uart_enable = 4; 32 | *uart_starttx = 1; 33 | 34 | delay(1000); 35 | } 36 | 37 | int uart_putc(char ch, FILE* file) 38 | { 39 | (void) file; /* unused */ 40 | 41 | *uart_txdrdy = 0; 42 | *uart_txd = ch; 43 | while (!*uart_txdrdy) {}; 44 | 45 | return ch; 46 | } 47 | 48 | /* Redirect sdtio as per https://github.com/picolibc/picolibc/blob/main/doc/os.md */ 49 | static FILE __stdio = FDEV_SETUP_STREAM(uart_putc, NULL, NULL, _FDEV_SETUP_WRITE); 50 | FILE *const stdin = &__stdio; 51 | __strong_reference(stdin, stdout); 52 | __strong_reference(stdin, stderr); 53 | 54 | int main(void) 55 | { 56 | uart_init(); 57 | printf("Hello World!"); 58 | return 0; 59 | } 60 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-cfi/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | build-no-cfi: hello-no-cfi.elf 22 | 23 | hello.elf: *.cpp 24 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CPP_FLAGS) -flto -fsanitize=cfi -fvisibility=hidden -fno-sanitize-ignorelist -g -c $^ 25 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -flto -T ../../ldscripts/microbit.ld -g -o hello.elf hello.o 26 | 27 | hello-no-cfi.elf: *.cpp 28 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CPP_FLAGS) -flto -g -c $^ 29 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -flto -T ../../ldscripts/microbit.ld -g -o hello.elf hello.o 30 | 31 | %.hex: %.elf 32 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 33 | 34 | run: hello.hex 35 | -qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 36 | 37 | debug: hello.hex 38 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 39 | 40 | clean: 41 | rm -f *.o *.elf *.hex 42 | 43 | .PHONY: clean run debug 44 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-cfi/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal CFI sample 2 | 3 | This sample shows how to use 4 | [Control Flow Integrity (CFI)](https://clang.llvm.org/docs/ControlFlowIntegrity.html) 5 | sanitizer to detect certain kinds of undefined behavior 6 | that can subvert the control flow of C++ code at run-time. 7 | 8 | The default target `make build` enables CFI, 9 | to see the behavior without CFI use the following commands: 10 | ``` 11 | make build-no-cfi 12 | make run 13 | ``` 14 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-cfi/hello.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Base { 4 | public: 5 | virtual ~Base() {} 6 | virtual void print_type() { 7 | std::cout << "Base" << std::endl; 8 | } 9 | }; 10 | 11 | class Good: public Base { 12 | public: 13 | void print_type() override { 14 | std::cout << "Good" << std::endl; 15 | } 16 | }; 17 | 18 | class Bad { // not derived from Base 19 | public: 20 | virtual ~Bad() {} 21 | virtual void print_type() { 22 | std::cout << "Bad" << std::endl; 23 | } 24 | }; 25 | 26 | int main(void) { 27 | Base* base_ptr = reinterpret_cast(new Bad()); 28 | base_ptr->print_type(); 29 | 30 | std::cout << "C++ CFI sample" << std::endl; 31 | 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-exceptions/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2024, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.hex hello-exn.hex 21 | 22 | hello.hex: hello.cpp 23 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -print-multi-directory -g -T ../../ldscripts/microbit.ld -o hello.elf $^ | grep -v "_exn_" 24 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 25 | $(BIN_PATH)/llvm-objcopy -O ihex hello.elf hello.hex 26 | 27 | hello-exn.hex: hello-exn.cpp 28 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) -print-multi-directory -g -T ../../ldscripts/microbit.ld -o hello-exn.elf $^ | grep "_exn_" 29 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) -g -T ../../ldscripts/microbit.ld -o hello-exn.elf $^ 30 | $(BIN_PATH)/llvm-objcopy -O ihex hello-exn.elf hello-exn.hex 31 | 32 | run: hello.hex hello-exn.hex 33 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=hello.hex 34 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=hello-exn.hex 2>&1 | grep "caught" 35 | 36 | clean: 37 | rm -f *.elf *.hex 38 | 39 | .PHONY: clean run 40 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-exceptions/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal semihosting exceptions sample 2 | 3 | This sample shows and tests that C++ exceptions and corresponding 4 | library variant selection work correctly. 5 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-exceptions/hello-exn.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | try { 5 | throw "error"; 6 | } catch(...) { 7 | std::cout << "Exception caught." << std::endl; 8 | return 0; 9 | } 10 | std::cout << "Exception skipped." << std::endl; 11 | return 1; 12 | } 13 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-exceptions/hello.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | std::cout << "No exceptions." << std::endl; 5 | return 0; 6 | } 7 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-prof/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.cpp 23 | $(BIN_PATH)/clang $(MICROBIT_TARGET) -g -c proflib.c 24 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -g -T ../../ldscripts/microbit.ld -fprofile-instr-generate -fcoverage-mapping -o hello.elf hello.cpp proflib.o 25 | 26 | %.hex: %.elf 27 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 28 | 29 | run: hello.hex 30 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 31 | $(BIN_PATH)/llvm-profdata merge -sparse default.profraw -o hello.profdata 32 | $(BIN_PATH)/llvm-cov show hello.elf -instr-profile=hello.profdata 33 | 34 | debug: hello.hex 35 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 36 | 37 | clean: 38 | rm -f *.elf *.hex *.profraw *.profdata *.o 39 | 40 | .PHONY: clean run debug 41 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-prof/README.md: -------------------------------------------------------------------------------- 1 | # Code profiling and coverage sample 2 | 3 | This sample shows how to use instrumentation to emit profile data 4 | and use it to show code coverage. 5 | 6 | Use `make run` to build with instrumentation, run and collect the raw profile data, 7 | then output a visualization of the code coverage. 8 | 9 | NOTE: The upstream runtime implementation changes regularly, 10 | thus `proflib.c` file needs to be updated to keep in sync. 11 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-prof/hello.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() 5 | { 6 | std::vector vec {1, 2, 3, 4, 5}; 7 | 8 | for (auto num: vec) { 9 | std::cout << num << " "; 10 | } 11 | std::cout << std::endl; 12 | 13 | return 0; 14 | } -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-ubsan/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | build-trap: hello-trap.elf 22 | 23 | hello.elf: *.cpp # build with minimal runtime mode 24 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) --std=c++17 -fsanitize=undefined -fsanitize-minimal-runtime -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 25 | 26 | hello-trap.elf: *.cpp # build with trap mode 27 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) --std=c++17 -fsanitize=undefined -fsanitize-trap=all -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 28 | 29 | %.hex: %.elf 30 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 31 | 32 | run: hello.hex 33 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 34 | 35 | debug: hello.hex 36 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 37 | 38 | clean: 39 | rm -f *.elf *.hex 40 | 41 | .PHONY: clean run debug 42 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-ubsan/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal UBSan sample 2 | 3 | This sample shows how to use 4 | [UndefinedBehaviorSanitizer (UBSan)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) 5 | to detect undefined behavior in C++ code at run-time. 6 | 7 | UBSan has two supported modes of operation: trap and minimal runtime, 8 | see `Makefile` for the respective command line options. 9 | 10 | The default `make build` uses the minimal runtime mode. 11 | 12 | Use the following commands to invoke the trap mode: 13 | ``` 14 | make build-trap 15 | make run 16 | ``` 17 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting-ubsan/hello.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) { 5 | int max_int = std::numeric_limits::max(); 6 | [[maybe_unused]] int invoke_ubsan = max_int + max_int; 7 | 8 | std::cout << "C++ UBSan sample" << std::endl; 9 | 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2021-2023, Arm Limited and affiliates. 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | include ../../Makefile.conf 19 | 20 | build: hello.elf 21 | 22 | hello.elf: *.cpp 23 | $(BIN_PATH)/clang++ $(MICROBIT_TARGET) $(CRT_SEMIHOST) $(CPP_FLAGS) -g -T ../../ldscripts/microbit.ld -o hello.elf $^ 24 | 25 | %.hex: %.elf 26 | $(BIN_PATH)/llvm-objcopy -O ihex $< $@ 27 | 28 | run: hello.hex 29 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< 30 | 31 | debug: hello.hex 32 | qemu-system-arm -M microbit -semihosting -nographic -device loader,file=$< -s -S 33 | 34 | clean: 35 | rm -f *.elf *.hex 36 | 37 | .PHONY: clean run debug 38 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting/README.md: -------------------------------------------------------------------------------- 1 | # Bare-metal semihosting sample 2 | 3 | This sample shows how to use semihosting with 4 | [QEMU Arm System emulator](https://www.qemu.org/docs/master/system/target-arm.html) 5 | targeting the 6 | [micro:bit board model](https://www.qemu.org/2019/05/22/microbit/) 7 | to build C++ programs. 8 | -------------------------------------------------------------------------------- /samples/src/cpp-baremetal-semihosting/hello.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void) { 5 | std::vector v = {1, 2, 3}; 6 | v.push_back(4); 7 | v.insert(v.end(), 5); 8 | 9 | for (int elem: v) { 10 | std::cout << elem << " "; 11 | } 12 | std::cout << std::endl; 13 | 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Copyright (c) 2020, Arm Limited and affiliates. 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | # 19 | set -e 20 | 21 | # If your python3 is not just "python3" edit this 22 | PYTHON3=python3 23 | 24 | python_err="Error: Python 3.6 or newer is required." 25 | if command -v "$PYTHON3" --version &> /dev/null 26 | then 27 | pyv=$("$PYTHON3" -c 'from sys import version_info; print("".join(map(str, (version_info.major, version_info.minor))))') 28 | if [ "$pyv" -lt 36 ] 29 | then 30 | echo "$python_err" && exit 1 31 | fi 32 | else 33 | echo "$python_err" && exit 1 34 | fi 35 | 36 | "$PYTHON3" -m venv venv 37 | 38 | . venv/bin/activate 39 | 40 | cd "$(dirname "$0")" 41 | 42 | pip install --upgrade pip 43 | pip install --upgrade wheel 44 | pip install --upgrade setuptools 45 | -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(LLVM_ENABLE_BACKTRACES) 2 | set(ENABLE_BACKTRACES 1) 3 | endif() 4 | llvm_canonicalize_cmake_booleans( 5 | ENABLE_BACKTRACES 6 | ) 7 | 8 | configure_lit_site_cfg( 9 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in 10 | ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py 11 | MAIN_CONFIG 12 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py 13 | ) 14 | 15 | list(APPEND LLVM_TOOLCHAIN_TEST_DEPS 16 | llvm-toolchain 17 | FileCheck 18 | count 19 | not 20 | ) 21 | 22 | add_lit_testsuite(check-llvm-toolchain-lit 23 | "Running LLVM Embedded Toolchain for Arm regression tests" 24 | ${CMAKE_CURRENT_BINARY_DIR} 25 | DEPENDS ${LLVM_TOOLCHAIN_TEST_DEPS} 26 | ) 27 | 28 | add_lit_testsuites(llvm-toolchain-lit ${CMAKE_CURRENT_SOURCE_DIR} 29 | DEPENDS ${LLVM_TOOLCHAIN_TEST_DEPS} 30 | ) 31 | -------------------------------------------------------------------------------- /test/lit.cfg.py: -------------------------------------------------------------------------------- 1 | # -*- Python -*- 2 | 3 | import os 4 | 5 | import lit.formats 6 | 7 | from lit.llvm import llvm_config 8 | 9 | # Configuration file for the 'lit' test runner. 10 | 11 | config.name = 'LLVM Embedded Toolchain for Arm' 12 | config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) 13 | config.suffixes = ['.c', '.cpp', '.test'] 14 | config.excludes = ['CMakeLists.txt'] 15 | config.test_source_root = os.path.dirname(__file__) 16 | 17 | llvm_config.use_default_substitutions() 18 | llvm_config.use_clang() 19 | 20 | config.environment["CLANG_NO_DEFAULT_CONFIG"] = "1" 21 | -------------------------------------------------------------------------------- /test/lit.site.cfg.py.in: -------------------------------------------------------------------------------- 1 | @LIT_SITE_CFG_IN_HEADER@ 2 | 3 | config.llvm_src_root = "@LLVM_SOURCE_DIR@" 4 | config.llvm_obj_root = "@LLVM_BINARY_DIR@" 5 | config.llvm_tools_dir = lit_config.substitute("@LLVM_BINARY_DIR@/bin") 6 | config.llvm_libs_dir = lit_config.substitute("@LLVM_BINARY_DIR@/lib") 7 | config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" 8 | config.enable_backtrace = @ENABLE_BACKTRACES@ 9 | config.errc_messages = "@LLVM_LIT_ERRC_MESSAGES@" 10 | config.host_triple = "@LLVM_HOST_TRIPLE@" 11 | config.target_triple = "@LLVM_DEFAULT_TARGET_TRIPLE@" 12 | config.python_executable = "@Python3_EXECUTABLE@" 13 | config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" 14 | 15 | import lit.llvm 16 | lit.llvm.initialize(lit_config, config) 17 | 18 | # Let the main config do the real work. 19 | lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg.py") 20 | -------------------------------------------------------------------------------- /test/multilib/aarch64_r_supported_variants.test: -------------------------------------------------------------------------------- 1 | # RUN: %clang -print-multi-flags-experimental -S -x c -v - '-###' --target=aarch64-none-elf -march=armv8-r 2>&1 | FileCheck %s --match-full-lines 2 | # RUN: %clang -print-multi-flags-experimental -S -x c -v - '-###' --target=aarch64-none-elf -march=armv8-r -mabi=aapcs-soft 2>&1 | FileCheck %s --match-full-lines 3 | 4 | # CHECK-NOT: error 5 | # CHECK-NOT: warning 6 | -------------------------------------------------------------------------------- /test/multilib/armv4t.test: -------------------------------------------------------------------------------- 1 | # RUN: %clang -print-multi-directory --target=arm-none-eabi -mfpu=none | FileCheck %s 2 | # CHECK: arm-none-eabi/armv4t_exn_rtti{{$}} 3 | # CHECK-EMPTY: 4 | -------------------------------------------------------------------------------- /test/multilib/armv5e.test: -------------------------------------------------------------------------------- 1 | # RUN: %clang -print-multi-directory --target=armv5e-none-eabi -mfpu=none | FileCheck %s 2 | # CHECK: arm-none-eabi/armv5te_exn_rtti{{$}} 3 | # CHECK-EMPTY: 4 | -------------------------------------------------------------------------------- /test/multilib/armv8m.main.test: -------------------------------------------------------------------------------- 1 | # RUN: %clang -print-multi-directory --target=armv8m.main-none-eabi -mfpu=none | FileCheck %s 2 | # CHECK: arm-none-eabi/armv8m.main_soft_nofp_exn_rtti{{$}} 3 | # CHECK-EMPTY: 4 | 5 | # RUN: %clang -print-multi-directory --target=armv8m.main-none-eabihf -mfpu=fpv5-sp-d16 | FileCheck --check-prefix=HARD %s 6 | # HARD: arm-none-eabi/armv8m.main_hard_fp_exn_rtti{{$}} 7 | # HARD-EMPTY: 8 | 9 | # Fallback to armv7m 10 | # RUN: %clang -print-multi-directory --target=armv8m.main-none-eabi -mfpu=fpv5-sp-d16 | FileCheck --check-prefix=SOFTFP %s 11 | # SOFTFP: arm-none-eabi/armv7m_soft_fpv4_sp_d16_exn_rtti_unaligned{{$}} 12 | # SOFTFP-EMPTY: 13 | -------------------------------------------------------------------------------- /test/multilib/fpus.test: -------------------------------------------------------------------------------- 1 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv7m -mfpu=fpv5-d16 | FileCheck --check-prefixes=VFPV4-D16,FPV4-SP-D16,FPV5-SP-D16 %s 2 | 3 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv7m -mfpu=fpv5-sp-d16 | FileCheck --check-prefix=FPV4-SP-D16 %s 4 | 5 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv7m -mfpu=vfpv4-d16 | FileCheck --check-prefix=FPV4-SP-D16 %s 6 | 7 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv7m -mfpu=fp-armv8-fullfp16-d16 | FileCheck --check-prefix=FP-ARMV8-FULLFP16-SP-D16 %s 8 | 9 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv8 -mfpu=crypto-neon-fp-armv8 | FileCheck --check-prefixes=NEON-FP-ARMV8,NEON-VFPV4,FP-ARMV8 %s 10 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv8 -mfpu=neon-fp-armv8 | FileCheck --check-prefixes=NEON-VFPV4,FP-ARMV8 %s 11 | 12 | # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -march=armv8 -mfpu=vfpv3-d16 | FileCheck --check-prefixes=VFPV2,VFPV3XD %s 13 | 14 | # FP-ARMV8-FULLFP16-SP-D16: -mfpu=fp-armv8-fullfp16-sp-d16{{$}} 15 | # FP-ARMV8: -mfpu=fp-armv8{{$}} 16 | # FPV4-SP-D16: -mfpu=fpv4-sp-d16{{$}} 17 | # FPV5-SP-D16: -mfpu=fpv5-sp-d16{{$}} 18 | # NEON-FP-ARMV8: -mfpu=neon-fp-armv8{{$}} 19 | # NEON-VFPV4: -mfpu=neon-vfpv4{{$}} 20 | # VFPV2: -mfpu=vfpv2{{$}} 21 | # VFPV3XD: -mfpu=vfpv3xd{{$}} 22 | # VFPV4-D16: -mfpu=vfpv4-d16{{$}} 23 | -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "comment": [ 3 | "Release branches of LLVM Embedded Toolchain for Arm will use", 4 | "specific revisions of the repos it depends on. This file provides", 5 | "a single source of truth for which revisions to use that can be", 6 | "queried by CMake and other automation software." 7 | ], 8 | "repos": { 9 | "llvm-project": { 10 | "comment": "tagType can be branch, tag or commithash", 11 | "tagType": "branch", 12 | "tag": "main" 13 | }, 14 | "picolibc": { 15 | "tagType": "commithash", 16 | "tag": "be1b69f5f5910d216c16f9fca927c1bdb4d38a51" 17 | }, 18 | "newlib": { 19 | "tagType": "tag", 20 | "tag": "newlib-4.5.0" 21 | } 22 | } 23 | } 24 | --------------------------------------------------------------------------------