After applying the patches I recently sent to bug-make, I still see several tests failing on native Solaris 10 sparc (32-bit), built with Solaris tools (including Oracle Studio 12.6) instead of with GNU tools. Please see attached files, giving the relevant part of the 'make' output and the *.diff files for the failing tests.

One problem seems to be that some tests assume that 'make check' runs GNU Make instead of /usr/ccs/bin/make, which chatters less.

The work/functions/wildcard test fails because on Solaris 10, the command "/bin/sh -c 'kill -2 $$'" causes /bin/sh to call _exit (2000) (!), and the kernel discards the high order bits and reports the status 2000 % 256 == 208 to the parent process. I suppose one way to work around this is to propagate the 'SHELL = /bin/bash' line of the top-level Makefile into the little test Makefile, since /bin/bash works correctly, but I don't offhand know how to do that propagation.

The archives test fails because /usr/ccs/bin/ar is a bit chattier on Solaris.

The vpathplus test fails due to file name order. Perhaps this is because on Solaris 10 GNU Make uses its own glob, not Solaris's glob.

I don't offhand see why the output-sync tests are failing.
make  check-local
cd tests && perl ./run_make_tests.pl -srcdir 
/var/run/rpc_door/eggert/make-4.2.90 -make ../make 
------------------------------------------------------------------------------
       Running tests for GNU make on SunOS kiwi.cs.ucla.edu 5.10 sun4u
                               GNU Make 4.2.90
------------------------------------------------------------------------------

Finding tests...

features/archives ....................................... FAILED (11/12 passed)
features/comments ....................................... ok     (1 passed)
features/conditionals ................................... ok     (5 passed)
features/default_names .................................. ok     (3 passed)
features/double_colon ................................... ok     (14 passed)
features/echoing ........................................ ok     (4 passed)
features/errors ......................................... FAILED (3/7 passed)
features/escape ......................................... ok     (10 passed)
features/export ......................................... ok     (12 passed)
features/grouped_targets ................................ FAILED (11/12 passed)
features/include ........................................ ok     (19 passed)
features/jobserver ...................................... ok     (6 passed)
features/load ........................................... ok     (5 passed)
features/loadapi ........................................ ok     (3 passed)
features/mult_rules ..................................... ok     (2 passed)
features/mult_targets ................................... ok     (2 passed)
features/order_only ..................................... ok     (10 passed)
features/output-sync .................................... 
Test timed out after 30 seconds
Error running /var/run/rpc_door/eggert/make-4.2.90/tests/../make (expected 0; 
got 14): /var/run/rpc_door/eggert/make-4.2.90/tests/../make -f 
work/features/output-sync.mk -j -Orecurse

Caught signal 14!

Test timed out after 30 seconds
Error running /var/run/rpc_door/eggert/make-4.2.90/tests/../make (expected 0; 
got 14): /var/run/rpc_door/eggert/make-4.2.90/tests/../make -f 
work/features/output-sync.mk.1 -j --output-sync=target

Caught signal 14!

Test timed out after 30 seconds
Error running /var/run/rpc_door/eggert/make-4.2.90/tests/../make (expected 0; 
got 14): /var/run/rpc_door/eggert/make-4.2.90/tests/../make -f 
work/features/output-sync.mk.1 -j --output-sync=target x=

