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
next prev parent 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.