boost: if isMips use the "cross compile" codepath unconditionally

boost-context changed its name for mips from "mips1" to "mips" in this
commit:

  6edc8184a7

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

  67c074b249/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.
main
Adam Joseph 2 years ago committed by Rick van Schijndel
parent 5e838fa9ac
commit ac92b409b3
  1. 4
      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"

Loading…
Cancel
Save