Bug 1415814

Summary: could we provide a newer version of LLVM and clang?
Product: [Fedora] Fedora EPEL Reporter: Hans Ecke <hansecke>
Component: llvmAssignee: Dave Johansen <davejohansen>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: davejohansen, dmitry, lersek, tstellar
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-23 19:43:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Hans Ecke 2017-01-23 19:26:44 UTC
Description of problem:

EPEL provides version 3.4.2 of LLVM, clang and related tools. 3.4.2 was released in June of 2014. The project has made significant progress in the intervening 2.5 years. It would be nice to package 3.9 or the upcoming 4.0 (end of February).

Version-Release number of selected component (if applicable):

3.4.2

How reproducible:

Always

Steps to Reproduce:
1. yum install clang
2. try to use newer features
3. not available
4. find articles on the web how to manually download, compile and install llvm
5. works fine, but is hassle and will leave you stuck with the version you installed manually

Actual results:

Either be stuck at 3.4.2 or download/compile/install manually

Expected results:

"yum install llvm" installs a version that is not older than a year

Additional info:

LLVM is an auxiliary compiler. Binary compatibility is less of an issue than with gcc. Also LLVM is a very fast-moving project. Anybody using LLVM expects a fairly recent version. 

I'm not the only one with this problem. There are a plethora of articles on the web detailing how to install an up to date version of llvm from source on RHEL 7. This shows that there is a need. Just do a google search and you will see.

Comment 1 Dave Johansen 2017-01-23 19:30:48 UTC
3.4 was the last version to not require C++11, so it wouldn't be possible to build a newer version without using devtoolset (which currently isn't allowed in EPEL). Using one of the available COPRs ( https://copr.fedorainfracloud.org/coprs/fulltext/?fulltext=llvm ) is probably the best option for right now.

Comment 2 Hans Ecke 2017-01-23 19:43:00 UTC
Thank you Dave. I'm closing as CANTFIX.

And now anybody who searches bugzilla finds this....

Comment 3 Tom Stellard 2017-09-11 23:06:53 UTC
(In reply to Dave Johansen from comment #1)
> 3.4 was the last version to not require C++11, so it wouldn't be possible to
> build a newer version without using devtoolset (which currently isn't
> allowed in EPEL). Using one of the available COPRs (
> https://copr.fedorainfracloud.org/coprs/fulltext/?fulltext=llvm ) is
> probably the best option for right now.

What about the llvm3.9 compatibility package in EPEL, isn't that built with system gcc?

Comment 4 Laszlo Ersek 2017-09-12 07:52:51 UTC
FWIW, I've rebuilt the following Fedora packages on RHEL-7.4 with no problems, just the other day, using gcc-4.8.5-16.el7.x86_64:

llvm-3.8.1-3.el7.x86_64
clang-3.8.1-1.el7.x86_64
compiler-rt-3.8.1-1.el7.x86_64

The only thing I had to comment out in the clang SPEC file was the documentation (HTML pages and manual pages), because they require python3-sphinx, and RHEL7 has no Python3. I figured I'd look up the docs on the web, should I need them.

Also, I think LTO does not work; the RHEL-7 binutils (even from devtoolset-6) don't seem to support LLVM bitcode. As far as I read, I'd need the "llvmgold" (?) linker plugin for that. However, for my limited use case -- just checking whether OVMF builds with clang-3.8 without warnings -- I don't need LTO; I can build OVMF for the NOOPT target.

Comment 5 Dmitry Butskoy 2020-02-01 20:57:37 UTC
(In reply to Dave Johansen from comment #1)
> 3.4 was the last version to not require C++11, so it wouldn't be possible to
> build a newer version without using devtoolset (which currently isn't
> allowed in EPEL). 

I would like to note that devtoolset-8 is now provided for koji build environment.

More recent Clang in epel7 is required due to some technical reasons of how koji build repo is generated.
Currently, devtoolset-8 is available, but other ones (llvm-toolset, rust-toolset etc.) are not. You can install the proper llvm-toolset-7.0-clang package locally and build what you want, but you cannot use it for koji builds. Hence an own epel's one is needed anyway.

Please, consider whether it is possible now to provide either newer clang version for epel7, or a newer clang's package to install "in parallel" (aka clang7.0 in Fedora, but not just libs).

Reopen.