Skip to content

Commit 61d9f20

Browse files
author
Adam Joseph
committed
boost: if isMips use the "cross compile" codepath unconditionally
boost-context changed its name for mips from "mips1" to "mips" in this commit: boostorg/context@6edc818 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.
1 parent a3e6cd5 commit 61d9f20

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

pkgs/development/libraries/boost/generic.nix

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ let
8383
"-sEXPAT_LIBPATH=${expat.out}/lib"
8484

8585
# TODO: make this unconditional
86-
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
86+
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform ||
87+
# required; see this line's `git blame` for an explanation
88+
(stdenv.hostPlatform.isMips && versionAtLeast version "1.79")) [
8789
"address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}"
8890
"architecture=${if stdenv.hostPlatform.isMips64
8991
then if versionOlder version "1.78" then "mips1" else "mips"

0 commit comments

Comments
 (0)