Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 705454 - media-gfx/krita- USE=vc - In file included from.../work/krita- /usr/include/Vc/avx/intrinsics.h:458:5: error: ‘_mm256_comlt_epu32’ was not declared in this scope; did you mean ‘
Summary: media-gfx/krita- USE=vc - In file included from.../work/krita-
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
Depends on:
Reported: 2020-01-14 23:27 UTC by Sandi (Sandy) Vujaković
Modified: 2020-03-01 14:47 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---

build.log (build.log,546.17 KB, text/plain)
2020-01-15 00:10 UTC, Sandi (Sandy) Vujaković
emerge --info (file_705454.txt,29.55 KB, text/plain)
2020-01-15 00:15 UTC, Sandi (Sandy) Vujaković

Note You need to log in before you can comment on or make changes to this bug.
Description Sandi (Sandy) Vujaković 2020-01-14 23:27:36 UTC
This has been going on for months now. Without the Vc USE flag, it successfully builds, but compilation fails when enabling the Vc USE flag.

Before somebody asks why I did not report this sooner, well... I had school things to tend to and hoped that this would resolve itself. Also, this made me (and still makes me) uneasy about reporting issues related to Vc:
Comment 1 Sandi (Sandy) Vujaković 2020-01-15 00:10:06 UTC
Created attachment 603322 [details]
Comment 2 Sandi (Sandy) Vujaković 2020-01-15 00:15:35 UTC
Created attachment 603324 [details]
emerge --info
Comment 3 Sandi (Sandy) Vujaković 2020-01-15 01:38:15 UTC
I just rebuilt dev-libs/vc with the Gentoo default flags and there is no difference.
Comment 4 Guillermo D. H. 2020-01-24 21:55:02 UTC
I think thus is a bug in dev-libs/vc. Header Vc/avx/intrinsics.h contains this fragment:

#if defined(Vc_IMPL_XOP)
    static Vc_INTRINSIC m256i Vc_CONST cmplt_epu32(__m256i a, __m256i b) { return comlt_epu32(a, b); }
    static Vc_INTRINSIC m256i Vc_CONST cmpgt_epu32(__m256i a, __m256i b) { return comgt_epu32(a, b); }
    static Vc_INTRINSIC m256i Vc_CONST cmplt_epu16(__m256i a, __m256i b) { return comlt_epu16(a, b); }
    static Vc_INTRINSIC m256i Vc_CONST cmpgt_epu16(__m256i a, __m256i b) { return comgt_epu16(a, b); }

which I suppose makes GCC generate implementations with XOP instructions for these functions, by calling magic builtin fuctions defined in <x86intrin.h>. And also contains two definitions of macro Vc_AVX_TO_SSE_2_NEW(), one that I suppose makes GCC generate implementations
Comment 5 Guillermo D. H. 2020-01-24 22:00:51 UTC
with AVX2 instructions, and one that doesn't. The former creates invalid function names if called from that fragment. That is, when both Vc_IMPL_XOP and Vc_IMPL_AVX2 are defined.

I suppose both are when -march=bdver4 is in CFLAGS.
Comment 6 Andreas Sturmlechner gentoo-dev 2020-02-13 22:36:40 UTC
Adding vc maintainer then.