From: Joshua Crofts <joshua.crofts1@gmail.com>
To: "Ivan A. Melnikov" <iv@altlinux.org>
Cc: "Jonathan Cameron" <jic23@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Francesco Lavra" <flavra@baylibre.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] iio: tools: Use proper macro to detect _Float16 support
Date: Sat, 19 Sep 2026 11:39:45 +0200 [thread overview]
Message-ID: <20260919113945.2bee973b@systembl0wer> (raw)
In-Reply-To: <20260918161305.1161852-1-iv@altlinux.org>
On Fri, 18 Sep 2026 20:13:02 +0400
"Ivan A. Melnikov" <iv@altlinux.org> wrote:
> __FLT16_MAX__ is an internal compiler macro. GCC defines it if
> _Float16 is supported by the target in general, but the support
> may depend on the exact target options. For example, on i586
> without -msse2 I get the following error from GCC15:
>
> iio_generic_buffer.c: In function 'print2byte':
> iio_generic_buffer.c:141:17: error: invalid conversion from type '_Float16' without option '-msse2'
> 141 | printf("%05f ", ((float)converter.f + info->offset) * info->scale);
> | ^~~~~~
>
> To fix that, use the public macro without double underscores.
>
> Fixes: cdd445d4b2a9 ("iio: tools: Add support for floating-point types in buffer scan elements")
> Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
> ---
> tools/iio/iio_generic_buffer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/iio/iio_generic_buffer.c b/tools/iio/iio_generic_buffer.c
> index 000193612aad..9ea93984e0e9 100644
> --- a/tools/iio/iio_generic_buffer.c
> +++ b/tools/iio/iio_generic_buffer.c
> @@ -131,7 +131,7 @@ static void print2byte(uint16_t input, struct iio_channel_info *info)
> printf("%05f ", ((float)input + info->offset) * info->scale);
> break;
> case 'f': {
> -#if defined(__FLT16_MAX__)
> +#if defined(FLT16_MAX)
> union {
> uint16_t u;
> _Float16 f;
One Sashiko issue:
Does this unintentionally disable _Float16 support for all architectures?
Since the tools build environment uses gnu11 compilation flags without
explicitly defining __STDC_WANT_IEC_60559_TYPES_EXT__, FLT16_MAX is
undefined across all architectures. This causes the preprocessor to skip
this block entirely, causing the tool to always print
<unsupported 2-byte float> for 16-bit float data, even on platforms where
native support previously worked.
If FLT16_MAX were actually defined, the compiler would still parse the
_Float16 block and throw the same missing -msse2 compilation error mentioned
in the commit message. Is there an alternative way to check for hardware
support without completely disabling the feature?
--
Kind regards,
Joshua Crofts
next prev parent reply other threads:[~2026-09-19 9:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-18 16:13 [PATCH] iio: tools: Use proper macro to detect _Float16 support Ivan A. Melnikov
2026-09-19 9:39 ` Joshua Crofts [this message]
2026-09-21 11:33 ` Ivan A. Melnikov
2026-09-27 20:54 ` Jonathan Cameron
2026-09-19 14:04 ` Andy Shevchenko
2026-09-28 9:05 ` David Laight
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=20260919113945.2bee973b@systembl0wer \
--to=joshua.crofts1@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=flavra@baylibre.com \
--cc=iv@altlinux.org \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
/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.