@@ -644,7 +644,7 @@ exit 0
644644 target_link_options (${a_target} PRIVATE -fopenmp )
645645 elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang" )
646646 target_compile_options (${a_target} PRIVATE -fopenmp --offload-arch=gfx90a -fopenmp-target-fast -fopenmp-assume-threads-oversubscription -fopenmp-assume-teams-oversubscription )
647- target_link_options (${a_target} PRIVATE -fopenmp --offload-arch=gfx90a )
647+ target_link_options (${a_target} PRIVATE -fopenmp --offload-arch=gfx90a -flto-partitions=${MFC_BUILD_JOBS} )
648648 endif ()
649649 endif ()
650650
@@ -710,14 +710,15 @@ exit 0
710710 PRIVATE -DFRONTIER_UNIFIED )
711711 endif ()
712712
713- find_library (HIP_LIB amdhip64
713+ find_library (HIP_LIB amdhip64
714714 HINTS "$ENV{OLCF_AFAR_ROOT} /lib" REQUIRED )
715715 find_library (HIPFORT_AMDGCN_LIB hipfort-amdgcn
716716 HINTS "$ENV{OLCF_AFAR_ROOT} /lib" REQUIRED )
717717 target_include_directories (${a_target} PRIVATE
718718 "$ENV{OLCF_AFAR_ROOT} /include/hipfort/amdgcn" )
719719 target_link_libraries (${a_target} PRIVATE
720- ${HIP_LIB} ${HIPFORT_AMDGCN_LIB} flang_rt.hostdevice )
720+ ${HIP_LIB} ${HIPFORT_AMDGCN_LIB} )
721+
721722 endif ()
722723 elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray" )
723724 target_compile_options (${a_target} PRIVATE "SHELL:-h noacc" "SHELL:-x acc" )
@@ -790,6 +791,12 @@ if (MFC_POST_PROCESS)
790791
791792 # -O0 is in response to https://github.com/MFlowCode/MFC-develop/issues/95
792793 target_compile_options (post_process PRIVATE -O0 )
794+
795+ # flang-23/LLD defaults to PIE; SILO and LAPACK static libs on Frontier are
796+ # non-PIC, producing R_X86_64_32 relocations that LLD rejects in PIE mode.
797+ if (CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang" )
798+ target_link_options (post_process PRIVATE -no-pie )
799+ endif ()
793800endif ()
794801
795802if (MFC_SYSCHECK)
0 commit comments