[PATCH] libstdc++: Fix freebsd/dragonfly build [PR116859]
Jonathan Wakely
jwakely@redhat.com
Thu Sep 26 20:34:20 GMT 2024
CC gcc-patches as well
On Thu, 26 Sept 2024 at 21:04, Jakub Jelinek <jakub@redhat.com> wrote:
>
> Hi!
>
> As reported in the PR, the system headers libstdc++ changes result in
> -Werror=expansion-to-defined errors on FreeBSD and supposedly on DragonFly
> too.
>
> The following patch fixes those by performing the preprocessor test right
> away, rather than using defined in the macro definitions.
>
> I think neither __ISO_C_VISIBLE nor __LONG_LONG_SUPPORTED should normally
> change during compilation.
>
> Steven has bootstrapped this on FreeBSD, ok for trunk?
OK thanks.
>
> 2024-09-26 Jakub Jelinek <jakub@redhat.com>
>
> PR libstdc++/116859
> * config/os/bsd/freebsd/os_defines.h
> (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC,
> _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): Avoid
> -Wexpansion-to-defined warnings.
> * config/os/bsd/dragonfly/os_defines.h
> (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Likewise.
>
> --- libstdc++-v3/config/os/bsd/freebsd/os_defines.h.jj 2024-01-03 12:07:50.791052995 +0100
> +++ libstdc++-v3/config/os/bsd/freebsd/os_defines.h 2024-09-26 19:20:07.371787809 +0200
> @@ -36,8 +36,16 @@
> #define _GLIBCXX_USE_C99_CHECK 1
> #define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
> #define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
> -#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
> +#if _GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED
> +#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 1
> +#else
> +#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 0
> +#endif
> #define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
> -#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
> +#ifdef _XOPEN_SOURCE
> +#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC 1
> +#else
> +#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC 0
> +#endif
>
> #endif
> --- libstdc++-v3/config/os/bsd/dragonfly/os_defines.h.jj 2024-01-03 12:07:50.793052967 +0100
> +++ libstdc++-v3/config/os/bsd/dragonfly/os_defines.h 2024-09-26 19:20:40.310341765 +0200
> @@ -36,6 +36,10 @@
> #define _GLIBCXX_USE_C99_CHECK 1
> #define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
> #define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
> -#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
> +#if _GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED
> +#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 1
> +#else
> +#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC 0
> +#endif
>
> #endif
>
> Jakub
>
More information about the Libstdc++
mailing list