https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104006

            Bug ID: 104006
           Summary: [12 regression] power-ieee128 merge breaks Solaris
                    build
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org, tkoenig at gcc dot gnu.org
  Target Milestone: ---
            Target: *-*-solaris2.11

Between 20220111 and 20220112, Solaris bootstrap (both sparc and x86) got badly
broken, obviously due to the power-ieee128 merge:

* Initially, the build aborted with

make[2]: *** No rule to make target 'gfortran.ver-sun', needed by 'all'.  Stop.

  This can easily be fixed by renaming the target to gfortran.ver-sun.

* What's way worse, however, is that parallel builds fail repeatedly in
  libgfortran:

  On x86 (-j48), I get

In file included from
/vol/gcc/src/hg/master/local/libgfortran/runtime/bounds.c:25:
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:393:31: error: unknown
type name 'GFC_REAL_4'
  393 | typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_4) gfc_array_r4;
      |                               ^~~~~~~~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:375:3: note: in
definition of macro 'GFC_ARRAY_DESCRIPTOR'
  375 |   type *base_addr;\
      |   ^~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:394:31: error: unknown
type name 'GFC_REAL_8'
  394 | typedef GFC_ARRAY_DESCRIPTOR (GFC_REAL_8) gfc_array_r8;
      |                               ^~~~~~~~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:375:3: note: in
definition of macro 'GFC_ARRAY_DESCRIPTOR'
  375 |   type *base_addr;\
      |   ^~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:404:31: error: unknown
type name 'GFC_COMPLEX_4'
  404 | typedef GFC_ARRAY_DESCRIPTOR (GFC_COMPLEX_4) gfc_array_c4;
      |                               ^~~~~~~~~~~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:375:3: note: in
definition of macro 'GFC_ARRAY_DESCRIPTOR'
  375 |   type *base_addr;\
      |   ^~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:405:31: error: unknown
type name 'GFC_COMPLEX_8'
  405 | typedef GFC_ARRAY_DESCRIPTOR (GFC_COMPLEX_8) gfc_array_c8;
      |                               ^~~~~~~~~~~~~
/vol/gcc/src/hg/master/local/libgfortran/libgfortran.h:375:3: note: in
definition of macro 'GFC_ARRAY_DESCRIPTOR'
  375 |   type *base_addr;\
      |   ^~~~

  also for several other files.  All those definitions live in the generated
  kinds.h.  I cannot yet tell if the header isn't generated atomically.

  On sparc (-j64), I get instead:

/vol/gcc/src/hg/master/local/libgfortran/ieee/ieee_exceptions.F90:28:2:

   28 | #include "c99_protos.inc"
      |  1~~~~~~~~~~
Fatal Error: kinds.inc: No such file or directory

  I notice that there's no .deps/*.Plo file for this source file; probably
  some dependencies are missing.

Manually restarting the libgfortran build (often several times) ultimately
lets the build succeed.

For comparison's sake I also tried -j64 builds on x86_64-pc-linux-gnu and
i686-pc-linux-gnu.  Both succeeded without issues.

Reply via email to