Bug 1803351
Summary: | mesa builds fail with llvm 10.0.0 rc1/rc2 on ppc64le | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Pete Walter <walter.pete> |
Component: | llvm | Assignee: | Tom Stellard <tstellar> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 32 | CC: | ajax, dan, dmalcolm, jakub, jistone, klember, scottt.tw, sean, sguelton, siddharth.kde, tstellar |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | mesa-20.0.0-2.fc32 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-02-26 17:05:44 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: | |||
Bug Depends On: | |||
Bug Blocks: | 1071880 |
Description
Pete Walter
2020-02-15 12:26:57 UTC
the errors start with In file included from /usr/include/llvm/IR/Module.h:19, from ../src/gallium/state_trackers/clover/llvm/codegen.hpp:35, from ../src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp:34: /usr/include/llvm/ADT/STLExtras.h:559:49: error: 'std::index_sequence' has not been declared 559 | template <size_t... Ns> value_type deref(std::index_sequence<Ns...>) const { | ^~~~~~~~~~~~~~ /usr/include/llvm/ADT/STLExtras.h:559:63: error: expected ',' or '...' before '<' token 559 | template <size_t... Ns> value_type deref(std::index_sequence<Ns...>) const { | ^ /usr/include/llvm/ADT/STLExtras.h:564:36: error: 'std::index_sequence' has not been declared 564 | decltype(iterators) tup_inc(std::index_sequence<Ns...>) const { | ^~~~~~~~~~~~~~ /usr/include/llvm/ADT/STLExtras.h:564:50: error: expected ',' or '...' before '<' token 564 | decltype(iterators) tup_inc(std::index_sequence<Ns...>) const { | ^ /usr/include/llvm/ADT/STLExtras.h:569:36: error: 'std::index_sequence' has not been declared so my first guess is a missing #include ... This looks like a bug in the mesa build. On ppc64le it's compiling with -std=gnu++11, but on other arches it is compiling with -std=gnu++14. LLVM uses c++14 features, so compiling with -std=gnu++11 won't work. Ahh, that makes sense. Indeed, mesa has this in meson.build: if host_machine.cpu_family().startswith('ppc') and cpp.compiles(''' #if !defined(__VEC__) || !defined(__ALTIVEC__) #error "AltiVec not enabled" #endif''', name : 'Altivec') clover_cpp_std += ['cpp_std=gnu++11'] endif ... which ends up forcing gnu++11 on ppc arches. I went ahead and hacked around this in https://src.fedoraproject.org/rpms/mesa/c/bd392f431cc481ea754581d3052959bb7454ca5b (In reply to Kalev Lember from comment #3) > Ahh, that makes sense. Indeed, mesa has this in meson.build: > > if host_machine.cpu_family().startswith('ppc') and cpp.compiles(''' > #if !defined(__VEC__) || !defined(__ALTIVEC__) > #error "AltiVec not enabled" > #endif''', > name : 'Altivec') > clover_cpp_std += ['cpp_std=gnu++11'] > endif > > ... which ends up forcing gnu++11 on ppc arches. which is probably from times, when the default was c++11 and using the altivec required gnu++11, because of some gnu extensions |