Bug 23554 - gcc internal compiler error while compiling chromium 69
Summary: gcc internal compiler error while compiling chromium 69
Status: RESOLVED OLD
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 6
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Base system maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-10 02:25 CEST by Christiaan Welvaart
Modified: 2020-08-02 22:06 CEST (History)
3 users (show)

See Also:
Source RPM: gcc-5.5.0-1.mga6.src.rpm
CVE:
Status comment:


Attachments

Description Christiaan Welvaart 2018-09-10 02:25:04 CEST
Description of problem:
While compiling skcms.cc from chromium 69 (the web browser) on x86-64, gcc exits with the error message "internal compiler error: in verify_ctor_sanity, at cp/constexpr.c:2259".

Version-Release number of selected component (if applicable):
Both gcc 5.4.x and 5.5.x have this problem (gcc 8 works).

How reproducible:

bug.cc
======
typedef float __attribute__((vector_size(16))) Fx4;
typedef int __attribute__((vector_size(16))) I32x4;

#define F0 Fx4{0,0,0,0}
#define F1 Fx4{1,1,1,1}

#define if_then_else(c,t,e) ( ((c) & (I32x4)(t)) | (~(c) & (I32x4)(e)) )

static inline __attribute__((always_inline)) Fx4 func(float d, Fx4 x) {
    Fx4 sign = (Fx4)if_then_else(x < 0, -F1, F1);

    return sign * (Fx4)if_then_else(x < d, x, x);
}


cmdline
=======
g++ -c -std=c++11 bug.cc


result
======
bug.cc: In function ‘Fx4 func(float, Fx4)’:
bug.cc:7:47: internal compiler error: in verify_ctor_sanity, at cp/constexpr.c:2259
 #define if_then_else(c,t,e) ( ((c) & (I32x4)(t)) | (~(c) & (I32x4)(e)) )
                                               ^
bug.cc:12:24: note: in expansion of macro ‘if_then_else’
     return sign * (Fx4)if_then_else(x < d, x, x);
                        ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.mageia.org/> for instructions.
Comment 1 Christiaan Welvaart 2018-09-10 04:44:59 CEST
I can work around this problem by disabling the vector optimizations.
Marja Van Waes 2018-09-11 19:47:35 CEST

Assignee: bugsquad => basesystem
CC: (none) => marja11, tmb

Comment 2 Thomas Backlund 2018-09-11 22:08:20 CEST
Thanks for the testcase...

There is now a gcc-5.5.0-2.mga6 currently building that passes the testcase build
David Walser 2018-09-11 23:33:37 CEST

Blocks: (none) => 23558

Comment 3 Christiaan Welvaart 2018-09-15 07:56:34 CEST
Thanks, that appears to work, but... when enabling debug info, gcc crashes on the same source file in a very different place (debug info generation).

Anyway, debug info is normally disabled for all chromium builds, I only enabled it because the build (with vector optimization disabled in this specific module) crashes at startup. But debugging chromium is quite impossible because gcc generates more than 4GiB of .debug_info while it assumes offsets into that section fit in 32 bits. With a patched gcc (and rebuilt glibc), the build succeeds but gdb refuses to read the debug info.

Building with mga6 clang did not work either. Is there a simple way to build a gcc8 package on mga6? I guess using gcc5 libstdc++ is not possible...
Christiaan Welvaart 2019-09-15 00:28:17 CEST

Blocks: 23558 => (none)

Comment 4 Aurelien Oudelet 2020-08-02 22:06:33 CEST
This message is a reminder that Mageia 6 is end of life.

Mageia stopped maintaining and issuing updates for Mageia 6. At that time this bug will be closed as OLD (EOL).

Package Maintainer: If you wish for this bug to remain open because you plan to 
fix it in a currently maintained version, simply change the 'version' to a later 
Mageia version prior to Mageia 6's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that we cannot 
be able to fix it before Mageia 6 was end of life.
If you would still like to see this bug fixed and are able to reproduce it against a later version of Mageia, you are encouraged to click on "Version" and change it against that version of Mageia.

Although we aim to fix as many bugs as possible during every release's lifetime, 
sometimes those efforts are overtaken by events. Often a more recent Mageia 
release includes newer upstream software that fixes bugs or makes them obsolete.

--
Mageia Bugsquad

Resolution: (none) => OLD
Status: NEW => RESOLVED
CC: (none) => ouaurelien


Note You need to log in before you can comment on or make changes to this bug.