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.