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

Johannes Pfau johannespfau at googlemail.com
Tue Mar 20 10:19:20 PDT 2012


Am 20.03.2012 16:48, schrieb Iain Buclaw:
> 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.
>
OK. I just wasn't sure if this could cause issues if the mangled name 
really contains a 80bit floating point number.

-- 
Johannes Pfau



More information about the D-runtime mailing list