[Rd] R-2.2.0: malloc probelm in regex code (PR#8287)

2005-11-08 Thread gml4410
Full_Name: Gordon Lack
Version: 2.2.0
OS: OSF1/Tur64
Submission from: (NULL) (193.128.25.20)


R-2.2.0 fails to build on OSF1 systems.

.
make[4]: Leaving directory `/R-2.2.0/src/library/tools/src
Error in list.files(path, pattern, all.files, full.names, recursive) :
invalid 'pattern' regular expression
Execution halted
make[3]: *** [all] Error 1
.



I've tracked down the problem to change (somewhere) in 2.2.0 vs. 2.1.1 which has
resulted in re_node_set_alloc() (in src/main/regex.c) being called with a size
of 0.  Whereas some system (Solaris, Linux, ...) return a valid pointer to a
zero-size allocation, OSF1 returns a NULL pointer on a 0 allocation request
(documented as such, and the Open Group Base Specifications Issue 6 documents
that either may happen).  The calling code treats a NULL return as a ESPACE
error.

In R-2.1.1 this code was not asked to allocate 0 sizes, so I suspect that it
shouldn't be happening here either.

A workaround is to add:

   if (size==0) size=1; /* OSF1 (at least) returns NULL on 0 alloc */

before the re_malloc (int, size) line in re_node_set_alloc(), which just means
you allocate a small space (which shodul be free()d soon anyway).

The actual regex whcih triggers this during the build is:

 ^tools($|_)

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] R 2.8.0. INSTALL script error on Solaris2.8 (PR#13261)

2008-11-07 Thread gml4410
Full_Name: Gordon Lack
Version: 2.8.0
OS: Solaris 2.8
Submission from: (NULL) (198.28.92.5)


The INSTALL.in script in src/scripts has this at line 620:

if ! test -f "${R_INCLUDE_DIR}/R.h" ; then

That fails to run under sh on Solaris (itis OK in bash, which is why it runs OK
on Linux).

The correct sh syntax is:

if test ! -f "${R_INCLUDE_DIR}/R.h" ; then

i.e. test understands that ! means not, but the if statement in sh doesn't.

The result of this is that you get error messages tryign to install extensions
on Solaris.

/the/path/to/my/installation/2.8.0/lib/R/bin/INSTALL: !: not found

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] configure issue (PR#9379)

2006-11-23 Thread gml4410
Full_Name: Gordon Lack
Version: 2.4.0
OS: Redhat Linux AS2.1
Submission from: (NULL) (198.28.92.5)


Not sure whether this is a configure issue or an R one.

It's only a minor issue, so this is really just FYI.

The code in configure checks for the version of makeinfo by splitting the
version string into a major and minor component.  The tests on these assume they
are numeric.

RHAS2.1 shipped with a makeinfo version of "4.0b"

The result is this:
=
checking whether makeinfo version is at least 4.7...
 ./configure: test: 0b: integer expression expected
yes
=

ie: an error reported, but the test passed (4.0b > 4.7!!!).

And there is no command line option to tell configure not to run the makeinfo
commands (you can set r_cv_prog_makeinfo_v4=0 in your environment, but that
isn't "right").

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] OSF1 build fails (PR#9380)

2006-11-23 Thread gml4410
Full_Name: Gordon Lack
Version: 2.4.0
OS: OSF1 5.1
Submission from: (NULL) (198.28.92.5)


Attempts to build R 2.4.0 on an OSF1 5.1 system result in:

==
gcc -I. -I../../src/include -I../../src/include ..
In file included from dynload.c:33:
../../src/include/Defn.h:554: error: parse error before "R_CStackLimit"
../../src/include/Defn.h:554: warning: type defaults to `int' in declaration of
`R_CStackLimit'
../../src/include/Defn.h:554: warning: data definition has no type or storage
class
../../src/include/Defn.h:555: error: parse error before "R_CStackStart"
../../src/include/Defn.h:555: warning: type defaults to `int' in declaration of
`R_CStackStart'
../../src/include/Defn.h:555: warning: data definition has no type or storage
class
==

This is a result of uintptr_t being undefined at this point.

This is caused by HAVE_DECL_SIZE_MAX not being defined on OSF1 and so
 is not included.

Moving the inclusion of  (which is already conditional on having it)
out of the SIZE_MAX test block cures the problem.

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] Solaris build produces worrying warning. (PR#9382)

2006-11-24 Thread gml4410
Full_Name: Gordon Lack
Version: 2.4.0
OS: Solaris8
Submission from: (NULL) (198.28.92.5)


   A 32-bit compile of R-2.4.0 on Solaris8 (using gcc3.4.3) produces this:

==
make[3]: Entering directory `/var/tmp/gml-R/R-2.4.0/src/extra/pcre'
gcc -I.  -I.  -I../../../src/include -I../../../src/include ... -DHAVE_CONFIG_H
-g -O2 -std=gnu99 -c dftables.c -o dftables.o
In file included from pcre_internal.h:68,
 from dftables.c:50:
../../../src/include/config.h:903:1: warning: "_FILE_OFFSET_BITS" redefined
In file included from /usr/include/iso/ctype_iso.h:30,
 from /usr/include/ctype.h:18,
 from dftables.c:46:
/usr/include/sys/feature_tests.h:96:1: warning: this is the location of the
previous definition
==

_FILE_OFFSET_BITS is being redefined from 32 to 64 here, which I find slightly
worrying.

The problem is caused by stdio.,h being included before config.h.  The former
sets _FILE_OFFSET_BITS to 32 if it is not set, while the latter sets it to 64
(which it should be) unconditionally.  BUT, by then all of stdio.h has been run
though with it set to 32...

Possible fixes are:

a) include  as the first #include
b) move the include of pcre_internal.h to be the first one (since it includes
config.h).

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel