Bug 374027 - Does not build for i686
Summary: Does not build for i686
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: Icon (show other bugs)
Version: master
Platform: openSUSE Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-22 08:26 UTC by Fabian Vogt
Modified: 2016-12-23 16:21 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Vogt 2016-12-22 08:26:56 UTC
Same as https://bugs.kde.org/show_bug.cgi?id=371721 , but for plasma-workspace

Core issue seems to me that moc does not -D _REDIRECT, so glibc uses an evil

#define open open64

which results in

moc_iconapplet_FERWDM656PUOUJ.cpp:128:21: error: 'class IconApplet' has no member named 'open64'; did you mean 'open'?

IMO this needs to be fixed in Qt, but as everything else works on i686 (except kget, same issue), this is doing something differently.
Maybe other components #include different headers that fix it by #undef open?

(Feel free to close as WONTFIX if it's too ugly to work around in plasma)
Comment 1 Christophe Marin 2016-12-22 10:10:42 UTC
"critical" is used for data loss bugs only.
Comment 2 David Edmundson 2016-12-22 12:40:34 UTC
Copying from the linked bug report #14:

>Wait. Something is really broken on CentOS 6.8 though, because according to http://ac-archive.sourceforge.net/largefile/glibc.html the #define open open64 should only happen when __REDIRECT is not set, and it should be set for gcc >= 2.x, see cdefs.h on that page. Can you check if your system headers match what that page says?
I'm not pushing the #undef hacks after all, they shouldn't be needed.
Comment 3 Fabian Vogt 2016-12-23 16:21:33 UTC
Found the issue: moc does not define __GNUC__, so the

#if defined __GNUC__ && __GNUC__ >= 2

check does not pass inside glibc.

I reported it as https://bugreports.qt.io/browse/QTBUG-57796