On 07/08/2014 03:46 PM, Alexander Aring wrote: > On Tue, Jul 08, 2014 at 03:30:37PM +0200, Marc Kleine-Budde wrote: >> On 07/08/2014 03:24 PM, Alexander Aring wrote: >>> On Tue, Jul 08, 2014 at 03:22:18PM +0200, Marc Kleine-Budde wrote: >>>> On 07/08/2014 02:59 PM, Alexander Aring wrote: >>>>> This patch adds a error handling for the dtc and call a ptxd_bailout if >>>>> an error occur. >>>>> >>>>> Signed-off-by: Alexander Aring >>>>> --- >>>>> scripts/lib/ptxd_make_dts_dtc.sh | 4 ++++ >>>>> 1 file changed, 4 insertions(+) >>>>> >>>>> diff --git a/scripts/lib/ptxd_make_dts_dtc.sh b/scripts/lib/ptxd_make_dts_dtc.sh >>>>> index 24c5604..6a09cae 100644 >>>>> --- a/scripts/lib/ptxd_make_dts_dtc.sh >>>>> +++ b/scripts/lib/ptxd_make_dts_dtc.sh >>>>> @@ -59,6 +59,10 @@ ptxd_make_dts_dtb() { >>>>> -I dts -O dtb -b 0 \ >>>>> -o "${dts_dtb}" "${tmp_dts}" >>>>> >>>>> + if [ "$?" != "0" ]; then >>>>> + ptxd_bailout "Unable to generate ${dts_dtb} file." >>>>> + fi >>>> >>>> What about: >>>> >>>> || ptxd_bailout "Unable to generate ${dts_dtb} file." >>>> >>> >>> okay, yes then we could save the if. I can also add >>> >>> || ptxd_bailout ... for cpp call. >> >> Or better concatenate everything with a && and add || bailout at the end. >> > > uiuiuiui, but we have some other steps in the middle and the most looks > currently like magic for me. But I think we could do: > > sed -e "s;^${tmp_dts}:;${dts_dtb}:;" \ > -e 's;^ \([^ ]*\); $(wildcard \1);' "${tmp_deps}" > "${deps}" > > if dtc -h 2>&1 | grep -q '^[[:space:]]\+-i\(,.*\)\?$'; then > dtc_include="-i $(dirname "${dts}") -i ${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts" > fi > > echo "CPP $(ptxd_print_path "${tmp_dts}")" > cpp \ > -Wp,-MD,${tmp_deps} \ > -Wp,-MT,${tmp_dts} \ > -nostdinc \ > -P \ > -I$(dirname "${dts}") \ > -I${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts \ > -I${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts/include \ > -I${dts_kernel_dir}/drivers/of/testcase-data \ > -I${dts_kernel_dir}/include \ > -undef -D__DTS__ -x assembler-with-cpp \ > -o ${tmp_dts} \ > ${dts} && \ ^^^ not needed, as like the others.. > echo "DTC $(ptxd_print_path "${dts_dtb}")" && \ ^^^ > dtc \ > $(ptxd_get_ptxconf PTXCONF_DTC_EXTRA_ARGS) \ > ${dtc_include} \ > -d "${tmp_deps}" \ > -I dts -O dtb -b 0 \ > -o "${dts_dtb}" "${tmp_dts}" || \ > ptxd_bailout "Unable to generate ${dts_dtb} file." > > > normally we can forget to check error on echo, but it's in the > middle of the generation. I also moved the sed and dtc_include setting > before calling cpp step. I think this should work, maybe it looks a > little bit ugly, don't know what is a nice indentation. :-/ IMHO No need to rearrange the whole function, just add the missing && (and finally a || bailout). Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |