[Rd] alloca() on FreeBSD (PR#7890)
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,
>>> 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
>> 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/
> /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.
More information about the R-devel