On teamcity clang --version returns something like
clang version 12.0.0
Target: x86_64-unknown-linux-gnu
currently hipcc does not handle it correctly since [^ ] causes new line and Targe:
matched. \S will make sure only version string matched.
Change-Id: I3659d6daf89b709d2b001e6b8024d69d8b79efc0
[ROCm/hip commit: d537bb3859]
hipcc extracts bundles from static libraries and pass them to clang. It should
not escape spaces between objects extracted from library.
Fixes: SWDEV-246544
Change-Id: Iad3902f28a43a3986917ee37a49f10382c329940
[ROCm/hip commit: 0964d64071]
Since the introduction of BUILD_SHARED_LIBS there is only one target created : libamdhip64
Which is static ( libamdhip64.a ) or Dynamic ( libamdhip64.so ) depending on whichever it is
being compiled for. After this change we do not have any target libamdhip64_static which is
mentioned in the hipcc for linking. Hence cleaning the same.
Change-Id: Ia45c145e17b111b3f6a32299a11962b10f1cc539
[ROCm/hip commit: 9f3cf75713]
Add hipHostMallocNumaUser flag to hipHostMalloc() in order to support
numa policy set by user.
Change-Id: I6d70ed539a5f97f27187f2242b68849c0e27e4d6
[ROCm/hip commit: 63051ca2e1]
Currently std::complex and some other std functions require uses to
include hip_runtime.h before any other headers to work, which is not
reliable.
changes are made in clang to fix this issue:
https://reviews.llvm.org/D81176
which requires hipcc and HIP headers to make corresponding changes.
This patch will make sure the clang change will not break
HIP/ROCclr during this transition.
After the transition is done, we can remove explicitly setting
include path for HIP-Clang and HIP header in hipcc and hip config
cmake files and rely on clang driver to set it automatically.
Change-Id: I5d226861c2560ffa6c5ab17343a43cc378048061
[ROCm/hip commit: 087c579625]
Similar to HCC, link with compiler-rt to support __fp16 and _Float16 type conversions in ONNX models. This should resolve SWDEV-238491.
Change-Id: Iad8dcff568831719f501f562a04023326ae8036c
[ROCm/hip commit: 56392b4f8a]
The hipcc script takes arguments and uses this to build up a new
command. Characters which are special to the shell need to be quoted
to prevent them being interpreted.
In particular adding
--Wl,--enable-new-dtags -Wl,--rpath,'$ORIGIN:$ORIGIN/../lib'
to the command should pass quoted dollar signs into the resulting
string so the shell passes them on, rather than substituting the
values.
The arguments are processed in a conventional loop, but can be altered
during the course of the loop, and also by linker response files.
Tested by running
HIPCC_VERBOSE=7 HIP_COMPILER=clang hipcc --cxxflags \
fred.c -Wl,,--rpath,'$ORIGIN:$ORIGIN:/../lib'
and observing "-Wl,--rpath,\$ORIGIN\:\$ORIGIN\:..\/lib" in the
displayed hipcc-cmd output (and ignoring the errors due to rocm not
being installed)
Change-Id: I26b62f09ff3518cceeb85fa8823bb12a95c1c78e
Signed-off-by: Icarus Sparry <icarus.sparry@amd.com>
[ROCm/hip commit: a4f01ffca6]
Before setting the HIP_RUNTIME and HIP_COMPILER variables, first check the environment if these are set. We should prioritize the environment settings. For windows, it will be set, and also explicitly call perl when invoking hipconfig.
Change-Id: I89ad267285239e6d8a897dc681c4af5906e7b9d8
[ROCm/hip commit: 5fbae827c2]
-E is for preprocessing only, which should be compile only.
This is required by enabling sccache.
Change-Id: Ia0a0acb6a04abd03a9cb5b3c13cf7446837f37b4
[ROCm/hip commit: 09bcd2e378]
This will update the hipcc script so that it will use HIP_PLATFORM, HIP_COMPILER, and HIP_RUNTIME variables correctly based on updated hipconfig file.
Removing HIP_PLATFORM=clang, only use hcc and nvcc for now. HIP_PLATFORM should eventually switch to amd or nvcc.
Change-Id: Ie527d07a1add974cc3aab8e9f61b0518147d7602
[ROCm/hip commit: 2de1129510]
Add support for hipconfig to display details on HIP-Clang compiler and update HIP_COMPILER and HIP_RUNTIME to include clang and rocclr. Also, add hipcc flags --cxxflags and --ldflags to support HCC users who used hccconfig flags.
Change-Id: Ib12d81a4ff59d34fb000626836b1adb10be3ac61
[ROCm/hip commit: afc9b546fb]
This change is required by rocBLAS and rocFFT for OpenMP issue
since cmake needs to treat .cpp file as C++ program to detect
OpenMP support.
This is to match nvcc behavior, speed up compilation of C++
programs, and fix some compilation issue where C++ programs
are compiled as HIP programs.
Currently it is controlled by an environment variable
HIP_COMPILE_CXX_AS_HIP. By default it is 1, where
hipcc treats .cpp files as HIP programs. If it is
set to 0, hipcc will treat .cpp files as C++ programs.
This is because some math libraries are still not
ready for the change, however rocBLAS and rocFFT
require this feature for OpenMP, therefore put it
under an environment variable so that rocBLAS
and rocFFT can use it.
Change-Id: I56a51e27079df850ee39d4217fb647c22d79f612
[ROCm/hip commit: 9c5a7226b2]
1.Combine libamdhip64_static_base.a and libamdvdi_static.a into libamdhip64_static.a.
2.Let hipcc use -use-staticlib to link libamdhip64_static.a.
3.Add some samples for static lib.
4.Fix compiling failure of code object.
Change-Id: Ic8c95228eb139058da8b5d66ba8439486154ca6f
[ROCm/hip commit: da27fd2b09]
This reverts commit 8a42ac4d03.
Reason for revert: It is causing dkms-no-npi-hipclang broken.
It is top priority to maintain dkms-no-npi-hipclang build, otherwise we lose track of regression analysis.
So revert the change for now and recommit it after fixing it.
Change-Id: Ia5136e888baecb6148c6c18eedbf37066fcb1eaa
[ROCm/hip commit: f246761dee]
1.Combine libamdhip64_static_base.a and libamdvdi_static.a into libamdhip64_static.a.
2.Let hipcc use -use-staticlib to link libamdhip64_static.a.
3.Add some samples for static lib.
4.Fix compiling failure of code object.
Change-Id: Ia2333622a8d05639b90974c4c5d3d85654ba0138
[ROCm/hip commit: 4c2ab3f41e]
Fixes SWDEV-207362,
The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.
PS: Output file refers to the file followed by -o
Change-Id: I1095966c11143ad73e81fabc35b4e9de5d3afada
Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file
[ROCm/hip commit: bb62f8553f]