Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 582480

Summary: kde-base/kdelibs-4.14.19: building w/gcc-6: error: inconsistent user-defined literal suffixes 'reg' and 'reg1' in string literal
Product: Gentoo Linux Reporter: Peter Levine <plevine457>
Component: Current packagesAssignee: Gentoo KDE team <kde>
Status: RESOLVED FIXED    
Severity: normal CC: d, eugene.shalygin, gentoo, hendrik, plevine457
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://bugs.kde.org/show_bug.cgi?id=360735
Whiteboard: tracking upstream
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 582084    
Attachments: kdelibs-4.14.17-gcc6_literals.patch
kdelibs-4.14.17-gcc6_narrowing_hack.patch
kdelibs-4.14.17-glibc_trunc.patch

Description Peter Levine 2016-05-08 21:43:42 UTC
Using gcc-6* to compile kde-base/kdelibs-4.14.19 fails with "error: inconsistent user-defined literal suffixes 'reg' and 'reg1' in string literal"
Comment 1 Peter Levine 2016-05-08 21:50:50 UTC
Created attachment 433684 [details, diff]
kdelibs-4.14.17-gcc6_literals.patch

Patch to fix compilation kdelibs-4.14.19 and kdelibs-4.14.18 with gcc-6* (taken from Fedora)

Patch 1 of 3
Comment 2 Peter Levine 2016-05-08 21:51:39 UTC
Created attachment 433686 [details, diff]
kdelibs-4.14.17-gcc6_narrowing_hack.patch

Patch to fix compilation kdelibs-4.14.19 and kdelibs-4.14.18 with gcc-6* (taken from Fedora)

Patch 2 of 3
Comment 3 Peter Levine 2016-05-08 21:53:02 UTC
Created attachment 433688 [details, diff]
kdelibs-4.14.17-glibc_trunc.patch

Patch to fix compilation kdelibs-4.14.19 and kdelibs-4.14.18 with gcc-6* (taken from Fedora)

Patch 3 of 3
Comment 4 Michael Palimaka (kensington) gentoo-dev 2016-05-12 12:22:54 UTC
These patches should go upstream.
Comment 5 Peter Levine 2016-05-12 18:23:43 UTC
(In reply to Michael Palimaka (kensington) from comment #4)
> These patches should go upstream.

I would agree but, as stated, these are Fedora patches (http://pkgs.fedoraproject.org/cgit/rpms/kdelibs.git/tree/)

I'm a bit apprehensive about submitting patches on behalf of another distribution but I mentioned them here:

https://bugs.kde.org/show_bug.cgi?id=360735
Comment 6 Mark Wright gentoo-dev 2016-05-23 09:55:58 UTC
kde-base/kdelibs-4.14.20-r1 builds fine with gcc version 6.1.0 (Gentoo Hardened 6.1.0 p1.1) using the 3 patches (from Comment 1, 2, 3).
Comment 7 Michael Palimaka (kensington) gentoo-dev 2016-06-15 12:12:36 UTC
This is partially fixed upstream in 4.14.22: https://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=e36051fd7cf46093bf96cb5eb987102a605be52a
Comment 8 Alexey Shvetsov gentoo-dev 2016-07-24 17:15:57 UTC
Yep. But still doesnt build with gcc-6
Comment 9 Alexander Straube 2016-09-12 19:04:50 UTC
I had same issue with =kde-base/kdelibs-4.14.24 and =sys-devel/gcc-6.1.0 but after applying kdelibs-4.14.17-glibc_trunc.patch and kdelibs-4.14.17-gcc6_narrowing_hack.patch everything went through.
Comment 10 Andreas Sturmlechner gentoo-dev 2016-10-12 17:11:16 UTC
Are these patches actually up for review upstream?
Comment 11 devsk 2016-10-19 19:16:53 UTC
kdelibs-4.14.25 fails with:

In file included from /usr/include/math.h:83:0,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.0/include/g++-v6/cmath:45,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.0/include/g++-v6/math.h:36,
                 from /usr/include/OpenEXR/ImathPlatform.h:48,
                 from /usr/include/OpenEXR/ImathMath.h:83,
                 from /usr/include/OpenEXR/ImathVec.h:48,
                 from /usr/include/OpenEXR/ImfHeader.h:51,
                 from /usr/include/OpenEXR/ImfRgbaFile.h:50,
                 from /var/tmp/portage/kde-base/kdelibs-4.14.25/work/kdelibs-4.14.25/kimgio/exr.cpp:15:
/usr/include/bits/mathcalls.h:323:15: error: declaration of 'double trunc(double) throw ()' has a different exception specifier
 __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__));
               ^~~~~
In file included from /var/tmp/portage/kde-base/kdelibs-4.14.25/work/kdelibs-4.14.25_build/config.h:140:0,
                 from /var/tmp/portage/kde-base/kdelibs-4.14.25/work/kdelibs-4.14.25/kimgio/exr.cpp:13:
/var/tmp/portage/kde-base/kdelibs-4.14.25/work/kdelibs-4.14.25_build/kdecore/kdefakes.h:178:8: note: from previous declaration 'double trunc(double)'
 double trunc(double);
        ^~~~~
make[2]: *** [kimgio/CMakeFiles/kimg_exr.dir/build.make:87: kimgio/CMakeFiles/kimg_exr.dir/exr.cpp.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/kde-base/kdelibs-4.14.25/work/kdelibs-4.14.25_build'


Looks like "double trunc(double);" was there because gcc did not have that definition until recently.
Comment 12 Andreas Sturmlechner gentoo-dev 2016-10-19 20:16:06 UTC
This looks like a possible fix? https://quickgit.kde.org/?p=kdelibs.git&a=commit&h=0c642ae95dacf894e50630ffcc1961ad1e4e0322
Comment 13 Joe Kappus 2016-10-19 21:39:56 UTC
That last patch Andreas mentioned in previous comment worked to stop the last build error.
Comment 14 Andreas Sturmlechner gentoo-dev 2016-10-20 21:17:15 UTC
That patch is now in git, and soon on an rsync mirror near you. kde-base/kdelibs-4.14.25 should build successfully in a few hours.