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.

Reply via email to