Re: openshadinglanguage failure on non x86_64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux