mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-05-27 19:41:50 +02:00
daemon: Allow building for armhf-linux on aarch64-linux.
* nix/libstore/build.cc (canBuildLocally): Allow building armhf-linux builds on aarch64-linux. (DerivationGoal::runChild) Throw error if attempting to build for armhf-linux on an unsupported platform. * doc/guix.texi (Invoking guix build): Document how to build natively for armhf-linux on aarch64-linux. Add note that on some aarch64 machines this is unsupported.
This commit is contained in:
@@ -1244,6 +1244,7 @@ static bool canBuildLocally(const string & platform)
|
||||
return platform == settings.thisSystem
|
||||
#if __linux__
|
||||
|| (platform == "i686-linux" && settings.thisSystem == "x86_64-linux")
|
||||
|| (platform == "armhf-linux" && settings.thisSystem == "aarch64-linux")
|
||||
#endif
|
||||
;
|
||||
}
|
||||
@@ -2220,6 +2221,13 @@ void DerivationGoal::runChild()
|
||||
throw SysError("cannot set i686-linux personality");
|
||||
}
|
||||
|
||||
if (drv.platform == "armhf-linux" &&
|
||||
(settings.thisSystem == "aarch64-linux" ||
|
||||
(!strcmp(utsbuf.sysname, "Linux") && !strcmp(utsbuf.machine, "aarch64")))) {
|
||||
if (personality(PER_LINUX32) == -1)
|
||||
throw SysError("cannot set armhf-linux personality");
|
||||
}
|
||||
|
||||
/* Impersonate a Linux 2.6 machine to get some determinism in
|
||||
builds that depend on the kernel version. */
|
||||
if ((drv.platform == "i686-linux" || drv.platform == "x86_64-linux") && settings.impersonateLinux26) {
|
||||
|
||||
Reference in New Issue
Block a user