Message ID | 20200218085356.13929-1-rasmus.villemoes@prevas.dk |
---|---|
State | Accepted |
Commit | 46d9d1c306967780d7afbfcbf942daf9ab33c466 |
Headers | show |
Series | env: make file-scope env_ptr variables static | expand |
On Tue, Feb 18, 2020 at 08:54:09AM +0000, Rasmus Villemoes wrote: > The combination ENV_IS_IN_NVRAM=y, ENV_IS_IN_REMOTE=y fails to build: > > env/remote.o:/mnt/ext4/devel/u-boot/env/remote.c:17: multiple definition of `env_ptr' > env/nvram.o:/mnt/ext4/devel/u-boot/env/nvram.c:41: first defined here > > It's not necessarily a meaningful combination, but for build-testing > it's nice to be able to enable most ENV_IS_IN_* at the same time, and > since these env_ptr are not declared anywhere, they really have no > reason to have external linkage. > > nand.c and flash.c similarly already define file-scope static env_ptr > variables. > > Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk> Applied to u-boot/master, thanks!
diff --git a/env/nvram.c b/env/nvram.c index a78db21623..1a9fcf1c06 100644 --- a/env/nvram.c +++ b/env/nvram.c @@ -38,7 +38,7 @@ DECLARE_GLOBAL_DATA_PTR; extern void *nvram_read(void *dest, const long src, size_t count); extern void nvram_write(long dest, const void *src, size_t count); #else -env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; +static env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; #endif #ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE diff --git a/env/remote.c b/env/remote.c index 50d77b8dfe..e3f0608b16 100644 --- a/env/remote.c +++ b/env/remote.c @@ -12,9 +12,9 @@ #include <u-boot/crc.h> #ifdef ENV_IS_EMBEDDED -env_t *env_ptr = &environment; +static env_t *env_ptr = &environment; #else /* ! ENV_IS_EMBEDDED */ -env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; +static env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; #endif /* ENV_IS_EMBEDDED */ DECLARE_GLOBAL_DATA_PTR;
The combination ENV_IS_IN_NVRAM=y, ENV_IS_IN_REMOTE=y fails to build: env/remote.o:/mnt/ext4/devel/u-boot/env/remote.c:17: multiple definition of `env_ptr' env/nvram.o:/mnt/ext4/devel/u-boot/env/nvram.c:41: first defined here It's not necessarily a meaningful combination, but for build-testing it's nice to be able to enable most ENV_IS_IN_* at the same time, and since these env_ptr are not declared anywhere, they really have no reason to have external linkage. nand.c and flash.c similarly already define file-scope static env_ptr variables. Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk> --- env/nvram.c | 2 +- env/remote.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)