x86_64 support, #527
authorZhang Qiang <qiang.z.zhang@intel.com>
Tue, 20 Nov 2012 06:57:44 +0000 (14:57 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Wed, 21 Nov 2012 05:25:03 +0000 (13:25 +0800)
Change-Id: I9e9e1f94d60dae3f61df0a1b880250220511e203

gitbuildsys/cmd_build.py

index f244feca4c2f9307cf1ca8ba7f1245ad65527b5a..dfd9b38cd469c35a5746f1e903e326dc7d2944e1 100644 (file)
@@ -43,6 +43,7 @@ CHANGE_PERSONALITY = {
           }
 
 BUILDARCHMAP = {
+            'x86_64':   'x86_64',
             'ia32':     'i586',
             'i686':     'i586',
             'i586':     'i586',
@@ -50,6 +51,7 @@ BUILDARCHMAP = {
           }
 
 SUPPORTEDARCHS = [
+            'x86_64',
             'ia32',
             'i686',
             'i586',
@@ -60,6 +62,24 @@ SUPPORTEDARCHS = [
             'armv7l',
           ]
 
+# These two dicts maping come from osc/build.py
+CAN_ALSO_BUILD = {
+             'armv7l' :['armv4l', 'armv5l', 'armv6l', 'armv7l', 'armv5el', 'armv6el', 'armv7el'],
+             'armv7el':['armv4l', 'armv5l', 'armv6l', 'armv7l', 'armv5el', 'armv6el', 'armv7el'],
+             'armv8l' :['armv4l', 'armv5el', 'armv6el', 'armv7el', 'armv8el' ],
+             'i586'   :['i586', 'i386'],
+             'i686'   :['i686', 'i586', 'i386',],
+             'x86_64' :['x86_64', 'i686', 'i586', 'i386'],
+            }
+
+QEMU_CAN_BUILD = [ 'armv4l', 'armv5el', 'armv5l', 'armv6l', 'armv7l', 'armv6el', 'armv7el', 'armv7hl', 'armv8el',
+                   'sh4', 'mips', 'mipsel',
+                   'ppc', 'ppc64',
+                   's390', 's390x',
+                   'sparc64v', 'sparcv9v', 'sparcv9', 'sparcv8', 'sparc',
+                   'hppa'
+                ]
+
 USERID = pwd.getpwuid(os.getuid())[0]
 TMPDIR = os.path.join(configmgr.get('tmpdir', 'general'), '%s-gbs' % USERID)
 
@@ -251,6 +271,11 @@ def main(args):
         msger.error('arch %s not supported, supported archs are: %s ' % \
                    (buildarch, ','.join(SUPPORTEDARCHS)))
 
+    if buildarch not in CAN_ALSO_BUILD.get(hostarch, []):
+        if buildarch not in QEMU_CAN_BUILD:
+            msger.error('hostarch: %s can\'t build target arch %s' % \
+                       (hostarch, buildarch))
+
     profile = get_profile(args)
     if args.buildroot:
         build_root = args.buildroot