Bug 1545479 - Review Request: hcc - Heterogeneous C++ Compiler
Summary: Review Request: hcc - Heterogeneous C++ Compiler
Keywords:
Status: POST
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Robert-André Mauchin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1666836
Blocks: 1668010
TreeView+ depends on / blocked
 
Reported: 2018-02-15 01:02 UTC by Tom Stellard
Modified: 2019-03-20 13:21 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
zebob.m: fedora-review+


Attachments (Terms of Use)

Description Tom Stellard 2018-02-15 01:02:13 UTC
Spec URL: http://copr-dist-git.fedorainfracloud.org/cgit/tstellar/rocm-1.6-userspace/hcc.git/plain/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-1.6-userspace/fedora-rawhide-x86_64/00715528-hcc/hcc-1.0-15.rocm1.6.0.fc28.src.rpm
Description: Heterogeneous C++ Compiler
Fedora Account System Username: tstellar

hcc is a GPU compiler for single source C++ like languages.  It supports AMD GPUs using the ROCm driver stack.

Comment 1 Robert-André Mauchin 2018-02-15 12:42:17 UTC
%description
Heterogeneous C++ Compiler

   Could you expand the description a little bit.

 - Is this expected that these libraries aren't versionned:

%{_libdir}/libhc_am.so
%{_libdir}/libmcwamp_hsa.so
%{_libdir}/libmcwamp.so

See https://fedoraproject.org/wiki/Packaging:Guidelines#Downstream_.so_name_versioning

Comment 2 Felix Schwarz 2018-05-18 10:16:39 UTC
Just a random note: Do you plan to update the spec to the latest HCC version/roc 1.7/1.8 in this review request or would you like to do that after the package got reviewed? (Thanks for working on this btw :-)

Comment 3 Tom Stellard 2018-05-18 16:57:33 UTC
I'm not going to push a ROCm 1.6 version of hcc into Fedora.  I have updated the spec file locally to ROCm 1.7, but I would need to update rocm-runtime and libhsakmt in Fedora to ROCm 1.7, before I can it to Fedora.

ROCm 1.8 hcc will probably not happen in Fedora because AMD have not released a
special version of libhsakmt that works with the upstream kernel like they did for 1.6 and 1.7.

