Re: [Rd] alloca() on FreeBSD (PR#7890)

From: Simon Urbanek <simon.urbanek_at_r-project.org>
Date: Tue 07 Jun 2005 - 17:52:49 GMT

On Jun 7, 2005, at 12:36 PM, Rainer Hurling wrote:

> One first reaction to your suggestions.
>
> ripley@stats.ox.ac.uk wrote:
>
>> On Mon, 23 May 2005 vangyzen@stat.duke.edu wrote:
>>
>>> R-2.1.0 fails to compile on the newest release of FreeBSD,
>>> complaining about
>>> undefined references to __builtin_alloca. On FreeBSD, alloca()
>>> is declared in
>>> stdlib.h, not alloca.h as the R sources expect. Therefore,
>>> HAVE_DECL_ALLOCA
>>> does not get set, so the R sources declare alloca() after it has
>>> already been
>>> #defined by stdlib.h.
>>>
>>> A possible fix is to modify the configure script to look for the
>>> declaration of
>>> alloca() in stdlib.h (perhaps after it fails to find it in
>>> alloca.h).
>>>
>> It is already supposed to, so it is not finding the declaration
>> there either. If you look up the definition of
>> AC_CHECK_DECLS([alloca], , , [#include <alloca.h>])
>> it searches in stdlib.h. Can you please send us the appropriate
>> part of config.log? It may be that this is failing because
>> alloca.h is not found
>> (but AC_FUNC_ALLOCA is making the same assumptions).
>> Perhaps the easiest way out is to override the setting on FreeBSD:
>> can you please confirm that manually changing
>> #define HAVE_DECL_ALLOCA 1
>> in config.h works?
>>
>
> Changing "#define HAVE_DECL_ALLOCA" to 1
> in line 81 of R-2.1.0/src/include/config.h
> gives me the following stopping:
>
>
> mkdir ../../../../library/grDevices/libs
> building package 'graphics'
> mkdir ../../../library/graphics
> mkdir ../../../library/graphics/R
> mkdir ../../../library/graphics/demo
> mkdir ../../../library/graphics/po
> mkdir ../../../library/graphics/man
> Error in dyn.load(x, as.logical(local), as.logical(now)) :
> unable to load shared library '/usr/local/R-2.1.0/library/
> grDevices/libs/grDevices.so':
> /usr/local/R-2.1.0/library/grDevices/libs/grDevices.so: Undefined
> symbol "__builtin_alloca"
> Execution halted

Did you run a new, clean build? From the output it seems as if you just changed the file in your old build and typed make - obviously that doesn't help at all, because the setting must the changed *before* you start building. So if you didn't do so, please remove the build, unpack the sources again, run configure, change the ALLOCA define and then build.

Cheers,
Simon



R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed Jun 08 03:55:34 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:08 GMT