Split MAYBE_STATIC to _BSS and _NONZERO variants

These are required to cover the absensce of .data and
.bss sections in some programs, most notably ARCH_X86
in execute-in-place with cache-as-ram.

Change-Id: I80485ebac94b88c5864a949b17ad1dccdfda6a40
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35003
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Kyösti Mälkki
2019-08-20 06:01:57 +03:00
parent f2cc52b694
commit 117cf2bdcb
16 changed files with 26 additions and 21 deletions

View File

@@ -35,11 +35,16 @@ typedef unsigned int wint_t;
#define DEVTREE_CONST
#endif
/* Work around non-writable data segment in execute-in-place romstage on x86. */
#if defined(__PRE_RAM__) && CONFIG(ARCH_X86)
#define MAYBE_STATIC
#if ENV_STAGE_HAS_DATA_SECTION
#define MAYBE_STATIC_NONZERO static
#else
#define MAYBE_STATIC static
#define MAYBE_STATIC_NONZERO
#endif
#if ENV_STAGE_HAS_BSS_SECTION
#define MAYBE_STATIC_BSS static
#else
#define MAYBE_STATIC_BSS
#endif
#ifndef __ROMCC__