If you are interested in testing, I have a copr with most of the ROCm 1.7 packages (it's basically hiptensorflow plus all its dependencies) if you want to take a look:

https://copr.fedorainfracloud.org/coprs/tstellar/rocm-1.7-userspace/

Note that since I haven't packaged the upstream thunk yet for ROCm 1.7, you will need to install the 'official' AMD kernel and thunk from this copr to get it to work:

https://copr.fedorainfracloud.org/coprs/tstellar/rocm-1.7-amd/

But on the plus side, with the AMD kernel you will get dGPU and Vega support.

Comment 4 Felix Schwarz 2018-05-19 20:31:15 UTC
> I'm not going to push a ROCm 1.6 version of hcc into Fedora. I have updated
> the spec file locally to ROCm 1.7, but I would need to update rocm-runtime and
> libhsakmt in Fedora to ROCm 1.7, before I can it to Fedora.

So this review request here is currently outdated (as you started to pacakge ROCm 1.7)? Or is a package review pointless until ROCm works with mainline kernel out of the box? (libhsakmt/thunk interface)

> ROCm 1.8 hcc will probably not happen in Fedora because AMD have not released
> a special version of libhsakmt that works with the upstream kernel like they
> did for 1.6 and 1.7.

Just out of curiosity/to get a more complete picture: This problem should be solved once enough features are merged in amdkfd so the user space ROCm stack works with a vanilla upstream kernel, right? Or is there some special "secret sauce" which is unlikely to be upstreamed?

Anyway, I don't want to turn this ticket into a personal support forum so the more important question is: What should happen to this review request?
- Review it and push an (incomplete) ROCm 1.6 stack in Fedora?
- Close the request (because 1.7 will be submitted for merging at a later time)?
- Keep it open because at some point in the future you submit a updated spec for ROCM 1.7?

Comment 5 Tom Stellard 2018-05-21 15:05:31 UTC
(In reply to Felix Schwarz from comment #4)
> > I'm not going to push a ROCm 1.6 version of hcc into Fedora. I have updated
> > the spec file locally to ROCm 1.7, but I would need to update rocm-runtime and
> > libhsakmt in Fedora to ROCm 1.7, before I can it to Fedora.
> 
> So this review request here is currently outdated (as you started to pacakge
> ROCm 1.7)? Or is a package review pointless until ROCm works with mainline
> kernel out of the box? (libhsakmt/thunk interface)
> 

Yes, it is out-dated now.

> > ROCm 1.8 hcc will probably not happen in Fedora because AMD have not released
> > a special version of libhsakmt that works with the upstream kernel like they
> > did for 1.6 and 1.7.
> 
> Just out of curiosity/to get a more complete picture: This problem should be
> solved once enough features are merged in amdkfd so the user space ROCm
> stack works with a vanilla upstream kernel, right? Or is there some special
> "secret sauce" which is unlikely to be upstreamed?
> 

There are already enough features in upstream amdkfd, the issue now is getting
a new thunk (hsakmt in Fedora) that is compatible with what is upstream.  AMD has been publishing code for an upstream compatible thunk in this branch: https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/commits/fxkamd/drm-next-wip.  The current hsamkt Fedora was built from an early snapshot of this branch and the current HEAD is
compatible with ROCm 1.7.

Now that everything is upstream AMD is going to start working on making their 'official' thunk compatible with upstream, which I'm hoping will happen by ROCm 1.9.

> Anyway, I don't want to turn this ticket into a personal support forum so
> the more important question is: What should happen to this review request?
> - Review it and push an (incomplete) ROCm 1.6 stack in Fedora?
> - Close the request (because 1.7 will be submitted for merging at a later
> time)?
> - Keep it open because at some point in the future you submit a updated spec
> for ROCM 1.7?

Let's just keep it open for now in case I have to time to push the ROCm 1.7 packaging.  The current 1.6 spec is old and has several bugs that I fixed with the 1.7 packaging.

Comment 6 Tom Stellard 2019-01-18 16:53:51 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00847787-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00847787-hcc/hcc-1.3.18505-1.rocm2.0.0.fc30.src.rpm

Updated builds for ROCm 2.0.  There is a new dependency on the rocminfo package, which is currently in review (bug 1666836).  For now you can get rocminfo from this copr: https://copr.fedorainfracloud.org/coprs/tstellar/rocm-2.0/

Comment 7 Felix Schwarz 2019-01-21 11:57:17 UTC
I rebuilt your updated hcc package on Fedora 29 which worked fine. The resulting "hcc" binary seems to work. I was able to run "saxpy" and several example programs from https://github.com/ROCm-Developer-Tools/HCC-Example-Application .

Just for reference: I'm able to run the "saxpy" example from https://github.com/RadeonOpenCompute/hcc/wiki#how-to-use-hcc when invoking hcc like this: hcc `hcc-config --cxxflags --ldflags` -I/usr/include/hcc saxpy.cpp -o saxpy

I noticed some things:
The hcc package contains multiple copies of the same header file, e.g. kalmar_aligned_alloc.h is available via /usr/include/ and /usr/include/hcc/. I saw a patch in the SRPM which tried to move everything to the "hcc" subdirectory but I guess you missed at least on spot.

Also there are some rpmlint errors (which I guess you are aware of already), e.g. that "hcc" requires "hcc-runtime-devel". As hcc is a compiler I think that is basically ok (compiler requires header files for its "standard library") but maybe these files are just part of the "hcc-runtime"?
rpmlint also complained about some rpaths in binaries like hcc and libraries like "LLVMPromotePointerKernArgsToGlobal.so".

"hcc-config --cxxflags" still returns "-I/opt/rocm/include" but lacks "-I/usr/include/hcc/". Same applies to "clamp-config" (and I was wondering why "clamp-config" was available at all as I read that ROCm 2.0 drop C++ AMP support - but that is likely due to my limited understanding/an upstream issue).

Comment 8 Tom Stellard 2019-01-24 04:03:05 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00849663-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00849663-hcc/hcc-1.3.18505-1.rocm2.0.0.fc30.src.rpm

(In reply to Felix Schwarz from comment #7)
> I noticed some things:
> The hcc package contains multiple copies of the same header file, e.g.
> kalmar_aligned_alloc.h is available via /usr/include/ and /usr/include/hcc/.
> I saw a patch in the SRPM which tried to move everything to the "hcc"
> subdirectory but I guess you missed at least on spot.
> 

I've fixed this now so that everything is in /usr/include/hcc.  The previous build had all the headers symlinked into /usr/include because this is what some apps, like hip, expect.  I've also updated the output of hcc-config --cxxflags to add /usr/include/hcc as an include directory to support applications that don't use the hcc prefix in their #include directives.

> Also there are some rpmlint errors (which I guess you are aware of already),
> e.g. that "hcc" requires "hcc-runtime-devel". As hcc is a compiler I think
> that is basically ok (compiler requires header files for its "standard
> library") but maybe these files are just part of the "hcc-runtime"?

This is ok for a compiler.  It's possible to use the hcc-runtime without hcc, I think hip may do this, so this is why I separated the headers and libraries into separate packages.

> rpmlint also complained about some rpaths in binaries like hcc and libraries
> like "LLVMPromotePointerKernArgsToGlobal.so".
> 

hcc uses and depends on internal libraries, so this is OK according to
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_rpath_for_internal_libraries 

> "hcc-config --cxxflags" still returns "-I/opt/rocm/include" but lacks
> "-I/usr/include/hcc/". Same applies to "clamp-config" (and I was wondering

These include paths are fixed now.

> why "clamp-config" was available at all as I read that ROCm 2.0 drop C++ AMP
> support - but that is likely due to my limited understanding/an upstream
> issue).

I read that too, but upstream still ships this so it is an upstream issue

Comment 9 Felix Schwarz 2019-02-10 22:16:03 UTC
Hi Tom, fixing all the small issues I brought up (I had hoped someone more experienced than me would have reviewed the package by now).

I'm still hesitant to formally reviewing this package but I think I found some more issues:

hcc package
===============

- contains a folder "/usr/include/experimental" which should probably be stored as "/usr/include/hcc/experimental"
    e.g. "algorithm" (no extension?) refers to "../hcc.hpp"
- empty "/lib" folder?

- hcc-config.cmake contains references to "/opt/rocm" (should be /usr/include/hcc?)
  - also there it contains something like
      set_and_check( hcc_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include" )
  - I'm not sure where this cmake file is actually used but I suspect this should point to "${PACKAGE_PREFIX_DIR}/include/hcc" as well
  - are the "cmake" files actually required by hcc directly?

- hcc.spec:
  for f in clamp-device clamp-embed clamp-assemble clamp-link hc-kernel-assemble hc-host-assemble error-check; do
	mv %{buildroot}{/usr,%{_libexecdir}/hcc}/bin/$f
  done
  I'd prefer "install --preserve-timestamps"


hcc-runtime package
=====================
- empty "/lib" folder?
- does not install a license file!


rocm-device-libs
=====================
- does not install a license file!


hcc-runtime-devel
=====================

Note: Package has .a files: hcc-runtime-devel. Does not provide -static: hcc-runtime-devel.
 -> I assume you are aware of the static library and it is actually required by some part of the ROCm stack
 -> Fedora guidelines say that the static library MUST be in a -static package (https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries)


----------
I was unable to check the license of all sources (due to the huge number of sources files + the perl check script taking forever) so far. Also several other points which I could not check yet.

I'm also not sure if llvm counts as a bundled library and must be declared as such (https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling), see also Fedora's "rust" package.
Tom: I assume the rocm stack currently does not work against any upstream version of llvm, right? Is there an official way of trying to build with a vanilla llvm?

My plan is to work through the rest of the review items (though that will take some time) and also check your "hip" package in parallel. That way I hope to validate the packaging decisions made in the "hcc" package.

Comment 10 Tom Stellard 2019-02-13 19:02:27 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00857850-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00857850-hcc/hcc-1.3.18505-2.rocm2.0.0.fc30.src.rpm

(In reply to Felix Schwarz from comment #9)
> Hi Tom, fixing all the small issues I brought up (I had hoped someone more
> experienced than me would have reviewed the package by now).
> 
> I'm still hesitant to formally reviewing this package but I think I found
> some more issues:
> 
> hcc package
> ===============
> 
> - contains a folder "/usr/include/experimental" which should probably be
> stored as "/usr/include/hcc/experimental"

I've fixed this.
>     e.g. "algorithm" (no extension?) refers to "../hcc.hpp"
> - empty "/lib" folder?

There are hidden build-id files in /lib that were generated by RPM.

> 
> - hcc-config.cmake contains references to "/opt/rocm" (should be
> /usr/include/hcc?)
>   - also there it contains something like
>       set_and_check( hcc_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include" )
>   - I'm not sure where this cmake file is actually used but I suspect this
> should point to "${PACKAGE_PREFIX_DIR}/include/hcc" as well

I've fixed this.

>   - are the "cmake" files actually required by hcc directly?

These are meant to be used by other programs, but I'm not sure what actually
uses them.

> 
> - hcc.spec:
>   for f in clamp-device clamp-embed clamp-assemble clamp-link
> hc-kernel-assemble hc-host-assemble error-check; do
> 	mv %{buildroot}{/usr,%{_libexecdir}/hcc}/bin/$f
>   done
>   I'd prefer "install --preserve-timestamps"
> 

I updated the spec so these are installed by 'make install' now.

> 
> hcc-runtime package
> =====================
> - empty "/lib" folder?

Has build-id files in it.

> - does not install a license file!

I've fixed this.
> 
> 
> rocm-device-libs
> =====================
> - does not install a license file!
> 

Fixed this.
> 
> hcc-runtime-devel
> =====================
> 
> Note: Package has .a files: hcc-runtime-devel. Does not provide -static:
> hcc-runtime-devel.
>  -> I assume you are aware of the static library and it is actually required
> by some part of the ROCm stack
>  -> Fedora guidelines say that the static library MUST be in a -static
> package
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-
> libraries)
> 

I've replaced the static library with a shared library.

> 
> ----------
> I was unable to check the license of all sources (due to the huge number of
> sources files + the perl check script taking forever) so far. Also several
> other points which I could not check yet.
> 
> I'm also not sure if llvm counts as a bundled library and must be declared
> as such
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling), see
> also Fedora's "rust" package.

I've added Provides: bundled(llvm)

> Tom: I assume the rocm stack currently does not work against any upstream
> version of llvm, right? Is there an official way of trying to build with a
> vanilla llvm?

I think it would likely work with upstream LLVM, however the ROCm release
don't line up with upstream LLVM releases.  So what is packaged now in hcc
is a snapshot from LLVM SVN, and we only ship official llvm release in Fedora.

> 
> My plan is to work through the rest of the review items (though that will
> take some time) and also check your "hip" package in parallel. That way I
> hope to validate the packaging decisions made in the "hcc" package.

Ok, thanks for the review.

Comment 11 Felix Schwarz 2019-02-24 21:47:30 UTC
I'm mostly done with the review (still hoping that someone more experienced will join here :-). Some questions+bikeshedding and one bigger issue.

Let's start with the most important one:
.so files in /usr/libexec/hcc/lib64/ are not stripped (manual stripping trims the size from 1.5 GB to 47.2 MB). Unless there is a really good reason not to strip these I think that needs to be taken care of.

Some questions/notes:
1. hcc depends on "hcc-runtime-devel" but I was wondering why "hcc-runtime" is not sufficient. "hcc-runtime-devel" just contains unversioned .so files.
2. hcc also requires "rocminfo" but I was wondering where this is used or why this is a dependency. If I grep for "rocminfo" in the sources it is only mentioned when building a docker container.
3. "compiler-rt" and "cmake-tests" are removed. Would you mind providing some rationale for this? Did I see correctly that "cmake-tests" requires that "hc::accelerator()" returns something? (which might not work on build machines)
4. rpmlint complains about "executable stack" (.so files in /usr/lib64/). Is this necessary for hcc? (https://fedoraproject.org/wiki/Packaging_tricks#Executable_stack)
5. rpmlint complains that "/usr/libexec/hcc/lib64/libLLVM-8-rocm.so" contains an invalid soname but AFAIK this is just an internal library which has no soname at all.
6. The upstream "hcc" package declares a "NCSA" license but it contains some files with a different license:
   Apache:
    - stl-test/*.pl.in
    - tests/Conformance

   Expat license:
    - lib/hsa/unpinned_copy_engine.*
    - hc2/external/elfio 

   3-clause BSD:
    - utils/gtest/

   Expat is probably similar enough to NCSA but I'm not sure what to do with the others (only test code as far as I can see).


Bikeshedding:
- changelog: "1.3.18505-2.rocm2.0.0" is the latest but "1.3.19020-1.rocm2.0.0" comes before (higher version number). Is that just actual recording of history or due to some mishap?
- "HCC": I think you should use consistent upper-case spelling of HCC
- spelling in spec file: "trunck", "lincense"
- rpmlint says: "summary-not-capitalized" for various RPMs

Comment 12 Tom Stellard 2019-02-27 15:32:27 UTC
SPEC URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00862882-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00862882-hcc/hcc-1.3.18505-2.rocm2.0.0.fc30.src.rpm

(In reply to Felix Schwarz from comment #11)
> I'm mostly done with the review (still hoping that someone more experienced
> will join here :-). Some questions+bikeshedding and one bigger issue.
> 

It's up to you, but there is no experience requirement for doing a review.  I'd say this has been a very good review so far.

> Let's start with the most important one:
> .so files in /usr/libexec/hcc/lib64/ are not stripped (manual stripping
> trims the size from 1.5 GB to 47.2 MB). Unless there is a really good reason
> not to strip these I think that needs to be taken care of.
> 

This is fixed.

> Some questions/notes:
> 1. hcc depends on "hcc-runtime-devel" but I was wondering why "hcc-runtime"
> is not sufficient. "hcc-runtime-devel" just contains unversioned .so files.

hcc's linker invocation references the unversioned libraries, which is why the
hcc-runtime-devel files are needed.

> 2. hcc also requires "rocminfo" but I was wondering where this is used or
> why this is a dependency. If I grep for "rocminfo" in the sources it is only
> mentioned when building a docker container.

hcc needs rocm_agent_enumerator which is shipped with the rocminfo package.
It is used to determine the GPU target when one isn't specified.  It's referenced
from the clang source code.

> 3. "compiler-rt" and "cmake-tests" are removed. Would you mind providing
> some rationale for this? Did I see correctly that "cmake-tests" requires
> that "hc::accelerator()" returns something? (which might not work on build
> machines)

It doesn't seem like compiler-rt is actually needed, I think libgcc is enough.
I also wanted hcc to use the system compiler-rt.  I don't recall why I removed
cmake-tests, probably because it wasn't working on the builders, but I can look
at that again.

> 4. rpmlint complains about "executable stack" (.so files in /usr/lib64/). Is
> this necessary for hcc?
> (https://fedoraproject.org/wiki/Packaging_tricks#Executable_stack)

I filed an issue on hcc github for this, I'm not sure why the stack is being
marked as electable.  I fixed this in the specfile too.

> 5. rpmlint complains that "/usr/libexec/hcc/lib64/libLLVM-8-rocm.so"
> contains an invalid soname but AFAIK this is just an internal library which
> has no soname at all.

Yes, it's just an internal library.

> 6. The upstream "hcc" package declares a "NCSA" license but it contains some
> files with a different license:
>    Apache:
>     - stl-test/*.pl.in
>     - tests/Conformance
> 
>    Expat license:
>     - lib/hsa/unpinned_copy_engine.*
>     - hc2/external/elfio 
> 
>    3-clause BSD:
>     - utils/gtest/
> 
>    Expat is probably similar enough to NCSA but I'm not sure what to do with
> the others (only test code as far as I can see).
> 

I've updated the license in the spec file.
> 
> Bikeshedding:
> - changelog: "1.3.18505-2.rocm2.0.0" is the latest but
> "1.3.19020-1.rocm2.0.0" comes before (higher version number). Is that just
> actual recording of history or due to some mishap?
> - "HCC": I think you should use consistent upper-case spelling of HCC
> - spelling in spec file: "trunck", "lincense"
> - rpmlint says: "summary-not-capitalized" for various RPMs

I've fixed all these too.

Comment 13 Tom Stellard 2019-02-28 04:42:48 UTC
SPEC URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00863201-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00863201-hcc/hcc-1.3.18505-2.rocm2.0.0.fc30.src.rpm

I added back the cmake-tests target.  It's not used by our build, but that's one less patch that we have to apply.

Comment 14 Robert-André Mauchin 2019-03-18 23:18:36 UTC
%if 0%{?__isa_bits} == 64
%global build_libdir lib64/
%else
%global build_libdir lib/
%endif

 - Why not use %{_lib}? It resolves to either lib or lib64 depending on the arch.

 -
	-DCMAKE_INSTALL_PREFIX=%{buildroot}/usr \

→

	-DCMAKE_INSTALL_PREFIX=%{buildroot}%{_prefix} \

 - %{_includedir}/* in %files

Includes should go to a devel package

%{_libdir}/cmake/hcc/ too.

Comment 15 Robert-André Mauchin 2019-03-18 23:44:44 UTC
This takes forever to compile.

Comment 16 Felix Schwarz 2019-03-19 08:22:36 UTC
(In reply to Robert-André Mauchin from comment #14)
>  - %{_includedir}/* in %files
> 
> Includes should go to a devel package
> 
> %{_libdir}/cmake/hcc/ too.

Not sure if I understood you correctly but hcc is basically a compiler. As far as I know there are no outside users of these header files so probably it does not make sense to split these in a -devel package.

(In reply to Robert-André Mauchin from comment #15)
> This takes forever to compile.

It builds its bundled copy of llvm :-) Takes about 45 minutes on my machine (from the top of my head, might not be accurate). However you need to kill the "licensecheck" process when using fedora-review. That script will take many hours (only using a single core).

Btw Tom: I noticed that AMD just deprecated HCC with the ROCm 2.2 release:
> Deprecation Notice
>
> AMD is deprecating HCC to put more focus on HIP development and on other languages supporting
> heterogeneous compute. We will no longer develop any new feature in HCC and we will stop
> maintaining HCC after its final release, which is planned for June 2019. If your application
> was developed with the hc C++ API, we would encourage you to transition it to other languages
> supported by AMD, such as HIP or OpenCL. HIP and hc language share the same compiler technology,
> so many hc kernel language features (including inline assembly) are also available through
> the HIP compilation path.
https://github.com/RadeonOpenCompute/hcc/

I assume it still makes sense because hcc is needed right now for the rest of the ROCm stack? (Also the compiler code needs to go somewhere so either they move it into hip or keep hcc around but only as an internal component?)

Comment 17 Felix Schwarz 2019-03-19 08:24:05 UTC
Two more things: Tom, some of your SRPM URLs are 404.

Also in your last revision of the spec file you added "libunwind-devel" with no other changes. Would you mind commenting why you did that?

Comment 18 Tom Stellard 2019-03-19 13:48:23 UTC
(In reply to Felix Schwarz from comment #16)
> (In reply to Robert-André Mauchin from comment #14)
> >  - %{_includedir}/* in %files
> > 
> > Includes should go to a devel package
> > 
> > %{_libdir}/cmake/hcc/ too.
> 
> Not sure if I understood you correctly but hcc is basically a compiler. As
> far as I know there are no outside users of these header files so probably
> it does not make sense to split these in a -devel package.
> 

I took a closer look and most of the header files in /usr/include/ are actually for
the runtime library, so I think putting them in the -devel package makes sense.
The compiler internal headers are still part of the hcc package, but are installed
into /usr/libexec/hcc/

Comment 19 Tom Stellard 2019-03-19 13:49:39 UTC
(In reply to Felix Schwarz from comment #17)
> Two more things: Tom, some of your SRPM URLs are 404.
> 
> Also in your last revision of the spec file you added "libunwind-devel" with
> no other changes. Would you mind commenting why you did that?

Do you mean 'removed' libunwind-devel?  I removed it, because hcc
dropped it as a dependency prior to the ROCm-2.0.0 version.

Comment 20 Tom Stellard 2019-03-19 13:51:33 UTC
SPEC URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00870303-hcc/hcc.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/tstellar/rocm-2.0/fedora-rawhide-x86_64/00870303-hcc/hcc-1.3.18505-2.rocm2.0.0.fc31.src.rpm

- Dropped libunwind-devel dependency.
- Moved headers/cmake files to -devel package.
- Used %{_lib} macro where needed.
- Replaced /usr with %{_prefix}

Comment 21 Tom Stellard 2019-03-19 13:53:53 UTC
(In reply to Felix Schwarz from comment #16)
> (In reply to Robert-André Mauchin from comment #14)
> >  - %{_includedir}/* in %files
> > 
> > Includes should go to a devel package
> > 
> > %{_libdir}/cmake/hcc/ too.
> 
> Not sure if I understood you correctly but hcc is basically a compiler. As
> far as I know there are no outside users of these header files so probably
> it does not make sense to split these in a -devel package.
> 
> (In reply to Robert-André Mauchin from comment #15)
> > This takes forever to compile.
> 
> It builds its bundled copy of llvm :-) Takes about 45 minutes on my machine
> (from the top of my head, might not be accurate). However you need to kill
> the "licensecheck" process when using fedora-review. That script will take
> many hours (only using a single core).
> 
> Btw Tom: I noticed that AMD just deprecated HCC with the ROCm 2.2 release:
> > Deprecation Notice
> >
> > AMD is deprecating HCC to put more focus on HIP development and on other languages supporting
> > heterogeneous compute. We will no longer develop any new feature in HCC and we will stop
> > maintaining HCC after its final release, which is planned for June 2019. If your application
> > was developed with the hc C++ API, we would encourage you to transition it to other languages
> > supported by AMD, such as HIP or OpenCL. HIP and hc language share the same compiler technology,
> > so many hc kernel language features (including inline assembly) are also available through
> > the HIP compilation path.
> https://github.com/RadeonOpenCompute/hcc/
> 
> I assume it still makes sense because hcc is needed right now for the rest
> of the ROCm stack? (Also the compiler code needs to go somewhere so either
> they move it into hip or keep hcc around but only as an internal component?)

It is still a build dependency for HIP, which is really the only reason why I'm
trying to package it.  If HIP ever drops hcc as a dependency then we should
be able to deprecate hcc in Fedora as well, but I'm not sure if and when this
will happen.

Comment 22 Tom Stellard 2019-03-19 13:58:57 UTC
(In reply to Felix Schwarz from comment #17)
> Two more things: Tom, some of your SRPM URLs are 404.
> 

Yes, COPR cleans up the older builds after a certain amount of time.

Comment 23 Robert-André Mauchin 2019-03-19 16:14:40 UTC
LGTM, package is approved.






Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_builtin_vars.h
  hcc : /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_cmath.h hcc
  :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_complex_builtins.h
  hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_device_functions.h
  hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_intrinsics.h hcc
  :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_libdevice_declares.h
  hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_math_forward_declares.h
  hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_runtime_wrapper.h
  hcc : /usr/libexec/hcc/lib64/clang/8.0.0/include/__stddef_max_align_t.h
  hcc : /usr/libexec/hcc/lib64/clang/8.0.0/include/__wmmintrin_aes.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/__wmmintrin_pclmul.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/adxintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/altivec.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/ammintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/arm64intr.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_acle.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_fp16.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_neon.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/armintr.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx2intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512bitalgintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512bwintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512cdintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512dqintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512erintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512fintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512ifmaintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512ifmavlintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512pfintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmi2intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmiintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmivlintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlbitalgintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlbwintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlcdintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vldqintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlvbmi2intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlvnniintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vnniintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vpopcntdqintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vpopcntdqvlintrin.h hcc
  : /usr/libexec/hcc/lib64/clang/8.0.0/include/avxintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/bmi2intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/bmiintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/cetintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/cldemoteintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/clflushoptintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/clwbintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/clzerointrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/cpuid.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/emmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/f16cintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/float.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/fma4intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/fmaintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/fxsrintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/gfniintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/htmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/htmxlintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/ia32intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/immintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/inttypes.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/invpcidintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/iso646.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/limits.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/lwpintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/lzcntintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/mm3dnow.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/mm_malloc.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/mmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/movdirintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/msa.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/mwaitxintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/nmmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/opencl-c.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/pconfigintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/pkuintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/pmmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/popcntintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/prfchwintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/ptwriteintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/rdseedintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/rtmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/s390intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/sgxintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/shaintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/smmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdalign.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdarg.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdatomic.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdbool.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stddef.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdint.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/stdnoreturn.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/tbmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/tgmath.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/tmmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/unwind.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/vadefs.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/vaesintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/varargs.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/vecintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/vpclmulqdqintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/waitpkgintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/wbnoinvdintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/wmmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/x86intrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xmmintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xopintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xsavecintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xsaveintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xsaveoptintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xsavesintrin.h hcc :
  /usr/libexec/hcc/lib64/clang/8.0.0/include/xtestintrin.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages


===== MUST items =====

C/C++:
[-]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
     Note: See rpmlint output
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in hcc ,
     hcc-runtime , hcc-runtime-devel , rocm-device-libs
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: hcc-1.3.18505-2.rocm2.0.0.fc31.x86_64.rpm
          hcc-runtime-1.3.18505-2.rocm2.0.0.fc31.x86_64.rpm
          hcc-runtime-devel-1.3.18505-2.rocm2.0.0.fc31.x86_64.rpm
          rocm-device-libs-0.0.1-2.rocm2.0.0.fc31.noarch.rpm
          hcc-debuginfo-1.3.18505-2.rocm2.0.0.fc31.x86_64.rpm
          hcc-debugsource-1.3.18505-2.rocm2.0.0.fc31.x86_64.rpm
          hcc-1.3.18505-2.rocm2.0.0.fc31.src.rpm
hcc.x86_64: E: devel-dependency hcc-runtime-devel
hcc.x86_64: E: explicit-lib-dependency libstdc++-devel
hcc.x86_64: E: explicit-lib-dependency rocm-device-libs
hcc.x86_64: W: name-repeated-in-summary C HCC
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/clang-offload-bundler ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/hcc ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/llc ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/lld ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/llvm-as ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/llvm-dis ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/llvm-link ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/llvm-objdump ['$ORIGIN/../lib64']
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/bin/opt ['$ORIGIN/../lib64']
hcc.x86_64: W: no-soname /usr/libexec/hcc/lib64/LLVMPromotePointerKernArgsToGlobal.so
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/lib64/LLVMPromotePointerKernArgsToGlobal.so ['$ORIGIN/../lib64']
hcc.x86_64: W: no-soname /usr/libexec/hcc/lib64/LLVMSelectAcceleratorCode.so
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/lib64/LLVMSelectAcceleratorCode.so ['$ORIGIN/../lib64']
hcc.x86_64: E: invalid-soname /usr/libexec/hcc/lib64/libLLVM-8-rocm.so libLLVM-8-rocm.so
hcc.x86_64: E: binary-or-shlib-defines-rpath /usr/libexec/hcc/lib64/libLLVM-8-rocm.so ['$ORIGIN/../lib64']
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_builtin_vars.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_cmath.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_complex_builtins.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_device_functions.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_intrinsics.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_libdevice_declares.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_math_forward_declares.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__clang_cuda_runtime_wrapper.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__stddef_max_align_t.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__wmmintrin_aes.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/__wmmintrin_pclmul.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/adxintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/altivec.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/ammintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/arm64intr.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_acle.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_fp16.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/arm_neon.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/armintr.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx2intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512bitalgintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512bwintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512cdintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512dqintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512erintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512fintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512ifmaintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512ifmavlintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512pfintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmi2intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmiintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vbmivlintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlbitalgintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlbwintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlcdintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vldqintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlvbmi2intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vlvnniintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vnniintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vpopcntdqintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avx512vpopcntdqvlintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/avxintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/bmi2intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/bmiintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/cetintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/cldemoteintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/clflushoptintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/clwbintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/clzerointrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/cpuid.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/emmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/f16cintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/float.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/fma4intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/fmaintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/fxsrintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/gfniintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/htmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/htmxlintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/ia32intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/immintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/inttypes.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/invpcidintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/iso646.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/limits.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/lwpintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/lzcntintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/mm3dnow.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/mm_malloc.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/mmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/movdirintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/msa.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/mwaitxintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/nmmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/opencl-c.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/pconfigintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/pkuintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/pmmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/popcntintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/prfchwintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/ptwriteintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/rdseedintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/rtmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/s390intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/sgxintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/shaintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/smmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdalign.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdarg.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdatomic.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdbool.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stddef.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdint.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/stdnoreturn.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/tbmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/tgmath.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/tmmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/unwind.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/vadefs.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/vaesintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/varargs.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/vecintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/vpclmulqdqintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/waitpkgintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/wbnoinvdintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/wmmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/x86intrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xmmintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xopintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xsavecintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xsaveintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xsaveoptintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xsavesintrin.h
hcc.x86_64: W: devel-file-in-non-devel-package /usr/libexec/hcc/lib64/clang/8.0.0/include/xtestintrin.h
hcc.x86_64: W: no-manual-page-for-binary clamp-config
hcc.x86_64: W: no-manual-page-for-binary extractkernel
hcc.x86_64: W: no-manual-page-for-binary hcc
hcc.x86_64: W: no-manual-page-for-binary hcc-config
hcc.x86_64: W: no-manual-page-for-binary rpt
hcc-runtime.x86_64: W: shared-lib-calls-exit /usr/lib64/libhc_am.so.1.3 exit@GLIBC_2.2.5
hcc-runtime.x86_64: W: shared-lib-calls-exit /usr/lib64/libmcwamp.so.1.3 exit@GLIBC_2.2.5
hcc-runtime.x86_64: E: library-not-linked-against-libc /usr/lib64/libmcwamp_atomic.so.1.3
hcc-runtime.x86_64: W: shared-lib-calls-exit /usr/lib64/libmcwamp_hsa.so.1.3 exit@GLIBC_2.2.5
hcc-runtime.x86_64: W: no-documentation
hcc-runtime-devel.x86_64: W: no-documentation
rocm-device-libs.noarch: W: no-documentation
hcc.src: W: name-repeated-in-summary C HCC
hcc.src:91: W: unversioned-explicit-provides bundled(llvm)
hcc.src:168: W: rpm-buildroot-usage %build -DCMAKE_INSTALL_PREFIX=%{buildroot}%{_prefix} \
7 packages and 0 specfiles checked; 17 errors, 133 warnings.

Comment 24 Gwyn Ciesla 2019-03-20 13:21:28 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/hcc


Note You need to log in before you can comment on or make changes to this bug.