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? > > 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 >