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

            Bug ID: 109135
           Summary: Wrong make utility called with LTO testsuite
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kargl at gcc dot gnu.org
  Target Milestone: ---

It seems the wrong make utility is being invoked when the testsuite tries to
run tests for LTO.  On FreeBSD, make is BSD make.  GNU make is installed as
gmake.  After bootstrapping gcc with gfortran support, I move into the obj/gcc
directory an execute 

% gmake -j6 check-fortran

There a number of failures reported.  In fact, with 'gmake -j6 check' is a
massive number of failures.  Looking into testsuite/gfortran/gfortran.log, I
see for example,


Executing on host: /usr/home/sgk/gcc/objx/gcc/testsuite/gfortran/../../gfortran
  -B/usr/home/sgk/gcc/objx/gcc/testsuite/gfortran/../../
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/
    /usr/home/sgk/gcc/gccx/gcc/testsuite/gfortran.dg/pr71526.f90 
  -fdiagnostics-plain-output  -fdiagnostics-plain-output  -O  -O2 -flto  
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libatomic/.libs
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -lm  -o pr71526.exe    (timeout = 300)
spawn -ignore SIGHUP /usr/home/sgk/gcc/objx/gcc/testsuite/gfortran/../../\
  gfortran
  -B/usr/home/sgk/gcc/objx/gcc/testsuite/gfortran/../../
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/
  /usr/home/sgk/gcc/gccx/gcc/testsuite/gfortran.dg/pr71526.f90
  -fdiagnostics-plain-output -fdiagnostics-plain-output -O -O2 -flto
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libgfortran/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libatomic/.libs
  -B/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -L/usr/home/sgk/gcc/objx/x86_64-unknown-freebsd14.0/./libquadmath/.libs
  -lm -o pr71526.exe
make[2]: illegal argument to -j -- must be positive integer!
FAIL: gfortran.dg/pr71526.f90   -O  (test for excess errors)
Excess errors:
make[2]: illegal argument to -j -- must be positive integer!

With BSD make and if one my projects, I see

% make -j Makefile
make: illegal argument to -j -- must be positive integer!
% make -j 0 Makefile
make: illegal argument to -j -- must be positive integer!
% make -j -6 Makefile
make: illegal argument to -j -- must be positive integer!

If run gmake with a Makefile suitable for gmake, I see
% gmake -j -6 -f Makefile.gnu
<GNU make usage message>
% gmake -j 0 -f Makefile.gnu
<GNU make usage message>
% gmake -j  -f Makefile.gnu
<GNU make builds my project>

I suspect the something in the testsuite is spawning a submake where the last
'gmake -j' example above is being spawned as the first 'make -j' example above.

Reply via email to