Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-21 Thread Paul Smith
On Sat, 2019-09-21 at 12:09 -0700, Paul Eggert wrote:
> On 9/21/19 10:55 AM, Paul Smith wrote:
> > perl -we 'use File::Spec; my @o = File::Spec->splitpath("../make"); 
> > print "@o\n"'
> 
> It outputs a single line containing " ../ make".
> 
> Hmm, I already wrote that, in one of my comments here:
> 
> https://lists.gnu.org/r/bug-make/2019-09/msg00101.html
> 
> Perhaps you didn't see that email?

Nope, that was different.  I had asked you to run a different command:

> > perl -we 'use File::Spec::Functions qw(splitpath); my @o = 
> > splitpath("../make"); print "@o\n"'

and in that email you replied it output:

> A single line " ../make".

Note there is no space between the "../" and "make", which is bad; it
means that command did not work properly at all in your version.

This time I asked you to run this Perl command:

> perl -we 'use File::Spec; my @o = File::Spec->splitpath("../make"); print 
> "@o\n"'

and above you report it returns:

> It outputs a single line containing " ../ make".

Note here there IS a space between "../" and "make", which is good;
that means it worked correctly.

Thanks, that's what I needed to know!  I will convert my usage of
File::Spec to use the object-oriented version instead of
File::Spec::Functions to increase portability.


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-21 Thread Paul Eggert

On 9/21/19 10:55 AM, Paul Smith wrote:

perl -we 'use File::Spec; my @o = File::Spec->splitpath("../make"); print 
"@o\n"'


It outputs a single line containing " ../ make".

Hmm, I already wrote that, in one of my comments here:

https://lists.gnu.org/r/bug-make/2019-09/msg00101.html

Perhaps you didn't see that email?

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-21 Thread Paul Smith
On Mon, 2019-09-16 at 15:49 -0400, Paul Smith wrote:
> Ugh, that's wrong.  It should be " ../ make" (note the space before
> "make").  File::Spec is not correctly splitting the directory from the
> file, apparently.  Bogus!!  Can you try this one:
> 
>   perl -we 'use File::Spec; my @o = File::Spec->splitpath("../make"); print 
> "@o\n"'
> 
> and see what that says?

Paul (or someone else with Solaris 10) did you have a chance to run
this last command and send me the output?

Thanks!


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-16 Thread Paul Smith
On Mon, 2019-09-16 at 12:23 -0700, Paul Eggert wrote:
> > Can you run this and tell me what it prints:
> > 
> >perl -we 'use File::Spec::Functions qw(splitpath); my @o =
> splitpath("../make"); print "@o\n"'
> 
> A single line " ../make".

Ugh, that's wrong.  It should be " ../ make" (note the space before
"make").  File::Spec is not correctly splitting the directory from the
file, apparently.  Bogus!!  Can you try this one:

  perl -we 'use File::Spec; my @o = File::Spec->splitpath("../make"); print 
"@o\n"'

and see what that says?

> > and also this:
> > 
> >perl -we 'use File::Spec; print "$File::Spec::VERSION\n";'
> 
> A single line "0.87".

Hm.  This should be OK.  I must admit I'm not really familiar with the
full history of File::Spec and what was/wasn't supported.

Regarding your errors:

I'm not sure about the output-sync tests.  Could be timing, could be
something else.  I'd be a little surprised if it was timing; I thought
I had made those timeouts more than long enough; they're supposed to
just be sanity checks.  If you want you can up them by changing:

  $tmout = 30;

in tests/scipts/features/output-sync.

The vpathplus difference is due to endian issues; our hash function
returns a different order between big/little endian.  There's a patch
out there to test this in Perl and adjust the expected output.  I'm
still thinking about it.

The wildcard one is probably because Solaris struct dirent doesn't have
a d_type field, or else autoconf can't find it.  Google makes me
suspect the former.

