Skip to content

Musl build fails due to a a missing _SC_LEVEL1_DCACHE_LINESIZE. #2939

@expenses

Description

@expenses

Description of Issue

I recently tried to get OpenUSD building for the Musl libc so that I could have a totally static build. To do this I'm using the nix flake I wrote for openusd: https://github.com/expenses/openusd-minimal-nix, using the musl callPackage: musl = pkgs.pkgsMusl.callPackage ./package.nix { };. Compiliation fails with the following:

/build/source/pxr/base/arch/assumptions.cpp:54:20: error: ‘_SC_LEVEL1_DCACHE_LINESIZE’ was not declared in this scope
make[2]: *** [pxr/base/arch/CMakeFiles/arch.dir/build.make:236: pxr/base/arch/CMakeFiles/arch.dir/assumptions.cpp.o] Error 1

This appears to be a fairly well-known issue, taviso/ctypes.sh#53 is the same thing.

Package Versions

I'm attempting to build v23.11 (commit 0b18ad3) on x86_64 linux, everything else is kinda N/A at this time.

The commit of the flake I'm testing is expenses/openusd-minimal-nix@825a126 with a small patch:

diff --git a/flake.nix b/flake.nix
index 1dcdf7a..2c4b6e0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -22,6 +22,8 @@
             static = true;
           };

+          musl = pkgs.pkgsMusl.callPackage ./package.nix { };
+
           windows = pkgs.pkgsCross.mingwW64.callPackage ./package.nix { };
         };
       };

I'm going to try and patch around this issue to see if I can get this working.

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildBuild-related issue/PR

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions