From: Simon Glass <sjg@chromium.org>
Date: Thu, 27 Feb 2014 20:26:21 +0000 (-0700)
Subject: sandbox: Deal with conflicting getenv() for SDL
X-Git-Tag: v2025.01-rc5-pxa1908~15423^2~20
X-Git-Url: http://git.dujemihanovic.xyz/img/html/static/git-favicon.png?a=commitdiff_plain;h=20f86a0aeaad5dfa0b4f50bf5d04dd7bf1f7c3e9;p=u-boot.git

sandbox: Deal with conflicting getenv() for SDL

Unfortunately SDL requires getenv() to operate, since it wants to figure out
the display type. U-Boot has its own getenv() and they conflict. As a
work-around use #define to resolve the conflict.

A better but more complex solution might be to rename some U-Boot symbols
at link time. SDL audio is not functional at present, likely due to a related
issue.

Note: Vic Yank wrote a script for this, filed in crbug.com/271125.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
---

diff --git a/include/common.h b/include/common.h
index 090fcde5d0..968334b588 100644
--- a/include/common.h
+++ b/include/common.h
@@ -360,6 +360,11 @@ int do_ext2load(cmd_tbl_t *, int, int, char * const []);
 int	env_init     (void);
 void	env_relocate (void);
 int	envmatch     (uchar *, int);
+
+/* Avoid unfortunate conflict with libc's getenv() */
+#ifdef CONFIG_SANDBOX
+#define getenv uboot_getenv
+#endif
 char	*getenv	     (const char *);
 int	getenv_f     (const char *name, char *buf, unsigned len);
 ulong getenv_ulong(const char *name, int base, ulong default_val);