Skip to content

Commit 00a466f

Browse files
authored
Add Armv7a NO FP -mno-unaligned-access library variants (#553)
This adds the following library: - armv7a_soft_nofp_strictly_aligned - armv7a_soft_nofp_strictly_aligned_exn_rtti
1 parent ed73480 commit 00a466f

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed

arm-multilib/json/multilib.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@
6060
"json": "armv7a_soft_nofp.json",
6161
"flags": "--target=armv7-unknown-none-eabi -mfpu=none -fno-exceptions -fno-rtti"
6262
},
63+
{
64+
"variant": "armv7a_soft_nofp_strictly_aligned_exn_rtti",
65+
"json": "armv7a_soft_nofp_strictly_aligned_exn_rtti.json",
66+
"flags": "--target=armv7-unknown-none-eabi -mfpu=none -mno-unaligned-access"
67+
},
68+
{
69+
"variant": "armv7a_soft_nofp_strictly_aligned",
70+
"json": "armv7a_soft_nofp_strictly_aligned.json",
71+
"flags": "--target=armv7-unknown-none-eabi -mfpu=none -mno-unaligned-access -fno-exceptions -fno-rtti"
72+
},
6373
{
6474
"variant": "armv7a_hard_vfpv3_d16_exn_rtti",
6575
"json": "armv7a_hard_vfpv3_d16_exn_rtti.json",
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"args": {
3+
"common": {
4+
"TARGET_ARCH": "armv7a",
5+
"VARIANT": "armv7a_soft_nofp_strictly_aligned",
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+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"args": {
3+
"common": {
4+
"TARGET_ARCH": "armv7a",
5+
"VARIANT": "armv7a_soft_nofp_strictly_aligned_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+
}

test/multilib/armv7a.test

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,15 @@
77
# CHECK: arm-none-eabi/armv7a_soft_nofp_exn_rtti{{$}}
88
# CHECK-EMPTY:
99

10+
# RUN: %clang -print-multi-directory --target=armv7a-none-eabi -mfpu=none -mno-unaligned-access | FileCheck --check-prefix=CHECK-NOUNALIGNED %s
11+
# RUN: %clang -print-multi-directory --target=armv7a-none-eabi -mfpu=none -mno-unaligned-access -marm | FileCheck --check-prefix=CHECK-NOUNALIGNED %s
12+
# RUN: %clang -print-multi-directory --target=armv7a-none-eabi -mfpu=none -mno-unaligned-access -mthumb| FileCheck --check-prefix=CHECK-NOUNALIGNED %s
13+
# RUN: %clang -print-multi-directory --target=armv7ve-none-eabi -mfpu=none -mno-unaligned-access | FileCheck --check-prefix=CHECK-NOUNALIGNED %s
14+
# RUN: %clang -print-multi-directory --target=armv7ve-none-eabi -mfpu=none -mno-unaligned-access -marm | FileCheck --check-prefix=CHECK-NOUNALIGNED %s
15+
# RUN: %clang -print-multi-directory --target=armv7ve-none-eabi -mfpu=none -mno-unaligned-access -mthumb| FileCheck --check-prefix=CHECK-NOUNALIGNED %s
16+
# CHECK-NOUNALIGNED: arm-none-eabi/armv7a_soft_nofp_strictly_aligned_exn_rtti{{$}}
17+
# CHECK-NOUNALIGNED-EMPTY:
18+
1019
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3-d16 | FileCheck --check-prefix=VFPV3 %s
1120
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=neon-vfpv3 | FileCheck --check-prefix=VFPV3 %s
1221
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3 | FileCheck --check-prefix=VFPV3 %s

0 commit comments

Comments
 (0)