diff mbox

[U-Boot,2/2] tools/kwbimage.c: fix build on darwin

Message ID 1414186751-3061-3-git-send-email-andreas.devel@googlemail.com
State Accepted
Delegated to: Anatolij Gustschin
Headers show

Commit Message

Andreas Bießmann Oct. 24, 2014, 9:39 p.m. UTC
From: Andreas Bießmann <andreas.devel@googlemail.com>

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 <andreas.devel@googlemail.com>
Cc: Stefan Roese <sr@denx.de>

---

 tools/kwbimage.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Stefan Roese Oct. 27, 2014, 7:14 a.m. UTC | #1
On 24.10.2014 23:39, andreas.devel@googlemail.com wrote:
> From: Andreas Bießmann <andreas.devel@googlemail.com>
>
> 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 <andreas.devel@googlemail.com>
> Cc: Stefan Roese <sr@denx.de>

Acked-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan
Anatolij Gustschin Oct. 30, 2014, 10:11 p.m. UTC | #2
On Fri, 24 Oct 2014 23:39:11 +0200
andreas.devel@googlemail.com wrote:

> From: Andreas Bießmann <andreas.devel@googlemail.com>
> 
> 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 <andreas.devel@googlemail.com>
> Cc: Stefan Roese <sr@denx.de>
> 
> ---
> 
>  tools/kwbimage.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)

Applied to u-boot-staging. Thanks!

Anatolij
diff mbox

Patch

diff --git a/tools/kwbimage.c b/tools/kwbimage.c
index ca4fc78..8fd70ef 100644
--- a/tools/kwbimage.c
+++ b/tools/kwbimage.c
@@ -12,6 +12,7 @@ 
  */
 
 #include "imagetool.h"
+#include <limits.h>
 #include <image.h>
 #include <stdint.h>
 #include "kwbimage.h"
@@ -396,13 +397,14 @@  static size_t image_headersz_v1(struct image_tool_params *params,
 
 		ret = stat(binarye->binary.file, &s);
 		if (ret < 0) {
-			char *cwd = get_current_dir_name();
+			char cwd[PATH_MAX];
+			memset(cwd, 0, sizeof(cwd));
+			getcwd(cwd, sizeof(cwd));
 			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);
-			free(cwd);
 			return 0;
 		}