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

Simon Urbanek simon.urbanek at r-project.org
Tue Jun 7 19:52:49 CEST 2005


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

> One first reaction to your suggestions.
>
> ripley at stats.ox.ac.uk wrote:
>
>> On Mon, 23 May 2005 vangyzen at 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



More information about the R-devel mailing list