In that situation our current glob library just doesn't try to tell the
difference between files and directories, rather than falling back to
an explicit stat() or something, and so some of these wildcard tests
fail.  I may not fix this before the 4.3 release... it's not a
regression; these tests would fail with the 4.2.1 release as well.  I
may wait until the next release and pull in the latest gnulib glob code
instead of continuing to keep a local, old and crusty version.

The downside is gnulib glob yanks in A LOT of extra stuff and that
makes the non-POSIX ports (native Windows, VMS, DOS, etc.) much more
difficult.  Maybe I should keep the old glob code for those platforms. 
Hm.


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-16 Thread Paul Eggert

On 9/16/19 11:20 AM, psm...@nuodb.com wrote:

On Mon, 2019-09-16 at 11:04 -0700, Paul Eggert wrote:

syntax error at ./run_make_tests.pl line 473, near "or continue"


Ugh.  Can you change this line:

   -x $prog or continue;

to this:

   -x $prog or next;


Thanks, that got the tests to start up. However, 6 tests failed, with 
diagnostics reported below.



Can you run this and tell me what it prints:

   perl -we 'use File::Spec::Functions qw(splitpath); my @o = splitpath("../make"); print 
"@o\n"'


A single line " ../make".


and also this:

   perl -we 'use File::Spec; print "$File::Spec::VERSION\n";'


A single line "0.87".


The failures were the following:

features/vpathplus .. FAILED (3/4 
passed)
functions/shell . FAILED (7/8 
passed)
functions/wildcard .. FAILED (8/9 
passed)


plus the following three timeouts in features/output-sync, perhaps 
because the hardware is reasonably old and slow (a circa-2005 Sun Fire 
280R with 750 MHz UltraSPARC III CPUs).


features/output-sync 
Test timed out after 30 seconds
Error running /var/run/rpc_door/eggert/make-4.2.91/tests/../make 
(expected 0; got 14): /var/run/rpc_door/eggert/make-4.2.91/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.91/tests/../make 
(expected 0; got 14): /var/run/rpc_door/eggert/make-4.2.91/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.91/tests/../make 
(expected 0; got 14): /var/run/rpc_door/eggert/make-4.2.91/tests/../make 
-f work/features/output-sync.mk.1 -j --output-sync=target x=


Caught signal 14!
FAILED (12/15 passed)


I'm attaching a copy of the *.*diff* files.
::
tests/work/functions/shell.diff.7
::
*** work/functions/shell.base.7 Mon Sep 16 12:14:33 2019
--- work/functions/shell.log.7  Mon Sep 16 12:14:33 2019
***
*** 1 
! SIG=130
--- 1 
! SIG=208
::
tests/work/functions/wildcard.diff.6
::
*** work/functions/wildcard.base.6  Mon Sep 16 12:14:33 2019
--- work/functions/wildcard.log.6   Mon Sep 16 12:14:33 2019
***
*** 1,13 
  hellod hellof
! hellod/
  hellod/worldd hellod/worldf
! hellod/worldd/
  hellod hellof hellod/worldd hellod/worldf
! hellod/ hellod/worldd/
  hellod/worldd hellod/worldf
! hellod/worldd/
  hellod/worldd hellod/worldf
  hellod/worldd/
! hellod/worldd/kend1/ hellod/worldd/kend2/
  hellod/worldd/kend1 hellod/worldd/kend2 hellod/worldd/kenf1 
hellod/worldd/kenf2
! hellod/worldd/kend1/ hellod/worldd/kend2/
--- 1,13 
  hellod hellof
! hellod/ hellof
  hellod/worldd hellod/worldf
! hellod/worldd/ hellod/worldf
  hellod hellof hellod/worldd hellod/worldf
! hellod/ hellof hellod/worldd/ hellod/worldf
  hellod/worldd hellod/worldf
! hellod/worldd/ hellod/worldf
  hellod/worldd hellod/worldf
  hellod/worldd/
