diff --git a/hipamd/src/hip_embed_pch.sh b/hipamd/src/hip_embed_pch.sh index 6c92d4388..0761dd5c4 100755 --- a/hipamd/src/hip_embed_pch.sh +++ b/hipamd/src/hip_embed_pch.sh @@ -156,7 +156,7 @@ EOF $LLVM_DIR/bin/clang -cc1 -O3 -emit-pch -triple amdgcn-amd-amdhsa -aux-triple x86_64-unknown-linux-gnu -fcuda-is-device -std=c++17 -fgnuc-version=4.2.1 -o $tmp/hip_wave64.pch -x hip-cpp-output - <$tmp/pch_wave64.cui && - $LLVM_DIR/bin/llvm-mc -o hip_pch.o $tmp/hip_pch.mcin --filetype=obj && + $LLVM_DIR/bin/clang -o hip_pch.o -x assembler $tmp/hip_pch.mcin -c && rm -rf $tmp } @@ -203,7 +203,7 @@ EOF set -x $LLVM_DIR/bin/clang -O3 --hip-path=$HIP_INC_DIR/.. -std=c++14 -nogpulib --hip-version=4.4 -isystem $HIP_INC_DIR -isystem $HIP_BUILD_INC_DIR -isystem $HIP_AMD_INC_DIR --cuda-device-only -D__HIPCC_RTC__ -x hip $tmp/hipRTC_header.h -E -P -o $tmp/hiprtc && cat $macroFile >> $tmp/hiprtc && - $LLVM_DIR/bin/llvm-mc -o $tmp/hiprtc_header.o $tmp/hipRTC_header.mcin --filetype=obj && + $LLVM_DIR/bin/clang -o $tmp/hiprtc_header.o -x assembler $tmp/hipRTC_header.mcin -c && $LLVM_DIR/bin/clang $tmp/hiprtc_header.o -o $rtc_shared_lib_out -shared && $LLVM_DIR/bin/clang -O3 --hip-path=$HIP_INC_DIR/.. -std=c++14 -nogpulib -nogpuinc -emit-llvm -c -o $tmp/tmp.bc --cuda-device-only -D__HIPCC_RTC__ --offload-arch=gfx906 -x hip-cpp-output $tmp/hiprtc && rm -rf $tmp diff --git a/hipamd/src/hiprtc/CMakeLists.txt b/hipamd/src/hiprtc/CMakeLists.txt index a486e84f8..3d87a8782 100644 --- a/hipamd/src/hiprtc/CMakeLists.txt +++ b/hipamd/src/hiprtc/CMakeLists.txt @@ -132,9 +132,8 @@ add_to_config(_versionInfo HIP_VERSION_GITHASH) # Enable preprocessed hiprtc-builtins library include(HIPRTC RESULT_VARIABLE HIPRTC_CMAKE) -# Requires clang and llvm-mc to create this library. +# Requires clang and to create this library. find_program(clang clang HINTS ${ROCM_PATH}/llvm/bin ${ROCM_PATH}) -find_program(llvm-mc llvm-mc HINTS ${ROCM_PATH}/llvm/bin ${ROCM_PATH}) set(HIPRTC_GEN_DIR "${CMAKE_CURRENT_BINARY_DIR}/hip_rtc_gen") set(HIPRTC_GEN_HEADER "${HIPRTC_GEN_DIR}/hipRTC_header.h") set(HIPRTC_GEN_MCIN "${HIPRTC_GEN_DIR}/hipRTC_header.mcin") @@ -184,8 +183,8 @@ add_custom_command( DEPENDS ${clang} ${HIPRTC_GEN_HEADER}) add_custom_command( OUTPUT ${HIPRTC_GEN_OBJ} - COMMAND ${llvm-mc} -o ${HIPRTC_GEN_OBJ} ${HIPRTC_GEN_MCIN} --filetype=obj - DEPENDS ${llvm-mc} ${HIPRTC_GEN_PREPROCESSED} ${HIPRTC_GEN_MCIN}) + COMMAND ${clang} -o ${HIPRTC_GEN_OBJ} -x assembler ${HIPRTC_GEN_MCIN} -c + DEPENDS ${clang} ${HIPRTC_GEN_PREPROCESSED} ${HIPRTC_GEN_MCIN}) # Create hiprtc-builtins library. add_library(hiprtc-builtins ${HIPRTC_GEN_OBJ}) @@ -206,7 +205,7 @@ if(WIN32) set_target_properties(hiprtc-builtins PROPERTIES OUTPUT_NAME "hiprtc-builtins${HIP_MAJOR_VERSION}${HIP_MINOR_VERSION}" ARCHIVE_OUTPUT_NAME "hiprtc-builtins") - # Since ${HIPRTC_GEN_OBJ} was manually generated with llvm-mc, /MT did not embed + # Since ${HIPRTC_GEN_OBJ} was manually generated with `clang -x assembler -c`, /MT did not embed # libcmt.lib inside of the obj. So we need to manually set it as defaultlib. target_link_options(hiprtc-builtins PRIVATE "LINKER:/DEFAULTLIB:libcmt") else()