Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1915465
Summary: | libosmium-devel does not compile | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Thomas Sailer <t.sailer> |
Component: | gcc | Assignee: | Jakub Jelinek <jakub> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | aoliva, dmalcolm, fweimer, jakub, jwakely, law, mpolacek, msebor, nickc, sipoyare, tom |
Target Milestone: | --- | Keywords: | Reopened |
Target Release: | --- | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Fixed In Version: | gcc-11.0.0-0.14.fc34 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-01-29 10:35:55 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: | 1914850 |
Description
Thomas Sailer
2021-01-12 17:11:57 UTC
Unreleased compilers are not supported and even if they were this would be a matter for upstream. That means osmium is not usable on Fedora Although an unreleased compiler is not really supported I will note that the compiler you reference is exactly the only which was used to build and test the new libosmium release a few days ago so it clearly does work when used properly. At a guess it's simply not valid to include that one header on it's own but that is something you would need to ask upstream about. I've opened an upstream ticket to see if Jochen thinks this is a genuine issue in libosmium or an issue in gcc that we should move to the gcc component here. I'm pretty sure this is a compiler bug. I can see no reason why instantiating a static object would need a move constructor for the base class of the object which appears to be what is going on here, and both gcc 10 and clang 11 are happy with it. I've created a minimal reproducer: class base { public: base(void) {}; base(base &&) = delete; }; class foo : public base { }; template<typename C> inline C &bar(void) { static C c{}; return c; } const foo &baz(void) { return bar<const foo>(); } which fails to compile with the same error: bug.cpp: In instantiation of ‘C& bar() [with C = const foo]’: bug.cpp:21:25: required from here bug.cpp:15:12: error: use of deleted function ‘base::base(base&&)’ 15 | static C c{}; | ^ bug.cpp:5:3: note: declared here 5 | base(base &&) = delete; | ^~~~ Note, it is only rejected with -std=c++17 and above, with -std=c++14 it is still accepted, and it is rejected since https://gcc.gnu.org/r11-2704 aka https://gcc.gnu.org/PR93711 fix. I think we need a C++ language lawyer here. Thanks Tom and Jakub. My problem is that I need to use C++17 (or later) due to libpqxx... |