"make check" failure on Solaris 10 with make 4.2.91

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

"make check" failure on Solaris 10 with make 4.2.91

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.

_______________________________________________
Bug-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make

log.txt (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

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

Paul Smith-20
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
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make
Reply | Threaded
Open this post in threaded view
|

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

Paul Eggert
In reply to this post by Paul Eggert
On 9/16/19 11:20 AM, [hidden email] 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.

_______________________________________________
Bug-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make

make-fail-log.txt (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

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

Paul Smith-20
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
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make
Reply | Threaded
Open this post in threaded view
|

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

Paul Smith-20
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
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make
Reply | Threaded
Open this post in threaded view
|

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

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
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make
Reply | Threaded
Open this post in threaded view
|

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

Paul Smith-20
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
[hidden email]
https://lists.gnu.org/mailman/listinfo/bug-make