3
0
Fork 0
forked from mirrors/nixpkgs

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.
This commit is contained in:
Adam Joseph 2022-07-11 13:37:49 -07:00
parent a3e6cd578f
commit 61d9f201ba

View file

@ -83,7 +83,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"