Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile error on Fedora 28, gcc 8.1.1 (aida.hh) #72

Closed
ngeiswei opened this issue Aug 28, 2018 · 5 comments
Closed

Compile error on Fedora 28, gcc 8.1.1 (aida.hh) #72

ngeiswei opened this issue Aug 28, 2018 · 5 comments
Assignees

Comments

@ngeiswei
Copy link
Contributor

On Fedora 28, gcc 8.1.1, I getting the following compiling error

../aidacc/aida.hh: In instantiation of ‘struct Aida::Has__accept__<std::__cxx11::basic_string<char>, Bse::PspecVisitor, void>’:
../aidacc/visitor.hh:62:23:   required by substitution of ‘template<class A, typename std::enable_if<((((! Aida::Has__accept__<A, Bse::PspecVisitor, void>::value) && (! std::is_base_of<std::__cxx11::basic_string<char>, T>::value)) && (! Aida::DerivesVector<Vector>::value)) && std::is_class<A>::value), bool>::type <anonymous> > void Aida::VisitorDispatcher<Bse::PspecVisitor>::operator()<A, <enumerator> >(A&, Aida::VisitorDispatcher<Bse::PspecVisitor>::Name) [with A = std::__cxx11::basic_string<char>; typename std::enable_if<((((! Aida::Has__accept__<A, Bse::PspecVisitor, void>::value) && (! std::is_base_of<std::__cxx11::basic_string<char>, T>::value)) && (! Aida::DerivesVector<Vector>::value)) && std::is_class<A>::value), bool>::type <anonymous> = <missing>]’
bstapi_interfaces.hh:221:15:   required from ‘void Bst::SrvT_GConfig::__accept__(Visitor&) [with Visitor = Bse::PspecVisitor]’
../sfi/sfivisitors.hh:306:3:   required from ‘SfiRecFields Bse::sfi_pspecs_rec_fields_from_visitable(Visitable&) [with Visitable = Bst::SrvT_GConfig]’
bstgconfig.cc:23:90:   required from here
../aidacc/aida.hh:166:73: error: ‘class std::__cxx11::basic_string<char>’ has no member named ‘__accept__’
 struct Has__accept__<T, V, void_t< decltype (std::declval<T>().template __accept__<V> (*(V*) NULL)) >> : std::true_type {};
                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
@tim-janik
Copy link
Owner

Hm, I'm not seeing that with g++-5 or g++-7.3.0. Also not with clang++-4, 5 or 6 (clang requires recent master though).

I'll see if I can get my hands on g++-8 in the next couple days...

@tim-janik tim-janik added the ⛔ Blocked Issues being blocked, see the project: Blocked Issues label Aug 30, 2018
@tim-janik tim-janik self-assigned this Oct 13, 2018
@Teteros
Copy link
Contributor

Teteros commented Oct 23, 2018

Getting this as well on gcc 8.2.1 (Arch linux)
EDIT: Does seem to compile with clang7 but opened a ticket for seperate build issue #86

@tim-janik
Copy link
Owner

tim-janik commented Oct 25, 2018

I managed to reproduce this with g++ (GCC) 8.1.1 20180712 from Fedora-28.

But it looks like a gcc SFINAE bug to me, it treats a substitution failure as error, even though an alternative substitution exists. All clang versions and gcc < 8 compile this correctly.

it's not too easy to isolate though, I might give this another shot another day to involve the compiler guys.

@swesterfeld do you have gcc >= 8 and can weigh in on this?

@tim-janik
Copy link
Owner

Managed to isolate a test case, g++ bug report can be found here:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87748

@tim-janik
Copy link
Owner

There's no easy workaround for the g++-8.2 SFINAE bug, the code portion that triggers this is vital for the function calls between the UI and the sound engine. So, unless g++-8.3 fixes this and Fedora-28 decides to upgrade and ship, g++-8.3, Fedora-28 builds can unfortunately not be supported.

However I've now created https://github.com/tim-janik/beast/blob/master/misc/Dockerfile.fedora27 and added it to travis-ci, so we see future build issues on Fedora.

Also, since recently, we're building Beast AppImage binaries on Ubuntu-18.04, which have been tested to work well under Fedora-28, these can be found here:
https://bintray.com/beast-team/testing/Beast-AppImage

The AppImage binaries will be announced more broadly with the next release.

@tim-janik tim-janik removed the ⛔ Blocked Issues being blocked, see the project: Blocked Issues label Apr 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants