@@ -509,31 +509,24 @@ set(aarch64_SOURCES
509
509
)
510
510
511
511
# Generate outline atomics helpers from lse.S base
512
- set (CUSTOM_FLAGS ${CMAKE_C_FLAGS} )
513
- if (NOT ANDROID )
514
- append_list_if (COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG -DVISIBILITY_HIDDEN CUSTOM_FLAGS )
515
- endif ()
516
- append_list_if (COMPILER_RT_HAS_ASM_LSE -DHAS_ASM_LSE CUSTOM_FLAGS )
517
- string (REPLACE " " "\t " CUSTOM_FLAGS "${CUSTOM_FLAGS} " )
518
512
set (OA_HELPERS_DIR "${CMAKE_CURRENT_BINARY_DIR} /outline_atomic_helpers.dir" )
519
- file (MAKE_DIRECTORY ${OA_HELPERS_DIR} )
513
+ file (MAKE_DIRECTORY " ${OA_HELPERS_DIR} " )
520
514
521
515
foreach (pat cas swp ldadd ldclr ldeor ldset )
522
516
foreach (size 1 2 4 8 16 )
523
517
foreach (model 1 2 3 4 )
524
518
if (pat STREQUAL "cas" OR NOT size STREQUAL "16" )
525
- set (helper_asm ${OA_HELPERS_DIR} /outline_atomic_${pat}${size}_${model}.S )
519
+ set (helper_asm " ${OA_HELPERS_DIR} /outline_atomic_${pat}${size} _${model} .S" )
526
520
add_custom_command (
527
521
OUTPUT ${helper_asm}
528
- COMMAND ${CMAKE_C_COMPILER} -E ${CUSTOM_FLAGS} -DL_${pat} -DSIZE=${size} -DMODEL=${model}
529
- ${CMAKE_CURRENT_SOURCE_DIR} /aarch64/lse.S -o ${helper_asm}
530
- DEPENDS aarch64/lse.S assembly.h
522
+ COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR} /aarch64/lse.S" "${helper_asm} "
531
523
)
532
- set_source_files_properties (${helper_asm} PROPERTIES GENERATED TRUE )
533
- set ( aarch64_SOURCES
534
- ${aarch64_SOURCES}
535
- ${helper_asm}
524
+ set_source_files_properties (" ${helper_asm} "
525
+ PROPERTIES
526
+ COMPILE_DEFINITIONS "L_ ${pat} ;SIZE= ${size} ;MODEL= ${model} "
527
+ INCLUDE_DIRECTORIES " ${CMAKE_CURRENT_SOURCE_DIR} "
536
528
)
529
+ list (APPEND aarch64_SOURCES "${helper_asm} " )
537
530
endif ()
538
531
endforeach (model )
539
532
endforeach (size )
@@ -687,6 +680,8 @@ else ()
687
680
append_list_if (COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG VISIBILITY_HIDDEN BUILTIN_DEFS )
688
681
endif ()
689
682
683
+ append_list_if (COMPILER_RT_HAS_ASM_LSE HAS_ASM_LSE BUILTIN_DEFS )
684
+
690
685
foreach (arch ${BUILTIN_SUPPORTED_ARCH} )
691
686
if (CAN_TARGET_${arch} )
692
687
# For ARM archs, exclude any VFP builtins if VFP is not supported
0 commit comments