[D-runtime] core.demangle: What to do if real.sizeof == double.sizeof

Iain Buclaw ibuclaw at ubuntu.com
Tue Mar 20 08:48:01 PDT 2012


On 20 March 2012 15:42, Johannes Pfau <johannespfau at googlemail.com> wrote:
> Am 20.03.2012 13:56, schrieb Iain Buclaw:
>
>> On 20 March 2012 12:48, Johannes Pfau<johannespfau at googlemail.com>  wrote:
>>>
>>> For ARM, real and double are the same types (long double == double in c).
>>> Because of that bionic (android's C library) doesn't provide a strtold
>>> function.
>>>
>>> strtold is used in core.demangle in the parseReal function. Is it safe to
>>> just replace strtold with strtod for Android?
>>>
>>> --
>>> Johannes Pfau
>>>
>> I would have thought that it would be a weak alias to strtod in the C
>> library, so you need to do nothing.
>>
> No, it's not included in bionic in any way:
>
> /tmp/ccPtyQhH.o: In function `_Dmain':
> main.d:(.text+0x1d4): undefined reference to `strtold'

Then make the alias in the D code specifically for Bionic using
version identifiers - see core.stdc.math as an example of what is done
for missing math functions from FreeBSD.



-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the D-runtime mailing list