diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2020-07-20 23:39:53 +0300 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2020-07-20 23:39:53 +0300 |
commit | 22f59e6d758b3c4801a984ea6a3b4574407143c6 (patch) | |
tree | 4a5604e176e5f2afe719b17d6efd68c0612b9093 | |
parent | Add rv64 subarch names (all cflags magic is done in the profiles) (diff) | |
download | catalyst-22f59e6d758b3c4801a984ea6a3b4574407143c6.tar.gz catalyst-22f59e6d758b3c4801a984ea6a3b4574407143c6.tar.bz2 catalyst-22f59e6d758b3c4801a984ea6a3b4574407143c6.zip |
Add "interpreter" parameter for qemu-user build support
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
-rw-r--r-- | catalyst/base/stagebase.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py index c2cc2c3e..0d3a418b 100644 --- a/catalyst/base/stagebase.py +++ b/catalyst/base/stagebase.py @@ -55,6 +55,7 @@ class StageBase(TargetBase, ClearBase, GenBase): "fflags", "hostuse", "install_mask", + "interpreter", "kerncache_path", "ldflags", "makeopts", @@ -938,6 +939,24 @@ class StageBase(TargetBase, ClearBase, GenBase): shutil.copy('/etc/resolv.conf', self.settings['chroot_path'] + '/etc/') + # Copy over the binary interpreter (qemu), if applicable; note that it's given + # as full path and goes to the same place in the chroot + if "interpreter" in self.settings: + if not os.path.exists(self.settings["interpreter"]): + raise CatalystError( + "Can't find interpreter " + self.settings["interpreter"], + print_traceback=True) + + log.notice('Copying binary interpreter %s into chroot', self.settings['interpreter']) + + if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter']): + os.rename( + self.settings['chroot_path'] + '/' + self.settings['interpreter'], + self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst') + + shutil.copy(self.settings['interpreter'], + self.settings['chroot_path'] + '/' + self.settings['interpreter']) + # Copy over the envscript, if applicable if "envscript" in self.settings: if not os.path.exists(self.settings["envscript"]): @@ -1105,6 +1124,15 @@ class StageBase(TargetBase, ClearBase, GenBase): if os.path.exists(hosts_file + '.catalyst'): os.rename(hosts_file + '.catalyst', hosts_file) + # optionally clean up binary interpreter + if "interpreter" in self.settings: + if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst'): + os.rename( + self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst', + self.settings['chroot_path'] + '/' + self.settings['interpreter']) + else: + os.remove(self.settings['chroot_path'] + '/' + self.settings['interpreter']) + # optionally clean up portage configs if ("portage_prefix" in self.settings and "sticky-config" not in self.settings["options"]): |