commit:     72b60014663fabea91275f627a83c7f5be2e778b
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 12 00:50:19 2020 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Mon Apr 13 20:43:10 2020 +0000
URL:        https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=72b60014

catalyst: Set CHROOT in stagebase

Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 catalyst/arch/powerpc.py   |  7 ++-----
 catalyst/arch/sparc.py     |  7 ++-----
 catalyst/arch/x86.py       |  7 ++-----
 catalyst/base/stagebase.py | 10 ++++++++--
 catalyst/builder.py        |  8 --------
 5 files changed, 14 insertions(+), 25 deletions(-)

diff --git a/catalyst/arch/powerpc.py b/catalyst/arch/powerpc.py
index 0d88cc59..e2f241d3 100644
--- a/catalyst/arch/powerpc.py
+++ b/catalyst/arch/powerpc.py
@@ -1,5 +1,3 @@
-import platform
-
 from catalyst import builder
 
 class generic_ppc(builder.generic):
@@ -7,9 +5,8 @@ class generic_ppc(builder.generic):
        def __init__(self,myspec):
                builder.generic.__init__(self,myspec)
                self.settings["CHOST"]="powerpc-unknown-linux-gnu"
-               if platform.machine() == 'ppc64':
-                       self.setarch('linux32')
-                       self.settings["crosscompile"] = False
+               self.settings['setarch_build'] = 'ppc64'
+               self.settings['setarch_arch'] = 'linux32'
 
 class generic_ppc64(builder.generic):
        "abstract base class for all 64-bit powerpc builders"

diff --git a/catalyst/arch/sparc.py b/catalyst/arch/sparc.py
index 782d8916..38a1479e 100644
--- a/catalyst/arch/sparc.py
+++ b/catalyst/arch/sparc.py
@@ -1,14 +1,11 @@
-import platform
-
 from catalyst import builder
 
 class generic_sparc(builder.generic):
        "abstract base class for all sparc builders"
        def __init__(self,myspec):
                builder.generic.__init__(self,myspec)
-               if platform.machine() == 'sparc64':
-                       self.setarch('linux32')
-                       self.settings["crosscompile"] = False
+               self.settings['setarch_build'] = 'sparc64'
+               self.settings['setarch_arch'] = 'linux32'
 
 class generic_sparc64(builder.generic):
        "abstract base class for all sparc64 builders"

diff --git a/catalyst/arch/x86.py b/catalyst/arch/x86.py
index 307365dc..751ae769 100644
--- a/catalyst/arch/x86.py
+++ b/catalyst/arch/x86.py
@@ -1,14 +1,11 @@
-import platform
-
 from catalyst import builder
 
 class generic_x86(builder.generic):
        "abstract base class for all x86 builders"
        def __init__(self,myspec):
                builder.generic.__init__(self,myspec)
-               if platform.machine() == 'x86_64':
-                       self.setarch('linux32')
-                       self.settings["crosscompile"] = False
+               self.settings['setarch_build'] = 'x86_64'
+               self.settings['setarch_arch'] = 'linux32'
 
 class arch_x86(generic_x86):
        "builder class for generic x86 (386+)"

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index d18f28af..d4fafb74 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -136,8 +136,6 @@ class StageBase(TargetBase, ClearBase, GenBase):
                if buildmachine not in machinemap:
                        raise CatalystError("Unknown build machine type " + 
buildmachine)
                self.settings["buildarch"] = machinemap[buildmachine]
-               self.settings["crosscompile"] = (self.settings["hostarch"] != \
-                       self.settings["buildarch"])
 
                # Call arch constructor, pass our settings
                try:
@@ -149,6 +147,14 @@ class StageBase(TargetBase, ClearBase, GenBase):
                                ' %s',
                                self.settings['subarch'], ' 
'.join(self.subarchmap))
 
+               if 'setarch_arch' in self.settings and platform.machine() == 
self.settings["setarch_build"]:
+                       self.settings["CHROOT"] = f'setarch 
{self.settings["setarch_arch"]} chroot'
+                       self.settings["crosscompile"] = False
+               else:
+                       self.settings["CHROOT"] = 'chroot'
+                       self.settings["crosscompile"] = \
+                               self.settings["hostarch"] != 
self.settings["buildarch"]
+
                log.notice('Using target: %s', self.settings['target'])
                # Print a nice informational message
                if self.settings["buildarch"] == self.settings["hostarch"]:

diff --git a/catalyst/builder.py b/catalyst/builder.py
index fd8d5eb6..2d139263 100644
--- a/catalyst/builder.py
+++ b/catalyst/builder.py
@@ -1,11 +1,3 @@
 class generic():
        def __init__(self,myspec):
                self.settings=myspec
-               self.settings.setdefault('CHROOT', 'chroot')
-
-       def setarch(self, arch):
-               """Set the chroot wrapper to run through `setarch |arch|`
-
-               Useful for building x86-on-amd64 and such.
-               """
-               self.settings['CHROOT'] = 'setarch %s %s' % (arch, 
self.settings['CHROOT'])

Reply via email to