Update install.sh to take "--static" option (#894)

* Update install.sh to take "--static" option

* Fix static build errors

---------

Co-authored-by: BertanDogancay <bertan.dogancay@gmail.com>
Šī revīzija ir iekļauta:
Cen Zhao
2023-09-26 12:50:54 -07:00
revīziju iesūtīja Pedram Alizadeh
vecāks c1f57a7041
revīzija fb57a438d7
2 mainīti faili ar 10 papildinājumiem un 8 dzēšanām
+9 -7
Parādīt failu
@@ -607,20 +607,15 @@ endif()
target_link_directories(rccl PRIVATE ${ROCM_SMI_LIB_DIR})
## Set RCCL linked libraries
target_link_libraries(rccl PRIVATE Threads::Threads)
target_link_libraries(rccl INTERFACE hip::host)
target_link_libraries(rccl PRIVATE hip::device)
target_link_libraries(rccl PRIVATE dl)
target_link_libraries(rccl PRIVATE ${ROCM_SMI_LIBRARIES})
if (HAS_BFD)
target_link_libraries(rccl PRIVATE bfd)
if(HAVE_IBERTY)
target_link_libraries(rccl PRIVATE iberty z)
endif()
endif()
target_link_libraries(rccl PRIVATE -fgpu-rdc) # Required when linking relocatable device code
## Set RCCL link options
target_link_options(rccl PRIVATE -fgpu-rdc) # Required when linking relocatable device code
target_link_options(rccl PRIVATE -parallel-jobs=16) # Use multiple threads to link
if(BUILD_ADDRESS_SANITIZER)
target_link_options(rccl PRIVATE -fuse-ld=lld)
@@ -628,9 +623,10 @@ endif()
if(TIMETRACE)
target_link_options(rccl PRIVATE -ftime-trace)
endif()
if(NOT BUILD_SHARED_LIBS)
message(STATUS "Building static RCCL library")
target_link_options(rccl PRIVATE --emit-static-lib)
target_link_libraries(rccl PRIVATE --emit-static-lib)
set(CMAKE_AR "${hipcc_executable}")
get_property(link_libraries TARGET rccl PROPERTY LINK_LIBRARIES)
string (REPLACE ";" " " LINK_PROPS "${link_libraries}")
@@ -639,6 +635,12 @@ else()
message(STATUS "Building shared RCCL library")
endif()
target_link_libraries(rccl PRIVATE Threads::Threads)
target_link_libraries(rccl INTERFACE hip::host)
target_link_libraries(rccl PRIVATE hip::device)
target_link_libraries(rccl PRIVATE dl)
target_link_libraries(rccl PRIVATE ${ROCM_SMI_LIBRARIES})
## Track linking time
set_property(TARGET rccl PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time")
+1 -1
Parādīt failu
@@ -68,7 +68,7 @@ function display_help()
# check if we have a modern version of getopt that can handle whitespace and long parameters
getopt -T
if [[ $? -eq 4 ]]; then
GETOPT_PARSE=$(getopt --name "${0}" --options dfhij:lprt --longoptions address-sanitizer,build_allreduce_only,dependencies,debug,disable_backtrace,disable-colltrace,disable-msccl-kernel,fast,help,install,jobs:,local_gpu_only,no_clean,npkit-enable,package_build,prefix:,rm-legacy-include-dir,run_tests_all,run_tests_quick,tests_build,time-trace,verbose -- "$@")
GETOPT_PARSE=$(getopt --name "${0}" --options dfhij:lprt --longoptions address-sanitizer,build_allreduce_only,dependencies,debug,disable_backtrace,disable-colltrace,disable-msccl-kernel,fast,help,install,jobs:,local_gpu_only,no_clean,npkit-enable,package_build,prefix:,rm-legacy-include-dir,run_tests_all,run_tests_quick,static,tests_build,time-trace,verbose -- "$@")
else
echo "Need a new version of getopt"
exit 1