systemd: default withLibBPF to false if isMips64

libBPF does not compile for mips64 targets using clang (rathern than
gcc) because clang lacks the necessary _MIPS_SZPTR compiler builtin.
Let's allow the rest of systemd to compile.

- The glibc people noticed this problem [way back in
  2011](https://sourceware.org/pipermail/libc-ports/2011-June/001959.html)
  and consider it to be a clang/llvm bug.  I am inclined to agree.

- [clang has the `_MIPS_SZPTR`
  builtin](3af9cb5375/clang/lib/Basic/Targets/Mips.cpp (L185))
  and seems to have had it since before they switched to git.

This may in fact be a nixpkgs bug -- that we're not invoking clang
in a way that tells the frontend to make the mips builtins
available, even if the backend is emitting mips binaries.  Or at
least we aren't tricking systemd's build machinery into doing that.
This commit is contained in:
Adam Joseph 2022-10-02 18:04:22 -07:00 committed by Alyssa Ross
parent 956e4aa262
commit 6f6b4a1d41

View File

@ -94,6 +94,7 @@
, withHwdb ? true
, withImportd ? !stdenv.hostPlatform.isMusl
, withLibBPF ? lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0"
&& !stdenv.hostPlatform.isMips64 # see https://github.com/NixOS/nixpkgs/pull/194149#issuecomment-1266642211
, withLocaled ? true
, withLogind ? true
, withMachined ? true