@@ -509,24 +509,31 @@ 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} " )
512
518
set (OA_HELPERS_DIR "${CMAKE_CURRENT_BINARY_DIR} /outline_atomic_helpers.dir" )
513
- file (MAKE_DIRECTORY " ${OA_HELPERS_DIR} " )
519
+ file (MAKE_DIRECTORY ${OA_HELPERS_DIR} )
514
520
515
521
foreach (pat cas swp ldadd ldclr ldeor ldset )
516
522
foreach (size 1 2 4 8 16 )
517
523
foreach (model 1 2 3 4 )
518
524
if (pat STREQUAL "cas" OR NOT size STREQUAL "16" )
519
- set (helper_asm " ${OA_HELPERS_DIR} /outline_atomic_${pat}${size} _${model} .S" )
525
+ set (helper_asm ${OA_HELPERS_DIR} /outline_atomic_${pat}${size}_${model}.S )
520
526
add_custom_command (
521
527
OUTPUT ${helper_asm}
522
- COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR} /aarch64/lse.S" "${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
523
531
)
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} "
532
+ set_source_files_properties (${helper_asm} PROPERTIES GENERATED TRUE )
533
+ set ( aarch64_SOURCES
534
+ ${aarch64_SOURCES}
535
+ ${helper_asm}
528
536
)
529
- list (APPEND aarch64_SOURCES "${helper_asm} " )
530
537
endif ()
531
538
endforeach (model )
532
539
endforeach (size )
@@ -680,8 +687,6 @@ else ()
680
687
append_list_if (COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG VISIBILITY_HIDDEN BUILTIN_DEFS )
681
688
endif ()
682
689
683
- append_list_if (COMPILER_RT_HAS_ASM_LSE HAS_ASM_LSE BUILTIN_DEFS )
684
-
685
690
foreach (arch ${BUILTIN_SUPPORTED_ARCH} )
686
691
if (CAN_TARGET_${arch} )
687
692
# For ARM archs, exclude any VFP builtins if VFP is not supported
0 commit comments