On Thu, 30 Oct 2014 23:11:03 +0100
Anatolij Gustschin <[email protected]> wrote:

> On Fri, 24 Oct 2014 23:39:11 +0200
> [email protected] wrote:
> 
> > From: Andreas Bießmann <[email protected]>
> > 
> > kwbimage uses get_current_dir_name(3) which is a gnu extension and not
> > available on darwin host. Fix this by converting to portable getcwd(3)
> > function.
> > 
> > This patch fixes the following error:
> > ---8<---
> >   HOSTCC  tools/kwbimage.o
> > tools/kwbimage.c:399:16: warning: implicit declaration of function 
> > 'get_current_dir_name' is invalid in C99 [-Wimplicit-function-declaration]
> >                         char *cwd = get_current_dir_name();
> >                                     ^
> > tools/kwbimage.c:399:10: warning: incompatible integer to pointer 
> > conversion initializing 'char *' with an expression of type 'int' 
> > [-Wint-conversion]
> >                         char *cwd = get_current_dir_name();
> >                               ^     ~~~~~~~~~~~~~~~~~~~~~~
> > 2 warnings generated.
> > ...
> > Undefined symbols for architecture x86_64:
> >   "_get_current_dir_name", referenced from:
> >       _image_headersz_v1 in kwbimage.o
> > ld: symbol(s) not found for architecture x86_64
> > --->8---
> > 
> > Signed-off-by: Andreas Bießmann <[email protected]>
> > Cc: Stefan Roese <[email protected]>
> > 
> > ---
> > 
> >  tools/kwbimage.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> Applied to u-boot-staging. Thanks!

Now I see

tools/kwbimage.c:402:4: warning: ignoring return value of ‘getcwd’,
declared with attribute warn_unused_result [-Wunused-result]

So, additionally applied:

diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index 0a388c8..ec52f9e 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -398,13 +398,19 @@ static size_t image_headersz_v1(struct image_tool_params 
*params,
                ret = stat(binarye->binary.file, &s);
                if (ret < 0) {
                        char cwd[PATH_MAX];
+                       char *dir = cwd;
+
                        memset(cwd, 0, sizeof(cwd));
-                       getcwd(cwd, sizeof(cwd));
+                       if (!getcwd(cwd, sizeof(cwd))) {
+                               dir = "current working directory";
+                               perror("getcwd() failed");
+                       }
+
                        fprintf(stderr,
                                "Didn't find the file '%s' in '%s' which is 
mandatory to generate the image\n"
                                "This file generally contains the DDR3 training 
code, and should be extracted from an existing bootable\n"
                                "image for your board. See 'kwbimage -x' to 
extract it from an existing image.\n",
-                               binarye->binary.file, cwd);
+                               binarye->binary.file, dir);
                        return 0;
                }
 
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to