[Bug pch/68176] New: [4.8/4.9 Regression] all pch tests fail on eglibc systems (with bits/predefs.h)
nix at esperi dot org.uk
gcc-bugzilla@gcc.gnu.org
Sun Nov 1 17:09:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68176
Bug ID: 68176
Summary: [4.8/4.9 Regression] all pch tests fail on eglibc
systems (with bits/predefs.h)
Product: gcc
Version: 4.9.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: pch
Assignee: unassigned at gcc dot gnu.org
Reporter: nix at esperi dot org.uk
Target Milestone: ---
Since the fix to bug 65550, more or less all pch tests fail, with symptoms
identical to those reported in bug 55399:
FAIL: gcc.dg/pch/common-1.c -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O0 -g assembly comparison
FAIL: gcc.dg/pch/common-1.c -O0 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O0 assembly comparison
FAIL: gcc.dg/pch/common-1.c -O1 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O1 assembly comparison
FAIL: gcc.dg/pch/common-1.c -O2 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O2 assembly comparison
FAIL: gcc.dg/pch/common-1.c -O3 -fomit-frame-pointer -I. -Dwith_PCH (test
for excess errors)
FAIL: gcc.dg/pch/common-1.c -O3 -fomit-frame-pointer assembly comparison
FAIL: gcc.dg/pch/common-1.c -O3 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -O3 -g assembly comparison
FAIL: gcc.dg/pch/common-1.c -Os -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/common-1.c -Os assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O0 -g assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O0 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O0 assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O1 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O1 assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O2 -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O2 assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O3 -fomit-frame-pointer -I. -Dwith_PCH (test
for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O3 -fomit-frame-pointer assembly comparison
FAIL: gcc.dg/pch/counter-1.c -O3 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -O3 -g assembly comparison
FAIL: gcc.dg/pch/counter-1.c -Os -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/counter-1.c -Os assembly comparison
[etc etc ad nauseam]
The failures are all identical in the logs: a refusal to use common-1.h.gch,
thus an attempt to find common-1.h, which has specifically been removed to
ensure that PCH is used.
The underlying cause of this is that on eglibc -- but not glibc -- systems,
/usr/include/stdc-predef.h itself includes <bits/predefs.h>, and that
inclusion, being done by a normal #include, does not get implicit_preinclude
set. So all PCH inclusion fails, spuriously.
eglibc is pretty dead by now: it may be that we don't care about this. But
there are still systems using it, and they were broken by this change.
More information about the Gcc-bugs
mailing list