summary refs log tree commit diff
path: root/pkgs/development/libraries/boost
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-07-11 13:37:49 -0700
committerRick van Schijndel <Mindavi@users.noreply.github.com>2022-10-19 20:22:45 +0200
commitac92b409b36f75fc2772c3333346174cb42d5352 (patch)
tree75893f6c42ad6dc5707da15f33e0ef0040a61a47 /pkgs/development/libraries/boost
parent5e838fa9ac7e635410de2cfbeb03d336db7e6347 (diff)
downloadnixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar.gz
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar.bz2
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar.lz
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar.xz
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.tar.zst
nixpkgs-ac92b409b36f75fc2772c3333346174cb42d5352.zip
boost: if isMips use the "cross compile" codepath unconditionally
boost-context changed its name for mips from "mips1" to "mips" in this
commit:

  https://github.com/boostorg/context/commit/6edc8184a7136de4603a6f903d9b9b864ca9cf57

however the native-build code to detect the local architecture still
reports "mips1":

  https://github.com/boostorg/boost/blob/67c074b249538cf441724f9bbb3929d0f6b4f333/boostcpp.jam#L637

Therefore native builds of boost-context on mips must specify
architecture= explicitly; without this you will get link failures
"undefined reference to `jump_fcontext`" in code that uses
boost-context.

Currently the "cross compile" codepath, which provides explicit
architecture/abi/address-model/binary-format/os parameters, is
prefixed by this comment:

```
  # TODO: make this unconditional
```

This commit does so, at least if `isMips`.

This commit is needed in order for native builds of nix to succeed on
mips.
Diffstat (limited to 'pkgs/development/libraries/boost')
-rw-r--r--pkgs/development/libraries/boost/generic.nix4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index 1644adb175d..4115d11eeb8 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -81,7 +81,9 @@ let
     "-sEXPAT_LIBPATH=${expat.out}/lib"
 
     # TODO: make this unconditional
-  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+  ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform ||
+                  # required; see this line's `git blame` for an explanation
+                  (stdenv.hostPlatform.isMips && versionAtLeast version "1.79")) [
     "address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}"
     "architecture=${if stdenv.hostPlatform.isMips64
                     then if versionOlder version "1.78" then "mips1" else "mips"