Giter Site home page Giter Site logo

Cross compilation broken about vulkan-headers HOT 7 CLOSED

sarnex avatar sarnex commented on August 16, 2024 1
Cross compilation broken

from vulkan-headers.

Comments (7)

sarnex avatar sarnex commented on August 16, 2024 2

@tgurr Thanks for the response.

Sure, from a technical perspective we can do that, but I don't think it's the right solution. We do that for the other vulkan packages because binaries are built, which is obviously arch dependent.

My understanding (and correct me if I'm wrong, this assumption is fundamental to my point) is that there are no arch-specific headers in vulkan-headers. My understanding is everything is arch independent.

If so, we should not install into arch-specific directories. If we do that, the same exact files are installed twice and take up twice the disk space and it takes twice the computation power to install/copy them for absolutely no benefit to users.

I don't know how Exherbo deals with arch-independant files, but /usr/include is widely used in the Linux ecosystem for arch independent code, so Exherbo must have a general solution for code put in /usr/include. Maybe the files are duplicated for Exherbo, but we shouldn't force that on everyone.

About nv-codec-headers, IMO the ebuild is working around an upstream bug, basically the equivalent of what this bug report is about.

from vulkan-headers.

johnzupin avatar johnzupin commented on August 16, 2024 1

PR #331 also fixed cross-compilation on Ubuntu distributions as well

from vulkan-headers.

sarnex avatar sarnex commented on August 16, 2024

FYI: @tgurr @juan-lunarg

from vulkan-headers.

tgurr avatar tgurr commented on August 16, 2024

FYI: @tgurr @juan-lunarg

I've no experience on how Gentoo handles multilib, but should't you be able to add your cmake-multilib magic like done for vulkan-loader to vulkan-headers as well to get what you need? On Exherbo for example there's no /usr/include per se as we have proper cross compilation installing headers on each arch into their respective include directory under prefix e.g. /usr/x86_64-pc-linux-gnu/include & /usr/i686-pc-linux-gnu/include and since this path is referenced in the cmake files we can't have just one file in /usr/share for multiple archs, like stated in #326.

Side note: In the nv-codec-headers package I mentioned in my initial pull request the Gentoo package also applies some workaround moving the pkg-config files to/usr/share: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/nv-codec-headers/nv-codec-headers-11.1.5.2.ebuild#n21

from vulkan-headers.

juan-lunarg avatar juan-lunarg commented on August 16, 2024

My understanding (and correct me if I'm wrong, this assumption is fundamental to my point) is that there are no arch-specific headers in vulkan-headers. My understanding is everything is arch independent.

That is correct.

If so, we should not install into arch-specific directories. If we do that, the same exact files are installed twice and take up twice the disk space and it takes twice the computation power to install/copy them for absolutely no benefit to users.

Correct. CMake header only libraries that are arch-independent should only have to be installed once.

from vulkan-headers.

sarnex avatar sarnex commented on August 16, 2024

Thanks, that PR will fix this issue for us.

from vulkan-headers.

juan-lunarg avatar juan-lunarg commented on August 16, 2024

Vulkan-Headers is also now consistent with spirv-headers: KhronosGroup/SPIRV-Headers@eae955f

from vulkan-headers.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.