Boost logo

Boost-Build :

Subject: Re: [Boost-build] error: redefinition of 'double acosh(double)'
From: John Maddock (john_at_[hidden])
Date: 2009-03-14 14:26:13


> I am trying to build boost-1.38.0 and it gives me the following error
>
> libs/math/build/../src/tr1/acosh.cpp: In function 'double acosh(double)':
> libs/math/build/../src/tr1/acosh.cpp:11: error: redefinition of 'double
> acosh(double)'
> /usr/include/bits/mathinline.h:559: error: 'double acosh(double)'
> previously defined here
> ...failed updating 1 target...

>From a practical viewpoint, if you don't want to use the C99 math functions
as extern "C" functions then you can ignore this and move on.

However, we really need to fix this - it seems from Googling around that
glibc may (or may not, depending on the platform) define some of the C99
functions as inline after including math.h. Which is pretty all round nasty
as it prevents us from providing are own definitions (and isn't std
conforming either for that matter). I'm at a bit of a loss to know what to
do here (other than rewriting the library!). Anyone know if there is there
any way to turn off the use of these inline intrinsics by gcc? If so then
we could just patch the Jamfile as a first step...

John.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk