incompatible type use fails on gcc-14 Reproducible: Always Steps to Reproduce: gcc-14 =dev-qt/qtbase-6.6.2 Actual Results: /var/tmp/portage/dev-qt/qtbase-6.6.2/work/qtbase-everywhere-src-6.6.2/src/gui/painting/qrgbafloat.h:102:34: error: conversion from ‘float’ to non-scalar type ‘const QRgbaFloat<qfloat16>::FastType’ {aka ‘const qfloat16’} requested 102 | const FastType ia = 1.0f / a; gcc version 14.0.1 20240306 build.log to be attached
Created attachment 886832 [details] build.log
Created attachment 886845 [details, diff] qtbase-6.6.2-gcc14-avx512.patch Does the attached dirty workaround patch help? Alternatively, dropping -march=native would likely let it build too. Also, emerge --info? I'm only assuming that you have avx512 without that to tell me. Aka, I can't reproduce w/ gcc14 but from a quick look I'm going to guess that it's because I don't have avx512: #if defined(__AVX512FP16__) && QFLOAT16_IS_NATIVE // AVX512FP16 has multiplication instructions using FastType = F; #else // use FP32 for multiplications using FastType = float; #endif Unfortunately can't test myself given enabling instructions I don't have results in illegal instructions during the build itself. Would appreciate if could report this upstream. Odds are upstream will never pick it up otherwise given do not think they test with -march=native and/or avx512 enabled much.
(In reply to Ionen Wolkens from comment #2) > Created attachment 886845 [details, diff] [details, diff] > qtbase-6.6.2-gcc14-avx512.patch > > Does the attached dirty workaround patch help? Still waiting for this, or anyone else that can. I can reproduce without AVX512 if I swap "#if 0" by "#if 1" in that patch, but I don't know if it's really fine (e.g. if there's other conditions to consider).
I have an AVX512 machine I can try later, but I didn't hit this on my last -e, so wondering if it misses the right parts.
Pretty sure QFLOAT16_IS_NATIVE should always be be true with our toolchains (either gcc or clang) looking at it. However searched for __AVX512FP16__ and it seems a bit more loaded, odds are your machine does not support that. (In reply to Ionen Wolkens from comment #3) > I can reproduce without AVX512 if I swap "#if 0" by "#if 1" in that patch, > but I don't know if it's really fine (e.g. if there's other conditions to > consider). On that #if 0 note, alternate (upstreamable) fixes also welcome, went for just disabling the avx512 path as temporary fix given uncertain what else there may be without testing.
@tdr ping Still have the patch queue'ed up locally but still have nobody tell me if it works.
Ionen, It compiled successfully with the patch applied to qtbase:6 + the qt packages it pulled when qtbase:6 was emerged built too: 1711482567: *** emerge --oneshot --autounmask=n --regex-search-auto=y qtbase 1711482576: >>> emerge (1 of 6) dev-qt/qtbase-6.6.2 to / 1711482576: === (1 of 6) Cleaning (dev-qt/qtbase-6.6.2::/var/db/repos/gentoo/dev-qt/qtbase/qtbase-6.6.2.ebuild) 1711482576: === (1 of 6) Compiling/Packaging (dev-qt/qtbase-6.6.2::/var/db/repos/gentoo/dev-qt/qtbase/qtbase-6.6.2.ebuild) 1711482802: === (1 of 6) Merging (dev-qt/qtbase-6.6.2::/var/db/repos/gentoo/dev-qt/qtbase/qtbase-6.6.2.ebuild) 1711482804: >>> AUTOCLEAN: dev-qt/qtbase:6 1711482806: === (1 of 6) Post-Build Cleaning (dev-qt/qtbase-6.6.2::/var/db/repos/gentoo/dev-qt/qtbase/qtbase-6.6.2.ebuild) 1711482806: ::: completed emerge (1 of 6) dev-qt/qtbase-6.6.2 to / 1711482806: >>> emerge (2 of 6) dev-qt/qtshadertools-6.6.2 to / 1711482806: === (2 of 6) Cleaning (dev-qt/qtshadertools-6.6.2::/var/db/repos/gentoo/dev-qt/qtshadertools/qtshadertools-6.6.2.ebuild) 1711482806: === (2 of 6) Compiling/Packaging (dev-qt/qtshadertools-6.6.2::/var/db/repos/gentoo/dev-qt/qtshadertools/qtshadertools-6.6.2.ebuild) 1711482868: === (2 of 6) Merging (dev-qt/qtshadertools-6.6.2::/var/db/repos/gentoo/dev-qt/qtshadertools/qtshadertools-6.6.2.ebuild) 1711482869: >>> AUTOCLEAN: dev-qt/qtshadertools:6 1711482871: === (2 of 6) Post-Build Cleaning (dev-qt/qtshadertools-6.6.2::/var/db/repos/gentoo/dev-qt/qtshadertools/qtshadertools-6.6.2.ebuild) 1711482871: ::: completed emerge (2 of 6) dev-qt/qtshadertools-6.6.2 to / 1711482871: >>> emerge (3 of 6) dev-qt/qtdeclarative-6.6.2-r1 to / 1711482871: === (3 of 6) Cleaning (dev-qt/qtdeclarative-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtdeclarative/qtdeclarative-6.6.2-r1.ebuild) 1711482871: === (3 of 6) Compiling/Packaging (dev-qt/qtdeclarative-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtdeclarative/qtdeclarative-6.6.2-r1.ebuild) 1711483154: === (3 of 6) Merging (dev-qt/qtdeclarative-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtdeclarative/qtdeclarative-6.6.2-r1.ebuild) 1711483156: >>> AUTOCLEAN: dev-qt/qtdeclarative:6 1711483158: === (3 of 6) Post-Build Cleaning (dev-qt/qtdeclarative-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtdeclarative/qtdeclarative-6.6.2-r1.ebuild) 1711483158: ::: completed emerge (3 of 6) dev-qt/qtdeclarative-6.6.2-r1 to / 1711483158: >>> emerge (4 of 6) dev-qt/qtwayland-6.6.2-r1 to / 1711483158: === (4 of 6) Cleaning (dev-qt/qtwayland-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtwayland/qtwayland-6.6.2-r1.ebuild) 1711483158: === (4 of 6) Compiling/Packaging (dev-qt/qtwayland-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtwayland/qtwayland-6.6.2-r1.ebuild) 1711483205: === (4 of 6) Merging (dev-qt/qtwayland-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtwayland/qtwayland-6.6.2-r1.ebuild) 1711483207: >>> AUTOCLEAN: dev-qt/qtwayland:6 1711483208: === (4 of 6) Post-Build Cleaning (dev-qt/qtwayland-6.6.2-r1::/var/db/repos/gentoo/dev-qt/qtwayland/qtwayland-6.6.2-r1.ebuild) 1711483208: ::: completed emerge (4 of 6) dev-qt/qtwayland-6.6.2-r1 to / 1711483208: >>> emerge (5 of 6) dev-qt/qttools-6.6.2 to / 1711483208: === (5 of 6) Cleaning (dev-qt/qttools-6.6.2::/var/db/repos/gentoo/dev-qt/qttools/qttools-6.6.2.ebuild) 1711483209: === (5 of 6) Compiling/Packaging (dev-qt/qttools-6.6.2::/var/db/repos/gentoo/dev-qt/qttools/qttools-6.6.2.ebuild) 1711483252: === (5 of 6) Merging (dev-qt/qttools-6.6.2::/var/db/repos/gentoo/dev-qt/qttools/qttools-6.6.2.ebuild) 1711483253: >>> AUTOCLEAN: dev-qt/qttools:6 1711483255: === (5 of 6) Post-Build Cleaning (dev-qt/qttools-6.6.2::/var/db/repos/gentoo/dev-qt/qttools/qttools-6.6.2.ebuild) 1711483255: ::: completed emerge (5 of 6) dev-qt/qttools-6.6.2 to / 1711483255: >>> emerge (6 of 6) dev-qt/qttranslations-6.6.2 to / 1711483255: === (6 of 6) Cleaning (dev-qt/qttranslations-6.6.2::/var/db/repos/gentoo/dev-qt/qttranslations/qttranslations-6.6.2.ebuild) 1711483255: === (6 of 6) Compiling/Packaging (dev-qt/qttranslations-6.6.2::/var/db/repos/gentoo/dev-qt/qttranslations/qttranslations-6.6.2.ebuild) 1711483260: === (6 of 6) Merging (dev-qt/qttranslations-6.6.2::/var/db/repos/gentoo/dev-qt/qttranslations/qttranslations-6.6.2.ebuild) 1711483262: >>> AUTOCLEAN: dev-qt/qttranslations:6 1711483263: === (6 of 6) Post-Build Cleaning (dev-qt/qttranslations-6.6.2::/var/db/repos/gentoo/dev-qt/qttranslations/qttranslations-6.6.2.ebuild) 1711483263: ::: completed emerge (6 of 6) dev-qt/qttranslations-6.6.2 to / 1711483263: *** Finished. Cleaning up...
Thanks, guess I'll add it for now.
avx512_fp16 is intel only if there is movement to fix this a better way, I can test, rather do that than lose chip instruction use if the code path becomes usable
(In reply to tdr from comment #9) > avx512_fp16 is intel only > > if there is movement to fix this a better way, I can test, rather do that > than lose chip instruction use if the code path becomes usable Ideal would be for someone affected to report this upstream, then a proper fix can likely be figured out. Downstream I'm happy with a quick hack meanwhile just so it doesn't fail.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73bec710536da954edada1cddf97a833960bfb81 commit 73bec710536da954edada1cddf97a833960bfb81 Author: Ionen Wolkens <ionen@gentoo.org> AuthorDate: 2024-03-26 20:44:29 +0000 Commit: Ionen Wolkens <ionen@gentoo.org> CommitDate: 2024-03-26 20:47:13 +0000 dev-qt/qtbase: do build workaround for gcc:14 + avx512fp16 Closes: https://bugs.gentoo.org/926287 Signed-off-by: Ionen Wolkens <ionen@gentoo.org> dev-qt/qtbase/files/qtbase-6.6.3-gcc14-avx512fp16.patch | 15 +++++++++++++++ dev-qt/qtbase/qtbase-6.6.3.ebuild | 1 + dev-qt/qtbase/qtbase-6.6.9999.ebuild | 1 + dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild | 1 + dev-qt/qtbase/qtbase-6.7.9999.ebuild | 1 + dev-qt/qtbase/qtbase-6.9999.ebuild | 1 + 6 files changed, 20 insertions(+)