All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Hershberger <joe.hershberger@ni.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 02/10] moveconfig: Continue moving even if one board fails
Date: Wed, 13 May 2015 17:28:48 -0500	[thread overview]
Message-ID: <1431556137-8426-2-git-send-email-joe.hershberger@ni.com> (raw)
In-Reply-To: <1431556137-8426-1-git-send-email-joe.hershberger@ni.com>

Some compilers are hard to come by or have so few boards they are not
worth messing with for this tool. Provide a list that need manual
intervention and continue moving the bulk of boards.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>

---

Changes in v3: None
Changes in v2:
-Print which compiler is missing

 tools/moveconfig.py | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 30dc4f6..d9ae859 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -17,6 +17,7 @@ import os
 import re
 import shutil
 import subprocess
+from subprocess import PIPE
 import sys
 import tempfile
 import time
@@ -276,6 +277,13 @@ class Slot:
         self.state = STATE_DEFCONFIG
         return True
 
+    def defconfig_error(self, errmsg):
+        output = self.defconfig[:-len('_defconfig')].ljust(37) + ': '
+        print output + errmsg
+
+        """Save a list of targets that have to be checked by hand"""
+        open('moveconfig.failed', 'a+').write("%s\n" % self.defconfig)
+
     def poll(self):
         """Check if the subprocess is running and invoke the .config
         parser if the subprocess is terminated.
@@ -290,19 +298,25 @@ class Slot:
             return False
 
         if self.ps.poll() != 0:
-            sys.exit("failed to process '%s'" % self.defconfig)
+            errmsg = 'ERROR - build error'
+            errout = self.ps.stderr.read()
+            if errout.find('gcc: command not found') != -1:
+                errmsg = 'ERROR - compiler not found (%s)' % self.cross_compile
+            self.defconfig_error(errmsg)
+            self.state = STATE_IDLE
+            return True
 
         if self.state == STATE_SILENTOLDCONFIG:
             self.parser.update_defconfig(self.defconfig)
             self.state = STATE_IDLE
             return True
 
-        cross_compile = self.parser.get_cross_compile()
+        self.cross_compile = self.parser.get_cross_compile()
         cmd = list(self.make_cmd)
-        if cross_compile:
-            cmd.append('CROSS_COMPILE=%s' % cross_compile)
+        if self.cross_compile:
+            cmd.append('CROSS_COMPILE=%s' % self.cross_compile)
         cmd.append('include/autoconf.mk')
-        self.ps = subprocess.Popen(cmd, stdout=self.devnull)
+        self.ps = subprocess.Popen(cmd, stdout=self.devnull, stderr=PIPE)
         self.state = STATE_SILENTOLDCONFIG
         return False
 
@@ -362,6 +376,7 @@ class Slots:
 
 def move_config(config_attr, jobs=1):
     check_top_directory()
+
     print 'Moving %s (type: %s, default: %s, no_spl: %s) ...  (jobs: %d)' % (
         config_attr['config'],
         config_attr['type'],
@@ -378,6 +393,10 @@ def move_config(config_attr, jobs=1):
                 continue
             defconfigs.append(os.path.join(dirpath, filename))
 
+    """Clean up any previous log of failed moves"""
+    if os.path.exists('moveconfig.failed'):
+        os.remove('moveconfig.failed')
+
     slots = Slots(config_attr, jobs)
 
     # Main loop to process defconfig files:
@@ -395,6 +414,12 @@ def move_config(config_attr, jobs=1):
 
     cleanup_headers(config_attr['config'])
 
+    if os.path.exists('moveconfig.failed'):
+        print '!!!  Some boards were not processed; move the config manually.'
+        print '!!!  The list of failed boards are saved in moveconfig.failed'
+        print
+        print open('moveconfig.failed', 'r').read()
+
 def main():
     try:
         cpu_count = multiprocessing.cpu_count()
-- 
1.7.11.5

  reply	other threads:[~2015-05-13 22:28 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-19 12:12 [U-Boot] [PATCH] Don't apply: tools: add a tool to move automatically CONFIGs from headers to defconfigs Masahiro Yamada
2015-03-04  0:18 ` Simon Glass
2015-03-11  5:53   ` Masahiro Yamada
2015-05-07 21:22 ` [U-Boot] [PATCH 1/5] moveconfig: Actually build autoconf.mk Joe Hershberger
2015-05-07 21:22   ` [U-Boot] [PATCH 2/5] moveconfig: Add a mapping for the arc cross-compiler Joe Hershberger
2015-05-07 21:22   ` [U-Boot] [PATCH 3/5] moveconfig: Continue moving even if one board fails Joe Hershberger
2015-05-07 21:22   ` [U-Boot] [PATCH 4/5] moveconfig: Error if missing the include/autoconf.mk Joe Hershberger
2015-05-07 21:23   ` [U-Boot] [PATCH 5/5] moveconfig: Always run savedefconfig on the moved config Joe Hershberger
2015-05-11 17:23   ` [U-Boot] [PATCH v2 1/7] moveconfig: Actually build autoconf.mk Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 2/7] moveconfig: Add a mapping for the arc cross-compiler Joe Hershberger
2015-05-13  2:14       ` Masahiro Yamada
2015-05-13 15:34         ` Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 3/7] moveconfig: Continue moving even if one board fails Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 4/7] moveconfig: Error if missing the include/autoconf.mk Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 5/7] moveconfig: Always run savedefconfig on the moved config Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 6/7] moveconfig: Add a parameter to accept a list to build Joe Hershberger
2015-05-11 17:23     ` [U-Boot] [PATCH v2 7/7] moveconfig: Add a switch to enable printing errors Joe Hershberger
2015-05-13 22:28     ` [U-Boot] [PATCH v3 01/10] moveconfig: Actually build autoconf.mk Joe Hershberger
2015-05-13 22:28       ` Joe Hershberger [this message]
2015-05-14 13:09         ` [U-Boot] [PATCH v3 02/10] moveconfig: Continue moving even if one board fails Masahiro Yamada
2015-05-13 22:28       ` [U-Boot] [PATCH v3 03/10] moveconfig: Error if missing the include/autoconf.mk Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 04/10] moveconfig: Always run savedefconfig on the moved config Joe Hershberger
2015-05-14 15:15         ` Masahiro Yamada
2015-05-14 17:57           ` Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 05/10] moveconfig: Add a parameter to accept a list to build Joe Hershberger
2015-05-14 13:06         ` Masahiro Yamada
2015-05-13 22:28       ` [U-Boot] [PATCH v3 06/10] moveconfig: Add a switch to enable printing errors Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 07/10] moveconfig: Ignore duplicate configs when moving Joe Hershberger
2015-05-14 15:36         ` Masahiro Yamada
2015-05-14 18:02           ` Joe Hershberger
2015-05-15  5:10             ` Masahiro Yamada
2015-05-16  2:57               ` Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 08/10] moveconfig: Handle moving multiple configs at once Joe Hershberger
2015-05-14 14:37         ` Masahiro Yamada
2015-05-14 18:05           ` Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 09/10] moveconfig: Print status about the processed defconfigs Joe Hershberger
2015-05-13 22:28       ` [U-Boot] [PATCH v3 10/10] moveconfig: Add a switch to only cleanup headers Joe Hershberger
2015-05-14 14:51         ` Masahiro Yamada
2015-05-14 18:03           ` Joe Hershberger
2015-05-14 13:04       ` [U-Boot] [PATCH v3 01/10] moveconfig: Actually build autoconf.mk Masahiro Yamada
2015-05-15 21:40       ` [U-Boot] [PATCH v4 01/10] moveconfig: Always run savedefconfig on the moved config Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 02/10] moveconfig: Ignore duplicate configs when moving Joe Hershberger
2015-05-19  4:37           ` Masahiro Yamada
2015-05-15 21:40         ` [U-Boot] [PATCH v4 03/10] moveconfig: Add a parameter to accept a list to build Joe Hershberger
2015-05-19  4:33           ` Masahiro Yamada
2015-05-19 17:58             ` Joe Hershberger
2015-05-20  3:01               ` Masahiro Yamada
2015-05-15 21:40         ` [U-Boot] [PATCH v4 04/10] moveconfig: Add a switch to only cleanup headers Joe Hershberger
2015-05-19  2:03           ` Masahiro Yamada
2015-05-19 15:36             ` Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 05/10] moveconfig: Cleanup headers in arch and board Joe Hershberger
2015-05-19  1:41           ` Masahiro Yamada
2015-05-19 14:33             ` Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 06/10] moveconfig: Remove probable debug print Joe Hershberger
2015-05-19  2:10           ` Masahiro Yamada
2015-05-19 15:36             ` Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 07/10] moveconfig: Output a list of failed boards Joe Hershberger
2015-05-19  3:12           ` Masahiro Yamada
2015-05-19 15:40             ` Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 08/10] moveconfig: Print a message for missing compiler Joe Hershberger
2015-05-19  3:23           ` Masahiro Yamada
2015-05-19 17:51             ` Joe Hershberger
2015-05-20  3:04               ` Masahiro Yamada
2015-05-15 21:40         ` [U-Boot] [PATCH v4 09/10] moveconfig: Add a switch to enable printing errors Joe Hershberger
2015-05-19  3:25           ` Masahiro Yamada
2015-05-19 17:52             ` Joe Hershberger
2015-05-15 21:40         ` [U-Boot] [PATCH v4 10/10] moveconfig: Print status about the processed defconfigs Joe Hershberger
2015-05-19  4:05           ` Masahiro Yamada
2015-05-19  1:58         ` [U-Boot] [PATCH v4 01/10] moveconfig: Always run savedefconfig on the moved config Masahiro Yamada
2015-05-19 15:35           ` Joe Hershberger
2015-05-19 18:07           ` Joe Hershberger
2015-05-19 18:21         ` [U-Boot] [PATCH v5 1/9] " Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 2/9] moveconfig: Ignore duplicate configs when moving Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 3/9] moveconfig: Add a parameter to accept a list to build Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 4/9] moveconfig: Add a switch to only cleanup headers Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 5/9] moveconfig: Cleanup headers in arch and board Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 6/9] moveconfig: Output a list of failed boards Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 7/9] moveconfig: Print a message for missing compiler Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 8/9] moveconfig: Add a switch to enable printing errors Joe Hershberger
2015-05-19 18:21           ` [U-Boot] [PATCH v5 9/9] moveconfig: Print status about the processed defconfigs Joe Hershberger
2015-05-20  4:48           ` [U-Boot] [PATCH v5 1/9] moveconfig: Always run savedefconfig on the moved config Masahiro Yamada
2015-05-26 23:43           ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1431556137-8426-2-git-send-email-joe.hershberger@ni.com \
    --to=joe.hershberger@ni.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.