Patchwork [U-Boot] Improve MAKEALL parallel builds

login
register
mail settings
Submitter Andy Fleming
Date May 10, 2012, 6:36 a.m.
Message ID <1336631788-28127-1-git-send-email-afleming@freescale.com>
Download mbox | patch
Permalink /patch/158199/
State Accepted
Commit f50bf50d7f6f99c5ad4666d63a7eef43d3940500
Headers show

Comments

Andy Fleming - May 10, 2012, 6:36 a.m.
The patch that added parallel builds broke MAKEALL -l, so this
fixes that. At the same time, it improves the termination so
that it shuts down the build threads if you cancel the build.
Lastly, it removes a bunch of debug code.

Signed-off-by: Andy Fleming <afleming@freescale.com>
---
 MAKEALL |   34 ++++++++++++++++++----------------
 1 files changed, 18 insertions(+), 16 deletions(-)
Wolfgang Denk - May 18, 2012, 11:49 a.m.
Dear Andy Fleming,

In message <1336631788-28127-1-git-send-email-afleming@freescale.com> you wrote:
> The patch that added parallel builds broke MAKEALL -l, so this
> fixes that. At the same time, it improves the termination so
> that it shuts down the build threads if you cancel the build.
> Lastly, it removes a bunch of debug code.
> 
> Signed-off-by: Andy Fleming <afleming@freescale.com>
> ---
>  MAKEALL |   34 ++++++++++++++++++----------------
>  1 files changed, 18 insertions(+), 16 deletions(-)

I confirm this fixes the -l issue, so:

Tested-by: Wolfgang Denk <wd@denx.de>

Applied, thanks.

Best regards,

Wolfgang Denk

Patch

diff --git a/MAKEALL b/MAKEALL
index 5b610bf..05e2d90 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -340,12 +340,7 @@  LIST_ARM9="$(boards_by_cpu arm920t)	\
 #########################################################################
 ## ARM11 Systems
 #########################################################################
-LIST_ARM11="$(boards_by_cpu arm1136)	\
-	imx31_phycore		\
-	imx31_phycore_eet	\
-	mx31pdk			\
-	smdk6400		\
-"
+LIST_ARM11="$(boards_by_cpu arm1136)"
 
 #########################################################################
 ## ARMV7 Systems
@@ -615,6 +610,11 @@  build_target() {
 	target=$1
 	build_idx=$2
 
+	if [ "$ONLY_LIST" == 'y' ] ; then
+		list_target ${target}
+		return
+	fi
+
 	if [ $BUILD_MANY == 1 ] ; then
 		output_dir="${OUTPUT_PREFIX}/${target}"
 		mkdir -p "${output_dir}"
@@ -624,11 +624,6 @@  build_target() {
 
 	export BUILD_DIR="${output_dir}"
 
-	if [ "$ONLY_LIST" == 'y' ] ; then
-		list_target ${target}
-		return
-	fi
-
 	${MAKE} distclean >/dev/null
 	${MAKE} -s ${target}_config
 
@@ -666,16 +661,15 @@  build_target() {
 
 	[ -e "${LOG_DIR}/${target}.ERR" ] && cat "${LOG_DIR}/${target}.ERR"
 
-	#echo "Writing ${donep}${build_idx}"
 	touch "${donep}${build_idx}"
 }
 
 manage_builds() {
 	search_idx=${OLDEST_IDX}
-	#echo "Searching ${OLDEST_IDX} to ${TOTAL_CNT}"
+	if [ "$ONLY_LIST" == 'y' ] ; then return ; fi
+
 	while true; do
 		if [ -e "${donep}${search_idx}" ] ; then
-	#		echo "Found ${donep}${search_idx}"
 			: $(( CURRENT_CNT-- ))
 			[ ${OLDEST_IDX} -eq ${search_idx} ] &&
 				: $(( OLDEST_IDX++ ))
@@ -687,10 +681,8 @@  manage_builds() {
 			[ ${OLDEST_IDX} -eq ${search_idx} ] &&
 				: $(( OLDEST_IDX++ ))
 		fi
-		#echo "Checking search ${search_idx} vs ${TOTAL_CNT}"
 		: $(( search_idx++ ))
 		if [ ${search_idx} -gt ${TOTAL_CNT} ] ; then
-			#echo "Checking current ${CURRENT_CNT} vs ${BUILD_NBUILDS}"
 			if [ ${CURRENT_CNT} -ge ${BUILD_NBUILDS} ] ; then
 				search_idx=${OLDEST_IDX}
 				sleep 1
@@ -739,6 +731,12 @@  build_targets() {
 
 #-----------------------------------------------------------------------
 
+kill_children() {
+	kill -- "-$1"
+
+	exit
+}
+
 print_stats() {
 	if [ "$ONLY_LIST" == 'y' ] ; then return ; fi
 
@@ -759,6 +757,10 @@  print_stats() {
 	fi
 	echo "----------------------------------------------------------"
 
+	if [ $BUILD_MANY == 1 ] ; then
+		kill_children $$ &
+	fi
+
 	exit $RC
 }