@@ -980,6 +980,72 @@ add_library_variant(
980980 RAM_SIZE 2M
981981 STACK_SIZE 4K
982982)
983+ # clang does not correctly handle +nofp and +fp for armv7a and armv7r in march.
984+ # Using mfpu as a workaround.
985+ add_library_variant(
986+ armv7a
987+ SUFFIX soft_nofp
988+ COMPILE_FLAGS "-mfloat-abi=soft -march=armv7a -mfpu=none"
989+ MULTILIB_FLAGS "--target=armv7-none-unknown-eabi -mfpu=none"
990+ QEMU_MACHINE "none"
991+ QEMU_CPU "cortex-a7"
992+ QEMU_PARAMS "-m 1G"
993+ BOOT_FLASH_ADDRESS 0x00000000
994+ BOOT_FLASH_SIZE 0x1000
995+ FLASH_ADDRESS 0x00001000
996+ FLASH_SIZE 0x3ff000
997+ RAM_ADDRESS 0x20000000
998+ RAM_SIZE 2M
999+ STACK_SIZE 4K
1000+ )
1001+ add_library_variant(
1002+ armv7a
1003+ SUFFIX hard_vfpv3_d16
1004+ COMPILE_FLAGS "-mfloat-abi=hard -march=armv7a -mfpu=vfpv3-d16"
1005+ MULTILIB_FLAGS "--target=armv7-none-unknown-eabihf -mfpu=vfpv3-d16"
1006+ QEMU_MACHINE "none"
1007+ QEMU_CPU "cortex-a8"
1008+ QEMU_PARAMS "-m 1G"
1009+ BOOT_FLASH_ADDRESS 0x00000000
1010+ BOOT_FLASH_SIZE 0x1000
1011+ FLASH_ADDRESS 0x00001000
1012+ FLASH_SIZE 0x3ff000
1013+ RAM_ADDRESS 0x20000000
1014+ RAM_SIZE 2M
1015+ STACK_SIZE 4K
1016+ )
1017+ add_library_variant(
1018+ armv7r
1019+ SUFFIX soft_nofp
1020+ COMPILE_FLAGS "-mfloat-abi=soft -march=armv7r -mfpu=none"
1021+ MULTILIB_FLAGS "--target=armv7r-none-unknown-eabi -mfpu=none"
1022+ QEMU_MACHINE "none"
1023+ QEMU_CPU "cortex-r5f"
1024+ QEMU_PARAMS "-m 1G"
1025+ BOOT_FLASH_ADDRESS 0x00000000
1026+ BOOT_FLASH_SIZE 0x1000
1027+ FLASH_ADDRESS 0x00001000
1028+ FLASH_SIZE 0x3ff000
1029+ RAM_ADDRESS 0x20000000
1030+ RAM_SIZE 2M
1031+ STACK_SIZE 4K
1032+ )
1033+ add_library_variant(
1034+ armv7r
1035+ SUFFIX hard_vfpv3_d16
1036+ COMPILE_FLAGS "-mfloat-abi=hard -march=armv7r -mfpu=vfpv3-d16"
1037+ MULTILIB_FLAGS "--target=armv7r-none-unknown-eabihf -mfpu=vfpv3-d16"
1038+ QEMU_MACHINE "none"
1039+ QEMU_CPU "cortex-r5f"
1040+ QEMU_PARAMS "-m 1G"
1041+ BOOT_FLASH_ADDRESS 0x00000000
1042+ BOOT_FLASH_SIZE 0x1000
1043+ FLASH_ADDRESS 0x00001000
1044+ FLASH_SIZE 0x3ff000
1045+ RAM_ADDRESS 0x20000000
1046+ RAM_SIZE 2M
1047+ STACK_SIZE 4K
1048+ )
9831049add_library_variant(
9841050 armv7m
9851051 SUFFIX soft_nofp
@@ -1131,7 +1197,10 @@ add_custom_command(
11311197 "--clang=${LLVM_BINARY_DIR} /bin/clang${CMAKE_EXECUTABLE_SUFFIX} "
11321198 "--llvm-source=${llvmproject_SOURCE_DIR} "
11331199 >> "${CMAKE_CURRENT_BINARY_DIR} /llvm/${TARGET_LIBRARIES_DIR} /multilib.yaml"
1134- DEPENDS clang "${CMAKE_CURRENT_SOURCE_DIR} /multilib-fpus.py" )
1200+ DEPENDS
1201+ clang
1202+ "${CMAKE_CURRENT_SOURCE_DIR} /multilib-fpus.py"
1203+ "${CMAKE_CURRENT_BINARY_DIR} /multilib-without-fpus.yaml" )
11351204add_custom_target (multilib_yaml ALL DEPENDS
11361205 ${CMAKE_CURRENT_BINARY_DIR} /llvm/${TARGET_LIBRARIES_DIR} /multilib.yaml)
11371206add_dependencies (llvm-toolchain-runtimes multilib_yaml)
0 commit comments