Caught signal 14!
FAILED (11/15 passed)
features/override ....................................... ok     (4 passed)
features/parallelism .................................... ok     (13 passed)
features/patspecific_vars ............................... ok     (10 passed)
features/patternrules ................................... ok     (11 passed)
features/quoting ........................................ ok     (1 passed)
features/recursion ...................................... ok     (3 passed)
features/reinvoke ....................................... ok     (5 passed)
features/rule_glob ...................................... ok     (3 passed)
features/se_explicit .................................... ok     (12 passed)
features/se_implicit .................................... ok     (12 passed)
features/se_statpat ..................................... ok     (4 passed)
features/shell_assignment ............................... ok     (4 passed)
features/statipattrules ................................. ok     (8 passed)
features/suffixrules .................................... ok     (6 passed)
features/targetvars ..................................... ok     (25 passed)
features/utf8 ........................................... ok     (1 passed)
features/varnesting ..................................... ok     (2 passed)
features/vpath .......................................... ok     (2 passed)
features/vpath2 ......................................... ok     (1 passed)
features/vpath3 ......................................... ok     (1 passed)
features/vpathgpath ..................................... ok     (1 passed)
features/vpathplus ...................................... FAILED (3/4 passed)
functions/abspath ....................................... ok     (1 passed)
functions/addprefix ..................................... ok     (1 passed)
functions/addsuffix ..................................... ok     (2 passed)
functions/andor ......................................... ok     (2 passed)
functions/basename ...................................... ok     (1 passed)
functions/call .......................................... ok     (3 passed)
functions/dir ........................................... ok     (1 passed)
functions/error ......................................... ok     (5 passed)
functions/eval .......................................... ok     (9 passed)
functions/file .......................................... ok     (15 passed)
functions/filter-out .................................... ok     (5 passed)
functions/findstring .................................... ok     (1 passed)
functions/flavor ........................................ ok     (1 passed)
functions/foreach ....................................... ok     (6 passed)
functions/guile ......................................... N/A
functions/if ............................................ ok     (1 passed)
functions/join .......................................... ok     (1 passed)
functions/notdir ........................................ ok     (1 passed)
functions/origin ........................................ ok     (1 passed)
functions/realpath ...................................... ok     (3 passed)
functions/shell ......................................... FAILED (5/8 passed)
functions/sort .......................................... ok     (2 passed)
functions/strip ......................................... ok     (2 passed)
functions/substitution .................................. ok     (3 passed)
functions/suffix ........................................ ok     (1 passed)
functions/value ......................................... ok     (1 passed)
functions/warning ....................................... ok     (5 passed)
functions/wildcard ...................................... FAILED (7/8 passed)
functions/word .......................................... ok     (16 passed)
misc/bs-nl .............................................. ok     (28 passed)
misc/close_stdout ....................................... N/A
misc/fopen-fail ......................................... ok     (1 passed)
misc/general1 ........................................... ok     (1 passed)
misc/general2 ........................................... ok     (1 passed)
misc/general3 ........................................... ok     (14 passed)
misc/general4 ........................................... ok     (6 passed)
misc/utf8 ............................................... ok     (1 passed)
options/dash-B .......................................... ok     (8 passed)
options/dash-C .......................................... ok     (2 passed)
options/dash-I .......................................... ok     (3 passed)
options/dash-W .......................................... ok     (10 passed)
options/dash-e .......................................... ok     (1 passed)
options/dash-f .......................................... ok     (4 passed)
options/dash-k .......................................... ok     (3 passed)
options/dash-l .......................................... ok     (1 passed)
options/dash-n .......................................... ok     (6 passed)
options/dash-q .......................................... ok     (11 passed)
options/dash-s .......................................... ok     (11 passed)
options/dash-t .......................................... ok     (2 passed)
options/eval ............................................ ok     (5 passed)
options/general ......................................... ok     (2 passed)
options/print-directory ................................. ok     (4 passed)
options/symlinks ........................................ ok     (10 passed)
options/warn-undefined-variables ........................ ok     (2 passed)
targets/DEFAULT ......................................... ok     (1 passed)
targets/DELETE_ON_ERROR ................................. ok     (2 passed)
targets/FORCE ........................................... ok     (1 passed)
targets/INTERMEDIATE .................................... ok     (8 passed)
targets/ONESHELL ........................................ ok     (5 passed)
targets/PHONY ........................................... ok     (1 passed)
targets/POSIX ........................................... ok     (4 passed)
targets/SECONDARY ....................................... ok     (12 passed)
targets/SILENT .......................................... ok     (3 passed)
targets/clean ........................................... ok     (2 passed)
variables/CURDIR ........................................ ok     (1 passed)
variables/DEFAULT_GOAL .................................. ok     (5 passed)
variables/GNUMAKEFLAGS .................................. ok     (3 passed)
variables/INCLUDE_DIRS .................................. ok     (2 passed)
variables/LIBPATTERNS ................................... ok     (2 passed)
variables/MAKE .......................................... ok     (1 passed)
variables/MAKECMDGOALS .................................. ok     (3 passed)
variables/MAKEFILES ..................................... ok     (2 passed)
variables/MAKEFLAGS ..................................... ok     (3 passed)
variables/MAKELEVEL ..................................... ok     (1 passed)
variables/MAKE_RESTARTS ................................. ok     (3 passed)
variables/MFILE_LIST .................................... ok     (2 passed)
variables/SHELL ......................................... ok     (7 passed)
variables/automatic ..................................... ok     (7 passed)
variables/define ........................................ ok     (16 passed)
variables/flavors ....................................... ok     (11 passed)
variables/negative ...................................... ok     (4 passed)
variables/private ....................................... ok     (10 passed)
variables/special ....................................... ok     (6 passed)
variables/undefine ...................................... ok     (4 passed)
vms/library ............................................. N/A

15 Tests in 7 Categories Failed (See .diff* files in work dir for details) :-(

*** Error code 1
The following command caused the error:
if test -f './tests/run_make_tests'; then \
  ulimit -n 128; \
  if perl -v >/dev/null 2>&1; then \
    case `cd '.'; pwd` in `pwd`) : ;; \
      *) test -d tests || mkdir tests; \
         rm -f srctests; \
         if ln -s './tests' srctests; then \
           for f in run_make_tests run_make_tests.pl test_driver.pl scripts 
