[llvm-dev] Can we start using std::to_string?

Tamas Berghammer via llvm-dev llvm-dev at lists.llvm.org
Wed May 17 10:34:11 PDT 2017


The Android NDK currently ships with gcc 4.9.2 what should support
std::to_string but there are some issues regarding the implementation of
it. The root cause is that complex.h is missing some function from the
Android libc (bionic) what results in _GLIBCXX_USE_C99 not being defined
what will disable access to a set of string conversion functions (including
std::to_string).

2 relevant bug for the Android NDK:
https://github.com/android-ndk/ndk/issues/82
https://issuetracker.google.com/issues/37015480

Tamas

On Wed, May 17, 2017 at 2:52 PM 陳韋任 <chenwj.cs97g at g2.nctu.edu.tw> wrote:

> Maybe it's time to update the Requirements section on Getting Started with
> the LLVM System [1]?
>
> [1]
> http://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library
>
> 2017-05-17 21:44 GMT+08:00 Hal Finkel via llvm-dev <
> llvm-dev at lists.llvm.org>:
>
>> I'm fairly sure the problem is that we still support building with gcc
>> 4.8.x, and that version of gcc did not have std::to_string. It is not just
>> an NDK issue.
>>
>>  -Hal
>>
>>
>> On 05/17/2017 06:05 AM, Pavel Labath via llvm-dev wrote:
>>
>>> Hi Diana,
>>>
>>> I am responsible for that bot, and probably a great number of those
>>> fixups.
>>>
>>> The root of the problem is that android NDK comes with a libstdc++
>>> which does not have std::to_string. I forgot the exact reason but Dan
>>> or Tamas (cc'ed) should know it. The NDK also comes with libc++, which
>>> does have working std::to_string, but this one is not compatible with
>>> older android devices. This part is being actively worked on though. I
>>> am going to sync up with Dan to see if I can give you any timeline on
>>> that.
>>>
>>> And yes, the bot does not build the AVR and other backends, that's why
>>> we get no std::string errors there.
>>>
>>>
>>>
>>> On 17 May 2017 at 11:12, Diana Picus via llvm-dev
>>> <llvm-dev at lists.llvm.org> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I tried to use std::to_string somewhere and one of the bots yelled at
>>>> me [1] because it couldn't find it.
>>>>
>>>> Searching through the mailing lists reveals a long stream of fixup
>>>> patches trying to avoid std::to_string, but there are uses of it in
>>>> tree in the AVR and Hexagon backends, libFuzzer and the Gold plugin. I
>>>> can only imagine they got away with it because the particular bots
>>>> that can't find std::to_string are probably not building them.
>>>>
>>>> Should we fix the bots and remove llvm::to_string? Or is it still too
>>>> soon?
>>>> Alternatively, should we replace all uses of std::to_string with
>>>> llvm::to_string?
>>>>
>>>> Cheers,
>>>> Diana
>>>>
>>>> [1]
>>>> http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-buildserver/builds/8853/steps/build%20android/logs/stdio
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>>
>> --
>> Hal Finkel
>> Lead, Compiler Technology and Programming Languages
>> Leadership Computing Facility
>> Argonne National Laboratory
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>
>
>
> --
> Wei-Ren Chen (陳韋任)
> Homepage: https://people.cs.nctu.edu.tw/~chenwj
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170517/337ea7ac/attachment.html>


More information about the llvm-dev mailing list