Skip to content

failure in make check

2 messages · Don MacQueen, Peter Dalgaard

#
I have a failure in 'make check' and I would appreciate assistance 
regarding what to do about it.
Thanks
   -Don

Installing R-1.2.3 on
    build[99]% uname -sr
    SunOS 5.8
(for those who may recall my previous request for help, I have 
updated GCC to 2.95.3, and configured with gcc, GCC's c++, and f77 
[not g77])

Running 'make check' got this:

creating `no-segfault.R'
running `no-segfault.R'
*** Error code 138
make: Fatal error: Command failed for target `no-segfault.Rout'
Current working directory /erd/statistic/apps/R/R-1.2.3/build/tests
*** Error code 1
make: Fatal error: Command failed for target `test-Specific'
Current working directory /erd/statistic/apps/R/R-1.2.3/build/tests
*** Error code 1
make: Fatal error: Command failed for target `test-All'
Current working directory /erd/statistic/apps/R/R-1.2.3/build/tests
*** Error code 1
make: Fatal error: Command failed for target `test-All'

------ details ------

As described in INSTALL:
You do not necessarily have to build R in the top-level source directory
(say, TOP_SRCDIR).  To build in BUILDDIR, cd there and run

	TOP_SRCDIR/configure
	make

TOP_SRCDIR is:  longpath/R/R-1.2.3/source
BUILDDIR is:    longpath/R/R-1.2.3/build

I'm using Sun's make, but INSTALL indicates this is ok for SunOS 5.8.

Near the beginning of no-segfault.Rout is this:
Error: binary operations require two arguments
Error in f(NULL) : invalid argument type

Followed by more expressions and more error messages. There are many, 
many Errors reported in this (very long) file.

Near the end, the last comment indicating, if I understand correctly, 
what's being tested, I find
... lines that look ok omitted ...
Error in all(arg == choices) : Object "l0" not found
Error in all(arg == choices) : Object "c0" not found
Error in all(arg == choices) : Object "df0" not found
Error in pmatch(x, table, duplicates.ok) :
	argument is not of mode character
$surface
[1] "interpolate"

$statistics
[1] "approximate"

$trace.hat
[1] "exact"

$cell
[1] 0.2

$iterations
[1] 4

The file ends at this point, so apparently it didn't run the rest of 
the input file. That is, no-segfault.R continues with
   ##  loess.smooth  :
but this doesn't appear in no-segfault.Rout.

I haven't found a file named no-segfault.Rout.save to tell me what 
the Rout should look like.
#
Don MacQueen <macq at llnl.gov> writes:
...
Yes. The purpose of that check is to try a whole lot of illegal
commands in a systematic fashion (e.g. log(list()) ), so you're
supposed to get a whole lot of Errors, but no segfault.
.....
Unfortunately, a fatal error will often crash R before writing the
very last bit of output. The way to figure it out would be to go to
the tests directory and run 

../bin/R --vanilla < no-segfault.R

i.e. just what the makefile does but omitting the output file so that
output goes unbuffered to the screen. To debug further, use

../bin/R -d gdb

and inside gdb, exec

run --vanilla < no-segfault.R

(although it might be better first to see whether the offending
command also crashes R when executed by itself and then use that for
debugging)
Not sure that would be of much use...