Edward O'Callaghan (eocallaghan@alterapraxis.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4718
-gerrit
commit 5791521acabc345f9c4694e166659a59fd6e0068 Author: Edward O'Callaghan eocallaghan@alterapraxis.com Date: Thu Feb 20 20:29:26 2014 +1100
CAR_GLOBAL: don't use static, but hide variables instead
When __attribute__((section)) is used with the 'static' keyword it is intended to indicate the symbol to be read-only, clang enforces that. Thus, the visibility(hidden) attribute is used indicates that the symbol will not be placed into the dynamic symbol table instead.
Change-Id: Ie0d40946cd087e40f60f9d04e2eda56df75f26da Signed-off-by: Patrick Georgi patrick@georgi-clan.de Signed-off-by: Edward O'Callaghan eocallaghan@alterapraxis.com --- src/arch/x86/include/arch/early_variables.h | 4 ++-- src/cpu/x86/car.c | 2 +- src/cpu/x86/lapic/apic_timer.c | 2 +- src/drivers/emulation/qemu/qemu_debugcon.c | 2 +- src/drivers/pc80/tpm.c | 2 +- src/drivers/usb/ehci_debug.c | 2 +- src/lib/cbmem_console.c | 4 ++-- src/lib/timestamp.c | 6 +++--- src/vendorcode/google/chromeos/vbnv.c | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/arch/x86/include/arch/early_variables.h b/src/arch/x86/include/arch/early_variables.h index ea1a133..0b3e263 100644 --- a/src/arch/x86/include/arch/early_variables.h +++ b/src/arch/x86/include/arch/early_variables.h @@ -25,8 +25,8 @@ asm(".section .car.global_data,"w",@nobits"); asm(".previous"); asm(".section .car.cbmem_console,"w",@nobits"); asm(".previous"); -#define CAR_GLOBAL __attribute__((section(".car.global_data"))) -#define CAR_CBMEM __attribute__((section(".car.cbmem_console"))) +#define CAR_GLOBAL __attribute__((section(".car.global_data"), visibility ("hidden"))) +#define CAR_CBMEM __attribute__((section(".car.cbmem_console"), visibility ("hidden"))) #else #define CAR_GLOBAL #define CAR_CBMEM diff --git a/src/cpu/x86/car.c b/src/cpu/x86/car.c index a7e3842..35e4704 100644 --- a/src/cpu/x86/car.c +++ b/src/cpu/x86/car.c @@ -39,7 +39,7 @@ extern char _car_data_end[]; * Based on these 2 attributes there is the ability to tell when the * cache-as-ram region has been migrated. */ -static int car_migrated CAR_GLOBAL; +int car_migrated CAR_GLOBAL;
void *car_get_var_ptr(void *var) diff --git a/src/cpu/x86/lapic/apic_timer.c b/src/cpu/x86/lapic/apic_timer.c index 868fb92..5308567 100644 --- a/src/cpu/x86/lapic/apic_timer.c +++ b/src/cpu/x86/lapic/apic_timer.c @@ -41,7 +41,7 @@ static int set_timer_fsb(void) return 0; } #else -static u32 timer_fsb CAR_GLOBAL = 0; +u32 timer_fsb CAR_GLOBAL = 0;
static int set_timer_fsb(void) { diff --git a/src/drivers/emulation/qemu/qemu_debugcon.c b/src/drivers/emulation/qemu/qemu_debugcon.c index 9c00585..a7def46 100644 --- a/src/drivers/emulation/qemu/qemu_debugcon.c +++ b/src/drivers/emulation/qemu/qemu_debugcon.c @@ -23,7 +23,7 @@ #include <arch/io.h> #include <arch/early_variables.h>
-static int qemu_debugcon_detected CAR_GLOBAL; +int qemu_debugcon_detected CAR_GLOBAL;
void qemu_debugcon_init(void) { diff --git a/src/drivers/pc80/tpm.c b/src/drivers/pc80/tpm.c index f581ab4..1955c2c 100644 --- a/src/drivers/pc80/tpm.c +++ b/src/drivers/pc80/tpm.c @@ -156,7 +156,7 @@ static const struct vendor_name vendor_names[] = { * Cached vendor/device ID pair to indicate that the device has been already * discovered */ -static u32 vendor_dev_id CAR_GLOBAL; +u32 vendor_dev_id CAR_GLOBAL;
static inline u8 tpm_read_status(int locality) { diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c index c60fbaa..e2f8b83 100644 --- a/src/drivers/usb/ehci_debug.c +++ b/src/drivers/usb/ehci_debug.c @@ -95,7 +95,7 @@ static int dbgp_enabled(void); #define DBGP_MICROFRAME_RETRIES 10 #define DBGP_MAX_PACKET 8
-static struct ehci_debug_info glob_dbg_info CAR_GLOBAL; +struct ehci_debug_info glob_dbg_info CAR_GLOBAL;
static inline struct ehci_debug_info *dbgp_ehci_info(void) { diff --git a/src/lib/cbmem_console.c b/src/lib/cbmem_console.c index 83d44e3..e517fd7 100644 --- a/src/lib/cbmem_console.c +++ b/src/lib/cbmem_console.c @@ -34,7 +34,7 @@ struct cbmem_console { u8 buffer_body[0]; } __attribute__ ((__packed__));
-static struct cbmem_console *cbmem_console_p CAR_GLOBAL; +struct cbmem_console *cbmem_console_p CAR_GLOBAL;
#ifdef __PRE_RAM__ /* @@ -43,7 +43,7 @@ static struct cbmem_console *cbmem_console_p CAR_GLOBAL; * the area are defined in the config. */
-static struct cbmem_console car_cbmem_console CAR_CBMEM; +struct cbmem_console car_cbmem_console CAR_CBMEM;
#else
diff --git a/src/lib/timestamp.c b/src/lib/timestamp.c index f0ee48d..477d5fe 100644 --- a/src/lib/timestamp.c +++ b/src/lib/timestamp.c @@ -27,8 +27,8 @@
#define MAX_TIMESTAMPS 30
-static struct timestamp_table* ts_table_p CAR_GLOBAL = NULL; -static tsc_t ts_basetime CAR_GLOBAL = { .lo = 0, .hi =0 }; +struct timestamp_table* ts_table_p CAR_GLOBAL = NULL; +tsc_t ts_basetime CAR_GLOBAL = { .lo = 0, .hi =0 };
static void timestamp_stash(enum timestamp_id id, tsc_t ts_time);
@@ -89,7 +89,7 @@ struct timestamp_cache { tsc_t time; } timestamp_cache[MAX_TIMESTAMP_CACHE] CAR_GLOBAL;
-static int timestamp_entries CAR_GLOBAL = 0; +int timestamp_entries CAR_GLOBAL = 0;
/** * timestamp_stash() allows to temporarily cache timestamps. diff --git a/src/vendorcode/google/chromeos/vbnv.c b/src/vendorcode/google/chromeos/vbnv.c index a13726d..8f04f1e 100644 --- a/src/vendorcode/google/chromeos/vbnv.c +++ b/src/vendorcode/google/chromeos/vbnv.c @@ -52,8 +52,8 @@ #define KERNEL_FIELD_OFFSET 11 #define CRC_OFFSET 15
-static int vbnv_initialized CAR_GLOBAL; -static uint8_t vbnv[CONFIG_VBNV_SIZE] CAR_GLOBAL; +int vbnv_initialized CAR_GLOBAL; +uint8_t vbnv[CONFIG_VBNV_SIZE] CAR_GLOBAL;
/* Wrappers for accessing the variables marked as CAR_GLOBAL. */ static inline int is_vbnv_initialized(void)