On Mon, 10 Oct 2022 10:46:20 +0200 Dan Horák <dan@xxxxxxxx> wrote: > On Mon, 10 Oct 2022 10:09:32 +0900 > Mamoru TASAKA <mtasaka@xxxxxxxxxxxxxxxxx> wrote: > > > Luya Tshimbalanga wrote on 2022/10/10 2:46: > > > Hello team, > > > > > > openshadinglanguage 1.12.6.2 only successfully built on x86_64 architecture but failed on others due to the following errors: > > > > > > In file included from /builddir/build/BUILD/OpenShadingLanguage-1.12.6.2/src/liboslexec/oslexec_pvt.h:42, > > > from /builddir/build/BUILD/OpenShadingLanguage-1.12.6.2/src/liboslexec/oslexec.cpp:12: > > > /builddir/build/BUILD/OpenShadingLanguage-1.12.6.2/src/include/OSL/mask.h:7:10: fatal error: immintrin.h: No such file or directory > > > 7 | #include <immintrin.h> > > > | ^~~~~~~~~~~~~ > > > compilation terminated. > > > > > > > > > That "immintrin.h" is provided by both gcc and clang according to "dnf -C repoquery --whatprovides */immintrin.h". Could someone investigate the cause and provide a patch? > > > > > > See https://koji.fedoraproject.org/koji/taskinfo?taskID=92833862 > > > > > > Thanks in advance > > > > > > > Well, gcc immintrin.h is "/usr/lib/gcc/x86_64-redhat-linux/12/include/immintrin.h" (note that "x86_64-" path). > > > > And clang immintrin.h "/usr/lib64/clang/15.0.0/include/immintrin.h" says: > > ------------------------------------------ > > #if !defined(__i386__) && !defined(__x86_64__) > > #error "This header is only meant to be used on x86 and x64 architecture" > > #endif > > ------------------------------------------ > > > > AFAIK immintrin.h is available only on x86 / x86_64. > > > > Then as far as I looked at src/include/OSL/mask.h, it looks like actually this supports non-x86 architectures > > (as I see #elif defined(__GNUC__) || defined(__clang__) or so), > > so just try to guard the inclusion like > > > > #if defined(__i386__) || defined(__x86_64__) > > #include <immintrin.h> > > #endif > > > > and see how it goes. Maybe some additional modification is needed, but for now I expect that > > most things may go well. > > if I see right, then the reason for the inclusion of "immintrin.h" is to > provide popcount and coutr_zero implementations when built with C++ > standard below C++20, see > https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/src/include/OSL/mask.h#L18 > or when not using GCC or clang where the functions are "builtin". So > the inclusion is made from a wrong place. I am going to submit a PR to > upstream. https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1605 should be the proper fix Dan _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue