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.
This commit is contained in:
committed by
Rick van Schijndel
parent
5e838fa9ac
commit
ac92b409b3
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user