! hellod/worldd/kend1/ hellod/worldd/kend2/ hellod/worldd/kenf1 
hellod/worldd/kenf2
  hellod/worldd/kend1 hellod/worldd/kend2 hellod/worldd/kenf1 
hellod/worldd/kenf2
! hellod/worldd/kend1/ hellod/worldd/kend2/ hellod/worldd/kenf1 
hellod/worldd/kenf2
::
tests/work/features/output-sync.diff
::
*** work/features/output-sync.base  Mon Sep 16 12:13:07 2019
--- work/features/output-sync.log   Mon Sep 16 12:12:37 2019
***
*** 1,12 
- /var/run/rpc_door/eggert/make-4.2.91/tests/../make -C foo
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.91/tests/foo'
- foo: start
- foo: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.91/tests/foo'
- /var/run/rpc_door/eggert/make-4.2.91/tests/../make -C bar
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.91/tests/bar'
- bar: start
- bar: end
- baz: start
- baz: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.91/tests/bar'
--- 0 
::
tests/work/features/output-sync.diff.1
::
*** work/features/output-sync.base.1Mon Sep 16 12:13:37 2019
--- work/features/output-sync.log.1 Mon Sep 16 12:13:09 2019
***
*** 4,14 
  bar: start
  bar: end
  make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.91/tests/bar'
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.91/tests/foo'
- foo: start
- foo: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.91/tests/foo'
- make[1]: Entering directory '/var/run/rpc_door/eggert/make-4.2.91/tests/bar'
- baz: start
- baz: end
- make[1]: Leaving directory '/var/run/rpc_door/eggert/make-4.2.91/tests/bar'
--- 4,6 
::
tests/work/features/output-sync.diff.2
::
*** work/features/output-sync.base.2Mon Sep 16 12:14:08 2019
--- 

Re: "make check" failure on Solaris 10 with make 4.2.91

2019-09-16 Thread Paul Smith
On Mon, 2019-09-16 at 11:04 -0700, Paul Eggert wrote:
> syntax error at ./run_make_tests.pl line 473, near "or continue"

Ugh.  Can you change this line:

  -x $prog or continue;

to this:

  -x $prog or next;

?  That's a dumb syntax error.  Too many different languages.

However, I don't think we should ever be in this situation.  The only
way we can ever get here is if you ran with "-make make" but you
clearly ran with "-make ../make" so we can't get into this loop.

Can you run this and tell me what it prints:

  perl -we 'use File::Spec::Functions qw(splitpath); my @o =
splitpath("../make"); print "@o\n"'

and also this:

  perl -we 'use File::Spec; print "$File::Spec::VERSION\n";'

Thanks!




___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


"make check" failure on Solaris 10 with make 4.2.91

2019-09-16 Thread Paul Eggert
On Solaris 10 sparc, "make check" fails with the attached output. 
Solaris 10 has Perl v5.8.4 (with 46 registered patches), which is still 
maintained by Oracle (most recently updated in 2016).


I guess the GNU Make test procedure currently requires a later version 
of Perl. If so, it'd be helpful for it to skip tests that require a 
newer version of Perl than what's installed. Or if it's easy to port to 
v5.8.4 that'd be good too.
$ make check
Making check in lib
make  check-recursive
Making check in po
Making check in doc
make  check-local
cd tests && perl ./run_make_tests.pl -srcdir 
/var/run/rpc_door/eggert/make-4.2.91 -make ../make 
syntax error at ./run_make_tests.pl line 473, near "or continue"
Execution of ./run_make_tests.pl aborted due to compilation errors.
*** Error code 255
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.91 -make ../make "; \
cd tests && perl ./run_make_tests.pl -srcdir 
'/var/run/rpc_door/eggert/make-4.2.91' -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.91
*** Error code 1
make: Fatal error: Command failed for target `check-am'
Current working directory /var/run/rpc_door/eggert/make-4.2.91
*** 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'
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make