On Tue, 18 Jan 2022, Patrick Palka wrote: > On Tue, Jan 18, 2022 at 5:12 AM Jonathan Wakely <jwak...@redhat.com> wrote: > > > > Tested x86_64-linux, pushed to trunk. > > > > > > Instead of hardcoded preprocessor conditionals with explicit target > > checks, just rely on the fact that __BYTE_ORDER__ is always defined by > > GCC. > > Thanks a lot for fixing these! I apparently missed removing this > batch of #includes from the amalgamation in r12-6647. For > completeness I suppose we should remove these #includes too. I > wonder if we can rely on __BYTE_ORDER__ being defined by other > compilers?
(N.B. not just for completeness but potentially also for correctness, since floating_from_chars.cc #includes "fast_float/fast_float.h" into an anonymous namespace, and we probably shouldn't be #including system headers into an anonymous namespace..) > > > > > libstdc++-v3/ChangeLog: > > > > PR libstdc++/104080 > > * src/c++17/fast_float/LOCAL_PATCHES: Update. > > * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN): > > Define in terms of __BYTE_ORDER__. > > --- > > libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES | 1 + > > libstdc++-v3/src/c++17/fast_float/fast_float.h | 4 +++- > > 2 files changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES > > b/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES > > index 447c7ed2cdb..5bb42933398 100644 > > --- a/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES > > +++ b/libstdc++-v3/src/c++17/fast_float/LOCAL_PATCHES > > @@ -1,3 +1,4 @@ > > r12-6647 > > r12-6648 > > r12-6664 > > +r12-6665 > > diff --git a/libstdc++-v3/src/c++17/fast_float/fast_float.h > > b/libstdc++-v3/src/c++17/fast_float/fast_float.h > > index ee129309ba3..31fb88b8aba 100644 > > --- a/libstdc++-v3/src/c++17/fast_float/fast_float.h > > +++ b/libstdc++-v3/src/c++17/fast_float/fast_float.h > > @@ -128,7 +128,9 @@ from_chars_result from_chars_advanced(const char > > *first, const char *last, > > #define FASTFLOAT_VISUAL_STUDIO 1 > > #endif > > > > -#ifdef _WIN32 > > +#ifdef __BYTE_ORDER__ > > +#define FASTFLOAT_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) > > +#elif defined _WIN32 > > #define FASTFLOAT_IS_BIG_ENDIAN 0 > > #else > > #if defined(__APPLE__) || defined(__FreeBSD__) > > -- > > 2.31.1 > > >