From: Thomas Perale via buildroot <buildroot@buildroot.org>
To: Waldemar Brodkorb <wbx@openadk.org>
Cc: Thomas Perale <thomas.perale@mind.be>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH] package/uclibc: fix for gcc libquadmath conflict
Date: Fri, 4 Sep 2026 14:18:24 +0200 [thread overview]
Message-ID: <20260904121824.405285-1-thomas.perale@mind.be> (raw)
In-Reply-To: <aoSh0nj09EJBIC4F@waldemar-brodkorb.de>
In reply of:
> As seen in the Buildroot autobuilders, struct rm_ctx should
> not be exposed in the public fenv.h header.
>
> Fixes:
> - https://autobuild.buildroot.net/results/761/7613538e0847a10eb3e2a7e40f3ae76386ac015b/
>
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Applied to 2025.02.x & 2026.05.x. Thanks
> ---
> ...tx-should-be-private-and-not-exposed.patch | 151 ++++++++++++++++++
> 1 file changed, 151 insertions(+)
> create mode 100644 package/uclibc/0003-fenv-struct-rm_ctx-should-be-private-and-not-exposed.patch
>
> diff --git a/package/uclibc/0003-fenv-struct-rm_ctx-should-be-private-and-not-exposed.patch b/package/uclibc/0003-fenv-struct-rm_ctx-should-be-private-and-not-exposed.patch
> new file mode 100644
> index 0000000000..e77f079dcc
> --- /dev/null
> +++ b/package/uclibc/0003-fenv-struct-rm_ctx-should-be-private-and-not-exposed.patch
> @@ -0,0 +1,151 @@
> +From 1105fd6c97f020f6ca7426e19d29081f404b567d Mon Sep 17 00:00:00 2001
> +From: Waldemar Brodkorb <wbx@openadk.org>
> +Date: Tue, 18 Aug 2026 18:13:29 +0200
> +Subject: [PATCH] fenv: struct rm_ctx should be private and not exposed in a
> + public header
> +
> +Upstream: https://gogs.waldemar-brodkorb.de/oss/uclibc-ng/commit/1105fd6c97f020f6ca7426e19d29081f404b567d
> +Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> +---
> + include/fenv.h | 10 ----------
> + include/fenv_private.h | 24 ++++++++++++++++++++++++
> + libm/aarch64/fenv_private.h | 1 +
> + libm/arc/fenv_private.h | 1 +
> + libm/arm/fenv_private.h | 1 +
> + libm/csky/fenv_private.h | 1 +
> + libm/mips/fenv_private.h | 1 +
> + libm/sparc/fenv_private.h | 1 +
> + 8 files changed, 30 insertions(+), 10 deletions(-)
> + create mode 100644 include/fenv_private.h
> +
> +diff --git a/include/fenv.h b/include/fenv.h
> +index 4b532c573..34042d5ac 100644
> +--- a/include/fenv.h
> ++++ b/include/fenv.h
> +@@ -1,5 +1,4 @@
> + /* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
> +- This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> +@@ -131,15 +130,6 @@ extern int fedisableexcept (int __excepts) __THROW;
> + extern int fegetexcept (void) __THROW;
> + #endif
> +
> +-/* Rounding mode context. This allows functions to set/restore rounding mode
> +- only when the desired rounding mode is different from the current rounding
> +- mode. */
> +-struct rm_ctx
> +-{
> +- fenv_t env;
> +- bool updated_status;
> +-};
> +-
> + __END_DECLS
> +
> + #endif /* fenv.h */
> +diff --git a/include/fenv_private.h b/include/fenv_private.h
> +new file mode 100644
> +index 000000000..5e81c71aa
> +--- /dev/null
> ++++ b/include/fenv_private.h
> +@@ -0,0 +1,24 @@
> ++/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
> ++
> ++ The GNU C Library is free software; you can redistribute it and/or
> ++ modify it under the terms of the GNU Lesser General Public
> ++ License as published by the Free Software Foundation; either
> ++ version 2.1 of the License, or (at your option) any later version.
> ++
> ++ The GNU C Library is distributed in the hope that it will be useful,
> ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> ++ Lesser General Public License for more details.
> ++
> ++ You should have received a copy of the GNU Lesser General Public
> ++ License along with the GNU C Library; if not, see
> ++ <http://www.gnu.org/licenses/>. */
> ++
> ++/* Rounding mode context. This allows functions to set/restore rounding mode
> ++ only when the desired rounding mode is different from the current rounding
> ++ mode. */
> ++struct rm_ctx
> ++{
> ++ fenv_t env;
> ++ bool updated_status;
> ++};
> +diff --git a/libm/aarch64/fenv_private.h b/libm/aarch64/fenv_private.h
> +index 5afb790ea..3eaf0eb3f 100644
> +--- a/libm/aarch64/fenv_private.h
> ++++ b/libm/aarch64/fenv_private.h
> +@@ -19,6 +19,7 @@
> + #define AARCH64_FENV_PRIVATE_H 1
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include <fpu_control.h>
> +
> + static __always_inline void
> +diff --git a/libm/arc/fenv_private.h b/libm/arc/fenv_private.h
> +index 5f74c5e13..2e985722f 100644
> +--- a/libm/arc/fenv_private.h
> ++++ b/libm/arc/fenv_private.h
> +@@ -19,6 +19,7 @@
> + #define _FENV_PRIVATE_H 1
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include "get-rounding-mode.h"
> +
> + /* The standards only specify one variant of the fenv.h interfaces.
> +diff --git a/libm/arm/fenv_private.h b/libm/arm/fenv_private.h
> +index 566bf443c..61418d9f4 100644
> +--- a/libm/arm/fenv_private.h
> ++++ b/libm/arm/fenv_private.h
> +@@ -19,6 +19,7 @@
> + #define ARM_FENV_PRIVATE_H 1
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include <fpu_control.h>
> +
> + static __always_inline void
> +diff --git a/libm/csky/fenv_private.h b/libm/csky/fenv_private.h
> +index f0f48a88a..e6015abee 100644
> +--- a/libm/csky/fenv_private.h
> ++++ b/libm/csky/fenv_private.h
> +@@ -19,6 +19,7 @@
> + #define CSKY_FENV_PRIVATE_H 1
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include <fpu_control.h>
> + #include "fenv_libc.h"
> +
> +diff --git a/libm/mips/fenv_private.h b/libm/mips/fenv_private.h
> +index bc9be3b62..273d6faf8 100644
> +--- a/libm/mips/fenv_private.h
> ++++ b/libm/mips/fenv_private.h
> +@@ -24,6 +24,7 @@
> + code instead. */
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include "fenv_libc.h"
> + #include <fpu_control.h>
> +
> +diff --git a/libm/sparc/fenv_private.h b/libm/sparc/fenv_private.h
> +index b888d8442..c76fbad7f 100644
> +--- a/libm/sparc/fenv_private.h
> ++++ b/libm/sparc/fenv_private.h
> +@@ -2,6 +2,7 @@
> + #define SPARC_FENV_PRIVATE_H 1
> +
> + #include <fenv.h>
> ++#include <fenv_private.h>
> + #include <fpu_control.h>
> +
> + /* For internal use only: access the fp state register. */
> +--
> +2.47.3
> +
> --
> 2.47.3
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2026-09-04 12:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 18:17 [Buildroot] [PATCH] package/uclibc: fix for gcc libquadmath conflict Waldemar Brodkorb
2026-08-25 20:14 ` Julien Olivain via buildroot
2026-09-04 12:18 ` Thomas Perale via buildroot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260904121824.405285-1-thomas.perale@mind.be \
--to=buildroot@buildroot.org \
--cc=thomas.perale@mind.be \
--cc=wbx@openadk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.