Hi Peng,

On 24/10/18 07:09, Peng Fan wrote:
> When the required files to build a bootable imx8 image are not
> found, return EXIT_SUCCESS to avoid build CI system.
> And if the files are missing, give a error message during the build.
> 

Thanks for this - anyway, I am thinking about if this is the correct
solution. IMHO the current implementation in mkimage *is* already
correct. Files are missing, mkimage cannot be completed with success, we
do not get an image suitable for booting - an error is raised. What else
? There is nothing wrong on this :-).

However, we have to make CI happy - but mkimage could be called even
outside a U-Boot build, and should be scriptable, that is it must report
an error in case of failure. This is already provided.

Instead of changing mkimage, I thought to not call mkimage at all. We
could add a test in arch/arm/mach-imx/Makefile to check if files for
imx8 are available, and if not, we print warnings and Makefile returns
with success. CI / Travis should be happy again without introducing a
buggy behavior into mkimage. What do you think ?

Best regards,
Stefano

> Signed-off-by: Peng Fan <peng....@nxp.com>
> ---
>  tools/imx8image.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/imx8image.c b/tools/imx8image.c
> index e6b0a146b6..35409646f5 100644
> --- a/tools/imx8image.c
> +++ b/tools/imx8image.c
> @@ -279,9 +279,9 @@ static void check_file(struct stat *sbuf, char *filename)
>       int tmp_fd  = open(filename, O_RDONLY | O_BINARY);
>  
>       if (tmp_fd < 0) {
> -             fprintf(stderr, "%s: Can't open: %s\n",
> +             fprintf(stderr, "*** %s: Can't open: %s ***\n",
>                       filename, strerror(errno));
> -             exit(EXIT_FAILURE);
> +             exit(EXIT_SUCCESS);
>       }
>  
>       if (fstat(tmp_fd, sbuf) < 0) {
> @@ -311,9 +311,9 @@ static void copy_file_aligned(int ifd, const char 
> *datafile, int offset,
>  
>       dfd = open(datafile, O_RDONLY | O_BINARY);
>       if (dfd < 0) {
> -             fprintf(stderr, "Can't open %s: %s\n",
> +             fprintf(stderr, "*** Can't open %s: %s ***\n",
>                       datafile, strerror(errno));
> -             exit(EXIT_FAILURE);
> +             exit(EXIT_SUCCESS);
>       }
>  
>       if (fstat(dfd, &sbuf) < 0) {
> @@ -365,9 +365,9 @@ static void copy_file (int ifd, const char *datafile, int 
> pad, int offset)
>  
>       dfd = open(datafile, O_RDONLY | O_BINARY);
>       if (dfd < 0) {
> -             fprintf(stderr, "Can't open %s: %s\n",
> +             fprintf(stderr, "*** Can't open %s: %s ***\n",
>                       datafile, strerror(errno));
> -             exit(EXIT_FAILURE);
> +             exit(EXIT_SUCCESS);
>       }
>  
>       if (fstat(dfd, &sbuf) < 0) {
> @@ -648,8 +648,8 @@ static int get_container_image_start_pos(image_t 
> *image_stack, uint32_t align)
>               if (img_sp->option == APPEND) {
>                       fd = fopen(img_sp->filename, "r");
>                       if (!fd) {
> -                             fprintf(stderr, "Fail open first container file 
> %s\n", img_sp->filename);
> -                             exit(EXIT_FAILURE);
> +                             fprintf(stderr, "*** Fail open first container 
> file %s ***\n", img_sp->filename);
> +                             exit(EXIT_SUCCESS);
>                       }
>  
>                       ret = fread(&header, sizeof(header), 1, fd);
> 


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=====================================================================
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to