Summary: | media-gfx/pixie-2.2.6-r1 : ../.../mathSpec.h:548:37: error: ‘max’ was not declared in this scope | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jstein, plevine457, proxy-maint, treecleaner |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=632700 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 582084, 630844 | ||
Attachments: |
emerge-history.txt
environment media-gfx:pixie-2.2.6-r1:20160919-111159.log |
Description
Toralf Förster
2016-09-19 11:34:33 UTC
Created attachment 446614 [details]
emerge-history.txt
Created attachment 446616 [details]
environment
Created attachment 446618 [details]
media-gfx:pixie-2.2.6-r1:20160919-111159.log
(In reply to Toralf Förster from comment #3) why ? Fix or remove from tree... Needed for gcc-6 support. *** Bug 630008 has been marked as a duplicate of this bug. *** This beast declares "#define min ..." etc in a global.h header file. Which stops working properly with gcc-6, independent of a -std=gnu++98 setting. I've had a look at this. The package defines its own `min` and `max` function-like macros which conflict with functions of GCC-6 with the same name and the symbols get hidden causing build failure. Attempting to force `std::min` and `std::max` failed as those rely on arguments being of the same type and the source code freely mixes floating point and integral types as arguments. Allowing the code to use a C++11 solution (eg., templated constexpr functions with type-traits) when compiling in a post-C++11 dialect also failed since `-std=c++98` could be passed and It appears the problem is just related to GCC-6, not the dialect as well. The only solutions appears to be either dropping the package from the Gentoo tree or patching the macro names at their definition and every point of use with a massive patch. I made a patch at https://sourceforge.net/p/pixie/patches/23 but it's too big for repoman. Note: I suppose it might be possible to use the original patch I submitted to https://sourceforge.net/p/pixie/patches/23 (https://sourceforge.net/p/pixie/patches/23/attachment/pixie-2.2.6-gcc6.patch) and use toolchain-funcs to see if >=gcc-6 is being used and if so, append `-std=c++14` to the CXXFLAGS, but it's ugly. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71ad61ddbc9ccffc404ea2866f81fc4d8f7a835d commit 71ad61ddbc9ccffc404ea2866f81fc4d8f7a835d Author: Andreas K. Hüttel <dilfridge@gentoo.org> AuthorDate: 2017-10-13 19:22:37 +0000 Commit: Andreas K. Hüttel <dilfridge@gentoo.org> CommitDate: 2017-10-13 19:22:53 +0000 media-gfx/pixie: Add patch by Peter Levine for gcc-6 compatibility, bug 594354. Many thanks! Closes: https://bugs.gentoo.org/show_bug.cgi?id=594354 Package-Manager: Portage-2.3.11, Repoman-2.3.3 media-gfx/pixie/Manifest | 1 + media-gfx/pixie/pixie-2.2.6-r1.ebuild | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) |