jhelp.pl; do \
             rm -f tests/$f; ln -s ../srctests/$f tests; \
           done; fi ;; \
    esac; \
    echo "cd tests && perl ./run_make_tests.pl -srcdir 
/var/run/rpc_door/eggert/make-4.2.90 -make ../make "; \
    cd tests && perl ./run_make_tests.pl -srcdir 
'/var/run/rpc_door/eggert/make-4.2.90' -make '../make' ; \
  else \
    echo "Can't find a working Perl (perl); the test suite requires Perl."; \
  fi; \
else \
  echo "Can't find the GNU Make test suite (./tests)."; \
fi
make: Fatal error: Command failed for target `check-regression'
Current working directory /var/run/rpc_door/eggert/make-4.2.90
*** Error code 1
make: Fatal error: Command failed for target `check-am'
Current working directory /var/run/rpc_door/eggert/make-4.2.90
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in  ?) ;;  *) echo 
"am__make_running_with_option: internal error: invalid"  "target option 
'${target_option-}' specified" >&2;  exit 1;;  esac;  has_opt=no;  
sane_makeflags=$MAKEFLAGS;  if {  if test -z ''; then  false;  elif test -n 
'sparc-sun-solaris2.10'; then  true;  elif test -n '' && test -n ''; then  
true;  else  false;  fi;  }; then  sane_makeflags=$MFLAGS;  else  case 
$MAKEFLAGS in  *\\[\ \  ]*)  bs=\\;  sane_makeflags=`printf '%s\n' "$MAKEFLAGS" 
 | sed "s/$bs$bs[$bs $bs        ]*//g"`;;  esac;  fi;  skip_next=no;  
strip_trailopt ()  {  flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`;  };  for 
flg in $sane_makeflags; do  test $skip_next = yes && { skip_next=no; continue; 
};  case $flg in  *=*|--*) continue;;  -*I) strip_trailopt 'I'; skip_next=yes;; 
 -*I?*) strip_trailopt 'I';;  -*O) strip_trailopt 'O'; skip_next=yes;;  -*O?*) 
strip_trailopt 'O';;  -*l) strip_trailopt 'l'; skip_next=yes;;  -*l?*) 
strip_trailopt 'l';;  -[dEDm]) skip_next=yes;;  -[JT]) skip_next=yes;;  esac;  
case $flg in  *$target_option*) has_opt=yes; break;;  esac;  done;  test 
$has_opt = yes); then \
  failcom='fail=yes'; \
else \
  failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo check-recursive | sed s/-recursive//`; \
case "check-recursive" in \
  distclean-* | maintainer-clean-*) list='lib po doc' ;; \
  *) list='lib po doc' ;; \
esac; \
for subdir in $list; do \
  echo "Making $target in $subdir"; \
  if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
  else \
    local_target="$target"; \
  fi; \
  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \
  || eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
  make  "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `check-recursive'
::::::::::::::
./tests/work/features/archives.diff.10
::::::::::::::
*** work/features/archives.base.10      Tue Aug 27 01:05:39 2019
--- work/features/archives.log.10       Tue Aug 27 01:05:39 2019
***************
*** 5,9 ****
--- 5,10 ----
  a - 1234567890123456a
  touch 1234567890123456b
  ar rv libxx.a 1234567890123456b
+ ar: writing libxx.a
  a - 1234567890123456b
  rm 1234567890123456a 1234567890123456b
::::::::::::::
./tests/work/features/errors.diff.3
::::::::::::::
*** work/features/errors.base.3 Tue Aug 27 01:05:47 2019
--- work/features/errors.log.3  Tue Aug 27 01:05:47 2019
***************
*** 1,3 ****
  ./foobarbazbozblat xx yy
- make: ./foobarbazbozblat: No such file or directory
  make: [work/features/errors.mk.2;2: one] Error 127 (ignored)
--- 1,2 ----
::::::::::::::
./tests/work/features/errors.diff.4
::::::::::::::
*** work/features/errors.base.4 Tue Aug 27 01:05:47 2019
--- work/features/errors.log.4  Tue Aug 27 01:05:47 2019
***************
*** 1,3 ****
  ./foobarbazbozblat aa bb
- make: ./foobarbazbozblat: No such file or directory
  make: [work/features/errors.mk.2;3: two] Error 127 (ignored)
--- 1,2 ----
::::::::::::::
./tests/work/features/errors.diff.5
::::::::::::::
*** work/features/errors.base.5 Tue Aug 27 01:05:47 2019
--- work/features/errors.log.5  Tue Aug 27 01:05:47 2019
***************
*** 1,3 ****
  ./foobarbazbozblat aa bb
