Overview

Request 842645 superseded

- Update to version 0.2.0+llvm11.
The repository that we extracted the tar ball from isn't updated
any longer. So we extract from the llvm-project monorepo, but do
this locally for now because the repo is pretty big.
- The build now uses CMake instead of a custom Python script.
- Remove dependencies on gcc, libstdc++-devel, ncurses and zlib.
- The provided package consists of LLVM bitcode files, which are
not necessarily backwards-compatible across major versions.
(https://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility)
So we let the package provide a symbol libclc(llvmXX).
- The library files have moved from %{_libdir} to %{_datadir}.

Loading...

Aaron Puchert's avatar

Motivation here is that the current libclc doesn't build with LLVM 11, so I had to do the update. If you look at the repo that we were using (https://github.com/llvm-mirror/libclc) you'll find that it hasn't been updated in a while and the webpage (https://libclc.llvm.org/) recommends checking out the monorepo now.


Jimmy Berry's avatar

I would like some additional input on how we handle monorepos like this. I can see breaking it out as you have done, but I could also see that adding maintenance burden and making it harder/impossible to verify source integrity at which point including the full source and just building a subsection may be the only practical way forward.

@dimstar


Aaron Puchert's avatar

Strangely libclc is versioned separately despite being part of the monorepo and there are no release tarballs for LLVM releases like https://github.com/llvm/llvm-project/releases/tag/llvmorg-11.0.0.

I was thinking about asking the maintainers whether we can have this tarball. For the release manager it's probably not much more effort, and it also means they can have links to tar ball instead of asking users to clone the entire repo.

Edit: opened https://bugs.llvm.org/show_bug.cgi?id=47917.


Jimmy Berry's avatar

So far response seems positive. Lets give this a few days and see where we stand unless there is a pressing reason to update this.


Ludwig Nussel's avatar

the tar_scm service also has a subdir parameter


Aaron Puchert's avatar

Does that still check out the whole repo though? The llvm-project repository is pretty large and libclc is just a small fraction of that.


Aaron Puchert's avatar

Would be nice if you could accept this for now, if it is Ok. I have sr#843888 and sr#843890 (the LLVM 11 major version update) for Factory that depend on this. And I have proposed publishing a libclc tarball in https://reviews.llvm.org/D90100, which will at least give us something for LLVM 11.0.1, if we can't have it retroactively for 11.0.0.

By the way, I think the procedure is reproducible because git archive apparently defaults to the proper settings, unlike plain tar.


Aaron Puchert's avatar

My change just landed, so we'll get tarballs for libclc in the future. I've asked whether we can also have a tarball for 11.0.0 retroactively, let's see how that goes.



Aaron Puchert's avatar

Just got the news that we have a libclc tarball for LLVM 11, so I will fix this.

Request History
Aaron Puchert's avatar

aaronpuchert created request

- Update to version 0.2.0+llvm11.
The repository that we extracted the tar ball from isn't updated
any longer. So we extract from the llvm-project monorepo, but do
this locally for now because the repo is pretty big.
- The build now uses CMake instead of a custom Python script.
- Remove dependencies on gcc, libstdc++-devel, ncurses and zlib.
- The provided package consists of LLVM bitcode files, which are
not necessarily backwards-compatible across major versions.
(https://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility)
So we let the package provide a symbol libclc(llvmXX).
- The library files have moved from %{_libdir} to %{_datadir}.


openSUSE Build Service is sponsored by