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