- make: ./foobarbazbozblat: No such file or directory
  make: *** [work/features/errors.mk.2;3: two] Error 127
--- 1,2 ----
::::::::::::::
./tests/work/features/errors.diff.6
::::::::::::::
*** work/features/errors.base.6 Tue Aug 27 01:05:47 2019
--- work/features/errors.log.6  Tue Aug 27 01:05:47 2019
***************
*** 1,3 ****
  ./barfooblatboz xx yy
- make: ./barfooblatboz: Permission denied
  make: [work/features/errors.mk.3;2: one] Error 127 (ignored)
--- 1,2 ----
::::::::::::::
./tests/work/features/output-sync.diff
::::::::::::::
*** work/features/output-sync.base      Tue Aug 27 01:06:21 2019
--- work/features/output-sync.log       Tue Aug 27 01:05:51 2019
***************
*** 1,12 ****
- /var/run/rpc_door/eggert/make-4.2.90/tests/../make -C foo
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.90/tests/foo'
- foo: start
- foo: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.90/tests/foo'
- /var/run/rpc_door/eggert/make-4.2.90/tests/../make -C bar
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.90/tests/bar'
- bar: start
- bar: end
- baz: start
- baz: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.90/tests/bar'
--- 0 ----
::::::::::::::
./tests/work/features/output-sync.diff.1
::::::::::::::
*** work/features/output-sync.base.1    Tue Aug 27 01:06:51 2019
--- work/features/output-sync.log.1     Tue Aug 27 01:06:22 2019
***************
*** 4,14 ****
  bar: start
  bar: end
  make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.90/tests/bar'
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.90/tests/foo'
- foo: start
- foo: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.90/tests/foo'
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.90/tests/bar'
- baz: start
- baz: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.90/tests/bar'
--- 4,6 ----
::::::::::::::
./tests/work/features/output-sync.diff.14
::::::::::::::
*** work/features/output-sync.base.14   Tue Aug 27 01:07:28 2019
--- work/features/output-sync.log.14    Tue Aug 27 01:07:28 2019
***************
*** 1,2 ****
- make: ./foo: No such file or directory
  make: *** [work/features/output-sync.mk.14;2: all] Error 127
--- 1 ----
::::::::::::::
./tests/work/features/output-sync.diff.2
::::::::::::::
*** work/features/output-sync.base.2    Tue Aug 27 01:07:21 2019
--- work/features/output-sync.log.2     Tue Aug 27 01:06:52 2019
***************
*** 2,8 ****
  sleep 1 ; /var/run/rpc_door/eggert/make-4.2.90/tests/../make -C bar
  bar: start
  bar: end
- foo: start
- foo: end
- baz: start
- baz: end
--- 2,4 ----
::::::::::::::
./tests/work/features/vpathplus.diff.2
::::::::::::::
*** work/features/vpathplus.base.2      Tue Aug 27 01:07:45 2019
--- work/features/vpathplus.log.2       Tue Aug 27 01:07:45 2019
***************
*** 1,4 ****
  cat work/inter.d > inter.c
  cat inter.c > inter.b 2>/dev/null || exit 1
  cat inter.b > inter.a
! rm inter.b inter.c
--- 1,4 ----
  cat work/inter.d > inter.c
  cat inter.c > inter.b 2>/dev/null || exit 1
  cat inter.b > inter.a
! rm inter.c inter.b
::::::::::::::
./tests/work/functions/shell.diff.5
::::::::::::::
*** work/functions/shell.base.5 Tue Aug 27 01:07:47 2019
--- work/functions/shell.log.5  Tue Aug 27 01:07:47 2019
***************
*** 1,3 ****
- make: ./basdfdfsed: No such file or directory
  hi
  127
--- 1,2 ----
::::::::::::::
./tests/work/functions/shell.diff.6
::::::::::::::
*** work/functions/shell.base.6 Tue Aug 27 01:07:48 2019
--- work/functions/shell.log.6  Tue Aug 27 01:07:47 2019
***************
*** 1,2 ****
- make: ./basdfdfsed: No such file or directory
  127
--- 1 ----
::::::::::::::
./tests/work/functions/shell.diff.7
::::::::::::::
*** work/functions/shell.base.7 Tue Aug 27 01:07:48 2019
--- work/functions/shell.log.7  Tue Aug 27 01:07:48 2019
***************
*** 1 ****
! SIG=130
--- 1 ----
! SIG=208
::::::::::::::
./tests/work/functions/wildcard.diff.7
::::::::::::::
*** work/functions/wildcard.base.7      Tue Aug 27 01:07:49 2019
--- work/functions/wildcard.log.7       Tue Aug 27 01:07:49 2019
***************
*** 1 ****
! __ldir
--- 1 ----
! 
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to