Package ASAN libraries and license file
Suffix "asan" added to package name
Change-Id: Ia02bb55be0bd415dbd372b39ce884c38d8c3dcbf
[ROCm/clr commit: 267b342523]
Hiprtc related libraries are duplicated when installed from build directory
This happens when cmake install libdir is set with lib64 as default and using hard code path "lib" for LIBRARY_DESTINATION
Replaced "lib" with cmake install libdir
Removed the default setting of libdir in source code and its should be controlled via build argument
Change-Id: Icac55eac9427a5088903d01942e6bfd5263a6fc0
[ROCm/clr commit: ba04f95771]
The path variable was used incorrectly and this is causing issue in spack build
Change-Id: I34890577f1403d0d5efcba80d417ad5f9720aa6e
[ROCm/clr commit: d65aaf2f78]
HIP build scripts updated, so that cmake install prefix and cpack packaging prefix doesn't have destination directory hip
The workaround in source code is not at all required.
Depends-On: I6775407b4bfec84b6b911d333f3725c310539bfc
Change-Id: Ic1f5e170690d6dba0fec493143dea390c435cd42
[ROCm/clr commit: db6eaa35aa]
This is attempt two of a5b6de5037
GNUInstallDirs is used to allow the user to customize the install paths
of HIP, rather than using hardcoded locations.
See documentation for more information:
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
Note that libdir must be overriden to "lib" before including
GNUInstallDirs, because by default, cmake tries to detect the libdir
path, but ROCm packaging would like to use lib by default for all
targets. This does not stop the user (or distros) from overriding.
Also note this change does no take into account the changes needed to
non-cmake files, such as perl scripts, so not all paths combinations are
necessarily functional.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Change-Id: I521c44dc34404b136141682c2777257b23ffa6e8
[ROCm/clr commit: 112b6370a5]
This reverts commit a5b6de5037.
Reason for revert: <Breaking all the staging builds. this is breaking components which are using find_package(HIP)>
Change-Id: Ic7340fb461a5efdd170a0988731e0885538a11d6
[ROCm/clr commit: 43c650cf48]
GNUInstallDirs is used to allow the user to customize the install paths
of HIP, rather than using hardcoded locations.
See documentation for more information:
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
Note that libdir must be overriden to "lib" before including
GNUInstallDirs, because by default, cmake tries to detect the libdir
path, but ROCm packaging would like to use lib by default for all
targets. This does not stop the user (or distros) from overriding.
Also note this change does no take into account the changes needed to
non-cmake files, such as perl scripts, so not all paths combinations are
necessarily functional.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Change-Id: Iae80f47c47ea0a74fc1c221b6eea82b557601394
[ROCm/clr commit: bf4df229c9]
Prior to this change, when Git_FOUND was false, HIP_VERSION_BUILD_ID
would be undefined in the CMake code. The value of HIP_VERSION_BUILD_ID
in <hip/hip_version.h> is taken from the CMake variable, so it was being
defined as nothing in those cases. That would cause compilation failures,
as src/hip_global.cpp contains the function:
size_t amd_dbgapi_get_build_id() {
return HIP_VERSION_BUILD_ID;
}
which would become
size_t amd_dbgapi_get_build_id() {
return ;
}
after preprocessing. To prevent this, we can define the version
information to a default value when Git is not found.
A related problem was reported by Harmen Stoppels in
https://github.com/ROCm-Developer-Tools/HIP/pull/2218. When Git
is not available (or if the library is being built from a tarball),
the HIP_VERSION_GITHASH is not defined. This causes trouble because
HIP_LIB_VERSION_STRING is defined as "X.Y.Z-${HIP_VERSION_GITHASH}"
and therefore becomes "X.Y.Z-".
The incomplete version string becomes a problem when it is appended
to the shared library file name. File names that end with '-' confuse
the linker. They cause strange errors when attempting to link to the
HIP library. This problem can be prevented by dropping the trailing
dash and using "X.Y.Z" as the version string when HIP_VERSION_GITHASH
is not defined.
Change-Id: I6e290c1f1b603ba30c9ded885e125d9ca9a2e688
Signed-off-by: Cordell Bloor <Cordell.Bloor@amd.com>
[ROCm/clr commit: 9c450d6f66]
Update HIP's unsafeAtomicAdd to:
- Compile properly even when not compiling for gfx90a
- Fall back to safe atomic add on non-gfx90a architectures
- use flat atomic add for FP64 on gfx90a, instead of dynamically
checking memory spaces.
In addition, when the compiler is passed -munsafe-fp-atomics, it
will define __AMDGCN_UNSAFE_FP_ATOMICS__. When this happens, the
compiler is requesting that the HIP headers force all HIP
atomicAdd() calls on floats or doubles to use their unsafe versions.
This patch thus causes unsafeAtomicAdd() calls when that define
is seen. This call to unsafeAtomicAdd() is also done for atomicSub(),
since that calls atomicAdd underneath. This is not done for
system-scope atomicAdd because, on gfx90a, system-scope atomic FP
add instructions would need to target fine-grained memory, which is
always unsafe.
This patch also creates safeAtomicAdd() functions for float and double.
These functions will create a standalone safe atomic, even when the
application is compiled with -munsafe-fp-atomics.
Finally, this patch adds wrappers in the Nvidia path of HIP so that
these HIP functions call through to atomicAdd there as well.
Change-Id: I8af0621d3d28ea30c9278bfeea7393d03bbdac6d
[ROCm/clr commit: f68149eafd]
Flat folder structure requires hip to be installed in /opt/rocm and this need a change in build script
This patch is a workaround, till build scripts changes for flat folder structure are merged and will be removed once build script changes are merged to amd-master
Change-Id: Ib6f51b9d4e89afcc954a5d96595ce471cf7bd67a
[ROCm/clr commit: ef32ae6ada]
HIP installed in /opt/rocm
Wrapper header file in /opt/rocm/hip/include
Soft link for cmake and library files in /opt/rocm/hip
Depends-On: I30adccf7e6241dae12270156602d4b033ea99d93
Change-Id: If70b61020fa3ee85bf49171c842837da05191a48
[ROCm/clr commit: 4bcccb60c9]
Current way of packaging using custom command for each pacakge
is not helping to enable debug symbols.Debug symbols package
creation fail due to missing parameters from the build stage.
With the new approach all the parameters at build stage will be
inheritted by sub-cmake files and hence enables debug-symbols
package creation.
Change-Id: I933710ad4b67d913c011539ac9e51686604300f6
[ROCm/clr commit: a01b481e45]
This reverts commit fa7ff8bb08.
Reason for revert: Fix for SWDEV-312654
Change-Id: I45bef538273431e0dd5d85cf889a7c769c87af73
[ROCm/clr commit: 2472abf589]
Switch to using Perl for converting the Unix timestamp into a human
readable date. Perl is required anyway to run hipconfig, so this
solution should be relatively platform independent.
Change-Id: I2b09468d25daf574c74cebcac4f29d9aba5f18fb
[ROCm/clr commit: c094ba97c6]
Add the CMake support for generating the hiprtc-builtins
library. Replaces the previous execution of shell script.
For backwards compatibility, link hiprtc pre-processed
object to amdhip64, and support versioning in name.
Add libcmt.lib to Windows link step, due to manually
generated .obj from llvm-mc.
Change-Id: I267be3cf4b241840b35f7f27a0b8659530108b0e
[ROCm/clr commit: c42308e2e5]
There is no OUTPUT_FILE option for add_custom_command (it is an option
for execute_process). Instead, redirect stdout to the output file.
Change-Id: Ic649bc6c4f709c3c42166500a72fce5014690a47
[ROCm/clr commit: f3a54f0823]
Current packaging assumes that HIP runtime will always be installed in
/opt/rocm/lib. This is false to assume, because some distros like CentOS
will use the lib64 directory instead of lib. Relying on CMake to choose
the library directory for us will default in that case to lib64. Hence
there will be a mismatch between where HIP is installed and where CMake
thinks it is.
Change-Id: I46e405b25bda987e74b095fcb41319f8a504ae41
[ROCm/clr commit: 52ff66f4fc]
Currently build is only passing because amdhip64 is being built with
headers from /opt/rocm/include. It should be using the headers from
the hipamd project.
Change-Id: I27cb64b460547ef281d368322afac376fa49db51
[ROCm/clr commit: 37be0e449a]