ROCm / HIPIFY

HIPIFY: Convert CUDA to Portable C++ Code
https://rocm.docs.amd.com/projects/HIPIFY/en/latest/
MIT License
503 stars 70 forks source link

[HIPIFY] Build fail with clang-15 #833

Closed wme7 closed 1 month ago

wme7 commented 1 year ago

On CentOS, I installed LLVM (v15) and Clang (v15) and started the build using CMake (v3.26). The build runs smoothly but at the very end it reached a linker error.

Here is a copy of the build output generated:

$ cmake ..
-- The C compiler identification is GNU 8.5.0
-- The CXX compiler identification is GNU 8.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib64/libffi.so  
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib64/libtinfo.so  
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")  
-- Found LLVM 15.0.7:
--    - CMake module path: /usr/lib64/cmake/llvm
--    - Include path     : /usr/include
--    - Binary path      : /usr/bin
-- Linker detection: GNU ld
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/mdiaz/Depots/HIPIFY/build

$ make -j 8
[  2%] Building CXX object CMakeFiles/hipify-clang.dir/src/ArgParse.cpp.o
[  2%] Built target link_hipexamine.sh
[  2%] Built target link_hipconvertinplace.sh
[  2%] Built target link_hipexamine-perl.sh
[  2%] Built target link_hipify-perl
[  2%] Built target link_finduncodep.sh
[  2%] Built target link_findcode.sh
[  2%] Built target link_hipconvertinplace-perl.sh
[  5%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_types.cpp.o
[  8%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP.cpp.o
[ 11%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_functions.cpp.o
[ 14%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_functions.cpp.o
[ 17%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_types.cpp.o
[ 20%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_functions.cpp.o
[ 20%] Built target link_hipify-clang
[ 22%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_types.cpp.o
[ 25%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_functions.cpp.o
[ 28%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_types.cpp.o
[ 31%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_functions.cpp.o
[ 34%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_types.cpp.o
[ 37%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_functions.cpp.o
[ 40%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_types.cpp.o
[ 42%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Doc.cpp.o
[ 45%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_functions.cpp.o
[ 48%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_types.cpp.o
[ 51%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_functions.cpp.o
[ 54%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_types.cpp.o
[ 57%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Perl.cpp.o
[ 60%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Python.cpp.o
[ 62%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_functions.cpp.o
[ 65%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_types.cpp.o
[ 68%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_functions.cpp.o
[ 71%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_types.cpp.o
[ 74%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_functions.cpp.o
[ 77%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_types.cpp.o
[ 80%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_functions.cpp.o
[ 82%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_types.cpp.o
[ 85%] Building CXX object CMakeFiles/hipify-clang.dir/src/HipifyAction.cpp.o
[ 88%] Building CXX object CMakeFiles/hipify-clang.dir/src/LLVMCompat.cpp.o
[ 91%] Building CXX object CMakeFiles/hipify-clang.dir/src/Statistics.cpp.o
[ 94%] Building CXX object CMakeFiles/hipify-clang.dir/src/StringUtils.cpp.o
[ 97%] Building CXX object CMakeFiles/hipify-clang.dir/src/main.cpp.o
[100%] Linking CXX executable hipify-clang
/usr/bin/ld: cannot find -lclangASTMatchers
/usr/bin/ld: cannot find -lclangFrontend
/usr/bin/ld: cannot find -lclangTooling
/usr/bin/ld: cannot find -lclangParse
/usr/bin/ld: cannot find -lclangSerialization
/usr/bin/ld: cannot find -lclangSema
/usr/bin/ld: cannot find -lclangEdit
/usr/bin/ld: cannot find -lclangFormat
/usr/bin/ld: cannot find -lclangLex
/usr/bin/ld: cannot find -lclangAnalysis
/usr/bin/ld: cannot find -lclangDriver
/usr/bin/ld: cannot find -lclangAST
/usr/bin/ld: cannot find -lclangToolingCore
/usr/bin/ld: cannot find -lclangRewrite
/usr/bin/ld: cannot find -lclangBasic
/usr/bin/ld: cannot find -lclangToolingInclusions
/usr/bin/ld: cannot find -lclangSupport
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CMakeFiles/hipify-clang.dir/build.make:660: hipify-clang] Error 1
make[1]: *** [CMakeFiles/Makefile2:181: CMakeFiles/hipify-clang.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Perhaps I missed something ... any suggestion is welcome ; )

emankov commented 1 year ago

It looks like your installation of LLVM doesn't contain the reported clang libraries, whereas LLVM libraries were found. Check the lib subfolder of your LLVM installation, please.

wme7 commented 1 year ago

Checking ...

$ cmake \
   -DCMAKE_INSTALL_PREFIX=../dist \
   -DCMAKE_BUILD_TYPE=Release \
   ..
-- Found LLVM 15.0.7:
--    - CMake module path: /usr/lib64/cmake/llvm
--    - Include path     : /usr/include
--    - Binary path      : /usr/bin
-- Configuring done (0.0s)
-- Generating done (0.0s)

I can see that LLVM 15 was found, I'm checking for the underlying clang libraries. They indeed are not there.

I followed this instructions from CentOS 8 to install my LLVM library. Or simply put:

sudo dnf install -y llvm llvm-devel llvm-toolset llvm-test llvm-libs llvm-googletest

Last metadata expiration check: 0:11:55 ago on Tue 25 Apr 2023 01:49:09 PM CEST.
Package llvm-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-devel-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-toolset-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-test-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-compat-libs-14.0.6-1.module_el8.8.0+1224+64629835.x86_64 is already installed.
Package llvm-libs-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-googletest-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

I'm checking now, if this libs are missing because the clang is not fully installed ..

sudo dnf install -y clang clang-devel clang-tools-extra clang-libs clang-resource-filesystem

Last metadata expiration check: 0:13:58 ago on Tue 25 Apr 2023 01:49:09 PM CEST.
Package clang-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package clang-devel-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package clang-tools-extra-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package clang-libs-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Package llvm-compat-libs-14.0.6-1.module_el8.8.0+1224+64629835.x86_64 is already installed.
Package clang-resource-filesystem-15.0.7-1.module_el8.8.0+1258+af79b238.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Now, invoking make again

$ make
[  2%] Linking CXX executable hipify-clang
/usr/bin/ld: cannot find -lclangASTMatchers
/usr/bin/ld: cannot find -lclangFrontend
/usr/bin/ld: cannot find -lclangTooling
/usr/bin/ld: cannot find -lclangParse
/usr/bin/ld: cannot find -lclangSerialization
/usr/bin/ld: cannot find -lclangSema
/usr/bin/ld: cannot find -lclangEdit
/usr/bin/ld: cannot find -lclangFormat
/usr/bin/ld: cannot find -lclangLex
/usr/bin/ld: cannot find -lclangAnalysis
/usr/bin/ld: cannot find -lclangDriver
/usr/bin/ld: cannot find -lclangAST
/usr/bin/ld: cannot find -lclangToolingCore
/usr/bin/ld: cannot find -lclangRewrite
/usr/bin/ld: cannot find -lclangBasic
/usr/bin/ld: cannot find -lclangToolingInclusions
/usr/bin/ld: cannot find -lclangSupport
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CMakeFiles/hipify-clang.dir/build.make:660: hipify-clang] Error 1
make[1]: *** [CMakeFiles/Makefile2:181: CMakeFiles/hipify-clang.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

No luck : (

Thus, how can I obtain these missing libraries?

EDIT

After digging on my installation, I found these libraries. CentOS locates them at /usr/include/clang/

$ ls /usr/include/clang/
Analysis/            Frontend/          
APINotes/            FrontendTool/      
ARCMigrate/          Index/             
AST/                 IndexSerialization/
ASTMatchers/         Interpreter/       
Basic/               Lex/               
CodeGen/             Parse/             
Config/              Rewrite/           
CrossTU/             Sema/              
DirectoryWatcher/    Serialization/     
Driver/              StaticAnalyzer/    
Edit/                Support/           
ExtractAPI/          Testing/           
Format/              Tooling/  

Then, can you point to me how to modify the CMakeList.txt to build HIPIFY-clang correctly?

emankov commented 1 year ago
  1. I don't believe HIPIFY's CMakeList.txt needs changing.
  2. Check the lib subfolder of your LLVM installation, please. The needed libraries should be named like libclang*.a.
wme7 commented 1 year ago

The libclang*.a libraries are there. Couldn't understand why this is happening in my system. Thus, I downloaded LLVM git-repo and installed but got another types of errors during compilation. I abandoned this idea and hipified my code using the hipifi-perl script : (

jin-eld commented 11 months ago

@emankov could we please reopen this, I am seeing the exact same issue, with the difference that I am using Fedora 38 with clang-16, which should also be supported.

I found the solution in this post: https://stackoverflow.com/questions/76686997/clang-front-end-actions-linking-problem-on-fedora

It seems, that on Fedora everything is packed into libclang-cpp.so, while CMakeLists.txt specifies all those individual link targets which then fail.

I am no good with cmake, so can't provide a proper pull request, but perhaps you could add detection for libclang-cpp, which would fix the build problem on Fedora and most likely also no CentOS?

The below diff solved the problem for me on Fedora 38:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c1ecdb9..215be63 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,21 +88,7 @@ if (NOT HIPIFY_CLANG_TESTS_ONLY)

   # Link against LLVM and CLANG libraries.
   target_link_libraries(hipify-clang PRIVATE
-    clangASTMatchers
-    clangFrontend
-    clangTooling
-    clangParse
-    clangSerialization
-    clangSema
-    clangEdit
-    clangFormat
-    clangLex
-    clangAnalysis
-    clangDriver
-    clangAST
-    clangToolingCore
-    clangRewrite
-    clangBasic
+    clang-cpp
     LLVMProfileData
     LLVMSupport
     LLVMMCParser
@@ -111,16 +97,16 @@ if (NOT HIPIFY_CLANG_TESTS_ONLY)
     LLVMOption
     LLVMCore)

-  if(LLVM_PACKAGE_VERSION VERSION_GREATER "6.0.1")
-    target_link_libraries(hipify-clang PRIVATE clangToolingInclusions)
-  endif()
+#  if(LLVM_PACKAGE_VERSION VERSION_GREATER "6.0.1")
+#    target_link_libraries(hipify-clang PRIVATE clangToolingInclusions)
+#  endif()

   if(LLVM_PACKAGE_VERSION VERSION_GREATER "9.0.1")
     target_link_libraries(hipify-clang PRIVATE LLVMFrontendOpenMP)
   endif()

   if(LLVM_PACKAGE_VERSION VERSION_EQUAL "15.0.0" OR LLVM_PACKAGE_VERSION VERSION_GREATER "15.0.0")
-    target_link_libraries(hipify-clang PRIVATE LLVMWindowsDriver clangSupport)
+    target_link_libraries(hipify-clang PRIVATE LLVMWindowsDriver)
   endif()

   if(LLVM_PACKAGE_VERSION VERSION_EQUAL "16.0.0" OR LLVM_PACKAGE_VERSION VERSION_GREATER "16.0.0")

EDIT: the compiled hipify-clang tool does not seem to work though, I get

: CommandLine Error: Option 'profile-isfs' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted (core dumped)

I was not able to figure out what that means and if it is related to the above linking issue.

emankov commented 11 months ago

It looks like we need to investigate LLVM/clang linking issues on Fedora and CentOS.

hammersbaldthegodofimpacience commented 5 months ago

Hello,

I also get the

: CommandLine Error: Option 'profile-isfs' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted (core dumped)

issue on several versions of ubuntu with different LLVM versions. The name of the option is not always the same. Is there any possibility to solve this?

emankov commented 5 months ago

Hi @hammersbaldthegodofimpacience!

Could you please share the cmake log and verbose hipify-clang log (with -v option)?

TheAnyKey commented 5 months ago

Same here, trying to build on alpine:

/hipify # git switch 8e860dd
fatal: a branch is expected, got commit '8e860dd'
hint: If you want to detach HEAD at the commit, try again with the --detach option.
/hipify # cd build/
/hipify/build # rm * -rf
/hipify/build # cmake ..
-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is Clang 16.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- HIPIFY config:
--    - Build hipify-clang : ON
--    - Test  hipify-clang : OFF
--    - Is part of HIP SDK : OFF
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib/libffi.so
-- Found ZLIB: /lib/libz.so (found version "1.2.13")
-- Found zstd: /usr/lib/libzstd.so
-- Found LibXml2: /usr/lib/libxml2.so (found version "2.11.7")
-- Found LLVM 16.0.6:
--    - CMake module path  : /usr/lib/llvm16/lib/cmake/llvm
--    - Clang include path : /usr/include
--    - LLVM Include path  : /usr/lib/llvm16/include
--    - Binary path        : /usr/lib/llvm16/bin
-- Linker detection: GNU ld
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /hipify/build
/hipify/build # make -j
[  5%] Building CXX object CMakeFiles/hipify-clang.dir/src/ArgParse.cpp.o
[  5%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP.cpp.o
[  8%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_functions.cpp.o
[ 10%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_types.cpp.o
[ 13%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_types.cpp.o
[ 18%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_functions.cpp.o
[ 18%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_functions.cpp.o
[ 21%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_types.cpp.o
[ 24%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_functions.cpp.o
[ 27%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_functions.cpp.o
[ 29%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_types.cpp.o
[ 32%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_types.cpp.o
[ 35%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_types.cpp.o
[ 37%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Doc.cpp.o
[ 40%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_functions.cpp.o
[ 43%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_functions.cpp.o
[ 45%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_types.cpp.o
[ 48%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_functions.cpp.o
[ 51%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_types.cpp.o
[ 54%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Perl.cpp.o
[ 56%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Python.cpp.o
[ 59%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_functions.cpp.o
[ 62%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_types.cpp.o
[ 64%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_functions.cpp.o
[ 67%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_types.cpp.o
[ 70%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_functions.cpp.o
[ 72%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_types.cpp.o
[ 75%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SOLVER_API_functions.cpp.o
[ 78%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SOLVER_API_types.cpp.o
[ 81%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_functions.cpp.o
[ 83%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_types.cpp.o
[ 86%] Building CXX object CMakeFiles/hipify-clang.dir/src/HipifyAction.cpp.o
[ 89%] Building CXX object CMakeFiles/hipify-clang.dir/src/LLVMCompat.cpp.o
[ 91%] Building CXX object CMakeFiles/hipify-clang.dir/src/Statistics.cpp.o
[ 94%] Building CXX object CMakeFiles/hipify-clang.dir/src/StringUtils.cpp.o
[ 97%] Building CXX object CMakeFiles/hipify-clang.dir/src/main.cpp.o
[100%] Linking CXX executable hipify-clang
[100%] Built target hipify-clang
/hipify/build # ls
CMakeCache.txt       Makefile             hipify-clang
CMakeFiles           cmake_install.cmake  packages
/hipify/build # ./hipify-clang -v
: CommandLine Error: Option 'static-func-full-module-prefix' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted
/hipify/build #
hammersbaldthegodofimpacience commented 5 months ago

Here in vanilla ubuntu 24.04 container

root@f63e670b361b:/hipify/build# cmake -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is Clang 18.1.2
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- HIPIFY config:
--    - Build hipify-clang : ON
--    - Test  hipify-clang : OFF
--    - Is part of HIP SDK : OFF
-- Performing Test HAVE_FFI_CALL
-- Performing Test HAVE_FFI_CALL - Success
-- Found FFI: /usr/lib/x86_64-linux-gnu/libffi.so
-- Looking for histedit.h
-- Looking for histedit.h - found
-- Found LibEdit: /usr/include (found version "2.11")
-- Performing Test Terminfo_LINKABLE
-- Performing Test Terminfo_LINKABLE - Success
-- Found Terminfo: /usr/lib/x86_64-linux-gnu/libtinfo.so
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.3")
-- Found zstd: /usr/lib/x86_64-linux-gnu/libzstd.so
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.14")
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "8.5.0")
-- Found LLVM 18.1.2:
--    - CMake module path  : /usr/lib/llvm-18/lib/cmake/llvm
--    - Clang include path : /usr/lib/llvm-18/include
--    - LLVM Include path  : /usr/lib/llvm-18/include
--    - Binary path        : /usr/lib/llvm-18/bin
-- Linker detection: GNU ld
-- Configuring done (0.6s)
-- Generating done (0.0s)
-- Build files have been written to: /hipify/build
root@f63e670b361b:/hipify/build# make -j
[  2%] Building CXX object CMakeFiles/hipify-clang.dir/src/ArgParse.cpp.o
[  8%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_functions.cpp.o
[  8%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_BLAS_API_types.cpp.o
[ 10%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_types.cpp.o
[ 13%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_types.cpp.o
[ 16%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CUB_API_functions.cpp.o
[ 18%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_types.cpp.o
[ 21%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP.cpp.o
[ 24%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_CAFFE2_API_functions.cpp.o
[ 27%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Complex_API_functions.cpp.o
[ 29%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_types.cpp.o
[ 35%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_types.cpp.o
[ 35%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Driver_API_functions.cpp.o
[ 40%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Doc.cpp.o
[ 40%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_functions.cpp.o
[ 43%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Device_functions.cpp.o
[ 45%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_DNN_API_types.cpp.o
[ 48%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_functions.cpp.o
[ 51%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_FFT_API_types.cpp.o
[ 54%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Python.cpp.o
[ 56%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_functions.cpp.o
[ 59%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Perl.cpp.o
[ 62%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RAND_API_types.cpp.o
[ 64%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_functions.cpp.o
[ 67%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_functions.cpp.o
[ 70%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_RTC_API_types.cpp.o
[ 72%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_Runtime_API_types.cpp.o
[ 75%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SOLVER_API_functions.cpp.o
[ 78%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SOLVER_API_types.cpp.o
[ 81%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_functions.cpp.o
[ 83%] Building CXX object CMakeFiles/hipify-clang.dir/src/CUDA2HIP_SPARSE_API_types.cpp.o
[ 86%] Building CXX object CMakeFiles/hipify-clang.dir/src/HipifyAction.cpp.o
[ 89%] Building CXX object CMakeFiles/hipify-clang.dir/src/LLVMCompat.cpp.o
[ 91%] Building CXX object CMakeFiles/hipify-clang.dir/src/StringUtils.cpp.o
[ 94%] Building CXX object CMakeFiles/hipify-clang.dir/src/Statistics.cpp.o
[ 97%] Building CXX object CMakeFiles/hipify-clang.dir/src/main.cpp.o
[100%] Linking CXX executable hipify-clang
[100%] Built target hipify-clang
root@f63e670b361b:/hipify/build# ./hipify-clang
: CommandLine Error: Option 'static-func-full-module-prefix' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
Aborted
root@f63e670b361b:/hipify/build#
root@f63e670b361b:/hipify/build# apt search llvm | grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

clang/noble,now 1:18.0-59~exp2 amd64 [installed]
libclang1/noble,now 1:18.0-59~exp2 amd64 [installed]
libllvm18/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm/noble,now 1:18.0-59~exp2 amd64 [installed]
llvm-18/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm-18-dev/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm-18-linker-tools/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm-18-runtime/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm-18-tools/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
llvm-dev/noble,now 1:18.0-59~exp2 amd64 [installed]
llvm-runtime/noble,now 1:18.0-59~exp2 amd64 [installed,automatic]
root@f63e670b361b:/hipify/build# apt search clang | grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

clang/noble,now 1:18.0-59~exp2 amd64 [installed]
clang-18/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
libclang-18-dev/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
libclang-common-18-dev/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
libclang-cpp18/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
libclang-dev/noble,now 1:18.0-59~exp2 amd64 [installed]
libclang-rt-18-dev/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
libclang1/noble,now 1:18.0-59~exp2 amd64 [installed]
libclang1-18/noble,now 1:18.1.2-1ubuntu3 amd64 [installed,automatic]
root@f63e670b361b:/hipify/build#
emankov commented 5 months ago

Thanks, @hammersbaldthegodofimpacience! I'll try to reproduce it on Ubuntu first.

kaiwu-astro commented 5 months ago

Same problem on Ubuntu22.04 with llvm14, clang14, GCC12 library. Running hipify-clang gives CommandLine Error: Option 'static-func-full-module-prefix' registered more than once!

ppanchad-amd commented 1 month ago

@wme7 Can you please check if your issue still happens on the latest ROCm 6.2? If not, please close the ticket. Thanks!