From: "Ivan A. Melnikov" <iv@altlinux.org>
To: Joshua Crofts <joshua.crofts1@gmail.com>
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: Mon, 21 Sep 2026 15:33:55 +0400 [thread overview]
Message-ID: <arEDbA8fIxR6mrZq@iv-work> (raw)
In-Reply-To: <20260919113945.2bee973b@systembl0wer>
On Sat, Sep 19, 2026 at 11:39:45AM +0200, Joshua Crofts wrote:
> 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?
Indeed, it does. Sorry, my patch is incorrect. I must have completely
messed up all my checks on Friday.
> 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?
Apparently, the only correct way to detect _Float16 is to try compiling
some code that uses it. For that, a feature can be added to tools/build.
On other hand, x86 without SSE2 is the only platform I could find where
__FLT16_MAX__ is defined, but _Float16 does not work, so a simple
platform-specific workaround would also work and would be much less
elaborate.
WDYT?
--
wbr,
iv m.
next prev parent reply other threads:[~2026-09-21 11:33 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
2026-09-21 11:33 ` Ivan A. Melnikov [this message]
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=arEDbA8fIxR6mrZq@iv-work \
--to=iv@altlinux.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=flavra@baylibre.com \
--cc=jic23@kernel.org \
--cc=joshua.crofts1@gmail.com \
--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.