mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	treewide: Convert macro and uses of __section(foo) to __section("foo")
This commit does the same thing as Linux commit 33def8498fdd.
Use a more generic form for __section that requires quotes to avoid
complications with clang and gcc differences.
Remove the quote operator # from compiler_attributes.h __section macro.
Convert all unquoted __section(foo) uses to quoted __section("foo").
Also convert __attribute__((section("foo"))) uses to __section("foo")
even if the __attribute__ has multiple list entry forms.
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
			
			
This commit is contained in:
		| @@ -22,7 +22,7 @@ | |||||||
|  * The BSS cannot be used for this purpose because it will be zeroed after |  * The BSS cannot be used for this purpose because it will be zeroed after | ||||||
|  * having stored the pointer, so force the location to the data section. |  * having stored the pointer, so force the location to the data section. | ||||||
|  */ |  */ | ||||||
| u32 bootrom_stash_sp __attribute__((section(".data"))); | u32 bootrom_stash_sp __section(".data"); | ||||||
|  |  | ||||||
| static void ddr_clock_init(void) | static void ddr_clock_init(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ | |||||||
| #include <fsl_immap.h> | #include <fsl_immap.h> | ||||||
| #include "fsl_epu.h" | #include "fsl_epu.h" | ||||||
|  |  | ||||||
| #define __secure __attribute__((section("._secure.text"))) | #define __secure __section("._secure.text") | ||||||
|  |  | ||||||
| #define CCSR_GICD_CTLR			0x1000 | #define CCSR_GICD_CTLR			0x1000 | ||||||
| #define CCSR_GICC_CTLR			0x2000 | #define CCSR_GICC_CTLR			0x2000 | ||||||
|   | |||||||
| @@ -6,8 +6,8 @@ | |||||||
| #include <common.h> | #include <common.h> | ||||||
| #include <spl.h> | #include <spl.h> | ||||||
|  |  | ||||||
| char __data_save_start[0] __section(.__data_save_start); | char __data_save_start[0] __section(".__data_save_start"); | ||||||
| char __data_save_end[0] __section(.__data_save_end); | char __data_save_end[0] __section(".__data_save_end"); | ||||||
|  |  | ||||||
| u32 cold_reboot_flag = 1; | u32 cold_reboot_flag = 1; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ | |||||||
| #include <config.h> | #include <config.h> | ||||||
| #include <asm/global_data.h> | #include <asm/global_data.h> | ||||||
|  |  | ||||||
| #define __secure __attribute__ ((section ("._secure.text"))) | #define __secure __section("._secure.text") | ||||||
| #define __secure_data __attribute__ ((section ("._secure.data"))) | #define __secure_data __section("._secure.data") | ||||||
|  |  | ||||||
| #ifndef __ASSEMBLY__ | #ifndef __ASSEMBLY__ | ||||||
|  |  | ||||||
| @@ -22,7 +22,7 @@ typedef struct secure_svc_tbl { | |||||||
|  */ |  */ | ||||||
| #define DECLARE_SECURE_SVC(_name, _id, _fn) \ | #define DECLARE_SECURE_SVC(_name, _id, _fn) \ | ||||||
| 	static const secure_svc_tbl_t __secure_svc_ ## _name \ | 	static const secure_svc_tbl_t __secure_svc_ ## _name \ | ||||||
| 		__attribute__((used, section("._secure_svc_tbl_entries"))) \ | 		__used __section("._secure_svc_tbl_entries") \ | ||||||
| 			 = { \ | 			 = { \ | ||||||
| 				.id = _id, \ | 				.id = _id, \ | ||||||
| 				.func = _fn } | 				.func = _fn } | ||||||
|   | |||||||
| @@ -235,7 +235,7 @@ struct tagtable { | |||||||
| 	int (*parse)(const struct tag *); | 	int (*parse)(const struct tag *); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| #define __tag __attribute__((unused, __section__(".taglist"))) | #define __tag __attribute__((unused)) __section(".taglist") | ||||||
| #define __tagtable(tag, fn) \ | #define __tagtable(tag, fn) \ | ||||||
| static struct tagtable __tagtable_##fn __tag = { tag, fn } | static struct tagtable __tagtable_##fn __tag = { tag, fn } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| /* | /* | ||||||
|  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> |  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> | ||||||
|  */ |  */ | ||||||
|  | #include <linux/compiler.h> | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * These two symbols are declared in a C file so that the linker |  * These two symbols are declared in a C file so that the linker | ||||||
| @@ -18,18 +19,18 @@ | |||||||
|  * aliasing warnings. |  * aliasing warnings. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| char __bss_start[0] __attribute__((section(".__bss_start"))); | char __bss_start[0] __section(".__bss_start"); | ||||||
| char __bss_end[0] __attribute__((section(".__bss_end"))); | char __bss_end[0] __section(".__bss_end"); | ||||||
| char __image_copy_start[0] __attribute__((section(".__image_copy_start"))); | char __image_copy_start[0] __section(".__image_copy_start"); | ||||||
| char __image_copy_end[0] __attribute__((section(".__image_copy_end"))); | char __image_copy_end[0] __section(".__image_copy_end"); | ||||||
| char __rel_dyn_start[0] __attribute__((section(".__rel_dyn_start"))); | char __rel_dyn_start[0] __section(".__rel_dyn_start"); | ||||||
| char __rel_dyn_end[0] __attribute__((section(".__rel_dyn_end"))); | char __rel_dyn_end[0] __section(".__rel_dyn_end"); | ||||||
| char __secure_start[0] __attribute__((section(".__secure_start"))); | char __secure_start[0] __section(".__secure_start"); | ||||||
| char __secure_end[0] __attribute__((section(".__secure_end"))); | char __secure_end[0] __section(".__secure_end"); | ||||||
| char __secure_stack_start[0] __attribute__((section(".__secure_stack_start"))); | char __secure_stack_start[0] __section(".__secure_stack_start"); | ||||||
| char __secure_stack_end[0] __attribute__((section(".__secure_stack_end"))); | char __secure_stack_end[0] __section(".__secure_stack_end"); | ||||||
| char __efi_runtime_start[0] __attribute__((section(".__efi_runtime_start"))); | char __efi_runtime_start[0] __section(".__efi_runtime_start"); | ||||||
| char __efi_runtime_stop[0] __attribute__((section(".__efi_runtime_stop"))); | char __efi_runtime_stop[0] __section(".__efi_runtime_stop"); | ||||||
| char __efi_runtime_rel_start[0] __attribute__((section(".__efi_runtime_rel_start"))); | char __efi_runtime_rel_start[0] __section(".__efi_runtime_rel_start"); | ||||||
| char __efi_runtime_rel_stop[0] __attribute__((section(".__efi_runtime_rel_stop"))); | char __efi_runtime_rel_stop[0] __section(".__efi_runtime_rel_stop"); | ||||||
| char _end[0] __attribute__((section(".__end"))); | char _end[0] __section(".__end"); | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ DECLARE_GLOBAL_DATA_PTR; | |||||||
|  * WARNING: This is going away very soon. Don't use it and don't submit |  * WARNING: This is going away very soon. Don't use it and don't submit | ||||||
|  * pafches that rely on it. The global_data area is set up in crt0.S. |  * pafches that rely on it. The global_data area is set up in crt0.S. | ||||||
|  */ |  */ | ||||||
| gd_t gdata __attribute__ ((section(".data"))); | gd_t gdata __section(".data"); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ void at91_disable_wdt(void) | |||||||
| #include <asm/arch/sama5_boot.h> | #include <asm/arch/sama5_boot.h> | ||||||
| struct { | struct { | ||||||
| 	u32	r4; | 	u32	r4; | ||||||
| } bootrom_stash __attribute__((section(".data"))); | } bootrom_stash __section(".data"); | ||||||
|  |  | ||||||
| u32 spl_boot_device(void) | u32 spl_boot_device(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -44,7 +44,7 @@ static void ctrl_mmr_unlock(void) | |||||||
|  * it to the .data section. |  * it to the .data section. | ||||||
|  */ |  */ | ||||||
| u32 bootindex __section(".data"); | u32 bootindex __section(".data"); | ||||||
| static struct rom_extended_boot_data bootdata __section(.data); | static struct rom_extended_boot_data bootdata __section(".data"); | ||||||
|  |  | ||||||
| static void store_boot_info_from_rom(void) | static void store_boot_info_from_rom(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -77,7 +77,7 @@ static void ctrl_mmr_unlock(void) | |||||||
|  * but the .bss is cleared between writing and reading this variable, so move |  * but the .bss is cleared between writing and reading this variable, so move | ||||||
|  * it to the .data section. |  * it to the .data section. | ||||||
|  */ |  */ | ||||||
| u32 bootindex __attribute__((section(".data"))); | u32 bootindex __section(".data"); | ||||||
|  |  | ||||||
| static void store_boot_index_from_rom(void) | static void store_boot_index_from_rom(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -125,8 +125,8 @@ void k3_mmc_restart_clock(void) | |||||||
|  * but the .bss is cleared between writing and reading this variable, so move |  * but the .bss is cleared between writing and reading this variable, so move | ||||||
|  * it to the .data section. |  * it to the .data section. | ||||||
|  */ |  */ | ||||||
| u32 bootindex __attribute__((section(".data"))); | u32 bootindex __section(".data"); | ||||||
| static struct rom_extended_boot_data bootdata __section(.data); | static struct rom_extended_boot_data bootdata __section(".data"); | ||||||
|  |  | ||||||
| static void store_boot_info_from_rom(void) | static void store_boot_info_from_rom(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -98,9 +98,9 @@ struct mvebu_mbus_soc_data { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| struct mvebu_mbus_state mbus_state | struct mvebu_mbus_state mbus_state | ||||||
| 	__attribute__ ((section(".data"))); | 	__section(".data"); | ||||||
| static struct mbus_dram_target_info mbus_dram_info | static struct mbus_dram_target_info mbus_dram_info | ||||||
| 	__attribute__ ((section(".data"))); | 	__section(".data"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Functions to manipulate the address decoding windows |  * Functions to manipulate the address decoding windows | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| #define TIMER_LOAD_VAL			0xffffffff | #define TIMER_LOAD_VAL			0xffffffff | ||||||
|  |  | ||||||
| static int init_done __attribute__((section(".data"))) = 0; | static int init_done __section(".data") = 0; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Timer initialization |  * Timer initialization | ||||||
|   | |||||||
| @@ -99,7 +99,7 @@ static const char * const clk_core[] = { | |||||||
|  * in board_init_f(), respectively! I.e. global variables can not be used! |  * in board_init_f(), respectively! I.e. global variables can not be used! | ||||||
|  */ |  */ | ||||||
| static struct clk_dev_peri clk_periphs[] | static struct clk_dev_peri clk_periphs[] | ||||||
| 	__attribute__((section(".data"))) = { | 	__section(".data") = { | ||||||
| 	CLK_PERI_1S(DEV_NAME_TIMER,	0,	CLK_ID_TIMER_0, | 	CLK_PERI_1S(DEV_NAME_TIMER,	0,	CLK_ID_TIMER_0, | ||||||
| 		    PHY_BASEADDR_CLKGEN14, (I_PLL_0_2)), | 		    PHY_BASEADDR_CLKGEN14, (I_PLL_0_2)), | ||||||
| 	CLK_PERI_1S(DEV_NAME_TIMER,	1,	CLK_ID_TIMER_1, | 	CLK_PERI_1S(DEV_NAME_TIMER,	1,	CLK_ID_TIMER_1, | ||||||
| @@ -167,7 +167,7 @@ static struct clk_dev_peri clk_periphs[] | |||||||
| #define	MAX_DIVIDER		((1 << 8) - 1)	/* 256, align 2 */ | #define	MAX_DIVIDER		((1 << 8) - 1)	/* 256, align 2 */ | ||||||
|  |  | ||||||
| static struct clk_dev		st_clk_devs[CLK_DEVS_NUM] | static struct clk_dev		st_clk_devs[CLK_DEVS_NUM] | ||||||
| 				__attribute__((section(".data"))); | 				__section(".data"); | ||||||
| #define	clk_dev_get(n)		((struct clk_dev *)&st_clk_devs[n]) | #define	clk_dev_get(n)		((struct clk_dev *)&st_clk_devs[n]) | ||||||
| #define	clk_container(p)	(container_of(p, struct clk_dev, clk)) | #define	clk_container(p)	(container_of(p, struct clk_dev, clk)) | ||||||
|  |  | ||||||
| @@ -196,7 +196,7 @@ struct _core_hz_ { | |||||||
|  * in board_init_f(), respectively! I.e. global variables can not be used! |  * in board_init_f(), respectively! I.e. global variables can not be used! | ||||||
|  */ |  */ | ||||||
| /* core clock */ | /* core clock */ | ||||||
| static struct _core_hz_ core_hz __attribute__((section(".data"))); | static struct _core_hz_ core_hz __section(".data"); | ||||||
|  |  | ||||||
| #define	CORE_HZ_SIZE	(sizeof(core_hz) / 4) | #define	CORE_HZ_SIZE	(sizeof(core_hz) / 4) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -23,9 +23,9 @@ | |||||||
|  * Section ".data" must be used because BSS is not available before relocation, |  * Section ".data" must be used because BSS is not available before relocation, | ||||||
|  * in board_init_f(), respectively! I.e. global variables can not be used! |  * in board_init_f(), respectively! I.e. global variables can not be used! | ||||||
|  */ |  */ | ||||||
| static unsigned long timestamp __attribute__ ((section(".data"))); | static unsigned long timestamp __section(".data"); | ||||||
| static unsigned long lastdec __attribute__ ((section(".data"))); | static unsigned long lastdec __section(".data"); | ||||||
| static int	timerinit __attribute__ ((section(".data"))); | static int	timerinit __section(".data"); | ||||||
|  |  | ||||||
| /* macro to hw timer tick config */ | /* macro to hw timer tick config */ | ||||||
| static long	TIMER_FREQ  = 1000000; | static long	TIMER_FREQ  = 1000000; | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ DECLARE_GLOBAL_DATA_PTR; | |||||||
| 					 SOCFPGA_PHYS_OCRAM_SIZE - \ | 					 SOCFPGA_PHYS_OCRAM_SIZE - \ | ||||||
| 					 BOOTROM_SHARED_MEM_SIZE) | 					 BOOTROM_SHARED_MEM_SIZE) | ||||||
| #define RST_STATUS_SHARED_ADDR		(BOOTROM_SHARED_MEM_ADDR + 0x438) | #define RST_STATUS_SHARED_ADDR		(BOOTROM_SHARED_MEM_ADDR + 0x438) | ||||||
| static u32 rst_mgr_status __section(.data); | static u32 rst_mgr_status __section(".data"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Bootrom will clear the status register in reset manager and stores the |  * Bootrom will clear the status register in reset manager and stores the | ||||||
|   | |||||||
| @@ -39,7 +39,7 @@ struct fel_stash { | |||||||
| 	uint32_t cr; | 	uint32_t cr; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| struct fel_stash fel_stash __attribute__((section(".data"))); | struct fel_stash fel_stash __section(".data"); | ||||||
|  |  | ||||||
| #ifdef CONFIG_ARM64 | #ifdef CONFIG_ARM64 | ||||||
| #include <asm/armv8/mmu.h> | #include <asm/armv8/mmu.h> | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ enum { | |||||||
| 	UART_COUNT = 5, | 	UART_COUNT = 5, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| static bool from_spl __attribute__ ((section(".data"))); | static bool from_spl __section(".data"); | ||||||
|  |  | ||||||
| #ifndef CONFIG_SPL_BUILD | #ifndef CONFIG_SPL_BUILD | ||||||
| void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2, | void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2, | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ extern struct mm_region tegra_mem_map[]; | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| /* The number of valid entries in ram_banks[] */ | /* The number of valid entries in ram_banks[] */ | ||||||
| static int ram_bank_count __attribute__((section(".data"))); | static int ram_bank_count __section(".data"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * The usable top-of-RAM for U-Boot. This is both: |  * The usable top-of-RAM for U-Boot. This is both: | ||||||
| @@ -57,15 +57,15 @@ static int ram_bank_count __attribute__((section(".data"))); | |||||||
|  * b) At the end of a region that has enough space to hold the relocated U-Boot |  * b) At the end of a region that has enough space to hold the relocated U-Boot | ||||||
|  *    and all other allocations made around it (stack, heap, page tables, etc.) |  *    and all other allocations made around it (stack, heap, page tables, etc.) | ||||||
|  */ |  */ | ||||||
| static u64 ram_top __attribute__((section(".data"))); | static u64 ram_top __section(".data"); | ||||||
| /* The base address of the region of RAM that ends at ram_top */ | /* The base address of the region of RAM that ends at ram_top */ | ||||||
| static u64 region_base __attribute__((section(".data"))); | static u64 region_base __section(".data"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Explicitly put this in the .data section because it is written before the |  * Explicitly put this in the .data section because it is written before the | ||||||
|  * .bss section is zeroed out but it needs to persist. |  * .bss section is zeroed out but it needs to persist. | ||||||
|  */ |  */ | ||||||
| unsigned long cboot_boot_x0 __attribute__((section(".data"))); | unsigned long cboot_boot_x0 __section(".data"); | ||||||
|  |  | ||||||
| void cboot_save_boot_params(unsigned long x0, unsigned long x1, | void cboot_save_boot_params(unsigned long x0, unsigned long x1, | ||||||
| 			    unsigned long x2, unsigned long x3) | 			    unsigned long x2, unsigned long x3) | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ | |||||||
| #ifdef CONFIG_SPL_BUILD | #ifdef CONFIG_SPL_BUILD | ||||||
| /* Pointer to the global data structure for SPL */ | /* Pointer to the global data structure for SPL */ | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
| gd_t gdata __attribute__ ((section(".bss"))); | gd_t gdata __section(".bss"); | ||||||
|  |  | ||||||
| void board_init_f(ulong dummy) | void board_init_f(ulong dummy) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -155,7 +155,7 @@ struct tagtable { | |||||||
|  |  | ||||||
| #ifdef __KERNEL__ | #ifdef __KERNEL__ | ||||||
|  |  | ||||||
| #define __tag __used __attribute__((__section__(".taglist"))) | #define __tag __used __section(".taglist") | ||||||
| #define __tagtable(tag, fn) \ | #define __tagtable(tag, fn) \ | ||||||
| static struct tagtable __tagtable_##fn __tag = { tag, fn } | static struct tagtable __tagtable_##fn __tag = { tag, fn } | ||||||
|  |  | ||||||
| @@ -182,8 +182,8 @@ struct early_params { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| #define __early_param(name, fn)					\ | #define __early_param(name, fn)					\ | ||||||
| static struct early_params __early_##fn __used	\ | static struct early_params __early_##fn __used			\ | ||||||
| __attribute__((__section__("__early_param"))) = { name, fn } | __section("__early_param") = { name, fn } | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -41,8 +41,8 @@ | |||||||
| #define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES))) | #define __cacheline_aligned __attribute__((__aligned__(L1_CACHE_BYTES))) | ||||||
| #else | #else | ||||||
| #define __cacheline_aligned					\ | #define __cacheline_aligned					\ | ||||||
|   __attribute__((__aligned__(L1_CACHE_BYTES),			\ |   __attribute__((__aligned__(L1_CACHE_BYTES)))			\ | ||||||
| 		 __section__(".data.cacheline_aligned"))) |   __section(".data.cacheline_aligned") | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | #if defined(__KERNEL__) && !defined(__ASSEMBLY__) | ||||||
|   | |||||||
| @@ -17,10 +17,10 @@ | |||||||
|  * before the bss section is available. |  * before the bss section is available. | ||||||
|  */ |  */ | ||||||
| #ifdef CONFIG_OF_PRIOR_STAGE | #ifdef CONFIG_OF_PRIOR_STAGE | ||||||
| phys_addr_t prior_stage_fdt_address __attribute__((section(".data"))); | phys_addr_t prior_stage_fdt_address __section(".data"); | ||||||
| #endif | #endif | ||||||
| #ifndef CONFIG_XIP | #ifndef CONFIG_XIP | ||||||
| u32 hart_lottery __attribute__((section(".data"))) = 0; | u32 hart_lottery __section(".data") = 0; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * The main hart running U-Boot has acquired available_harts_lock until it has |  * The main hart running U-Boot has acquired available_harts_lock until it has | ||||||
|   | |||||||
| @@ -44,7 +44,7 @@ struct sandbox_cmdline_option { | |||||||
| 		.callback = sandbox_cmdline_cb_##f, \ | 		.callback = sandbox_cmdline_cb_##f, \ | ||||||
| 	}; \ | 	}; \ | ||||||
| 	/* Ppointer to the struct in a special section for the linker script */ \ | 	/* Ppointer to the struct in a special section for the linker script */ \ | ||||||
| 	static __attribute__((section(".u_boot_sandbox_getopt"), used)) \ | 	static __used __section(".u_boot_sandbox_getopt") \ | ||||||
| 		struct sandbox_cmdline_option \ | 		struct sandbox_cmdline_option \ | ||||||
| 			*sandbox_cmdline_option_##f##_ptr = \ | 			*sandbox_cmdline_option_##f##_ptr = \ | ||||||
| 			&sandbox_cmdline_option_##f | 			&sandbox_cmdline_option_##f | ||||||
|   | |||||||
| @@ -3,10 +3,11 @@ | |||||||
|  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> |  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
|  | #include <linux/compiler.h> | ||||||
|  |  | ||||||
| char __efi_runtime_start[0] __attribute__((section(".__efi_runtime_start"))); | char __efi_runtime_start[0] __section(".__efi_runtime_start"); | ||||||
| char __efi_runtime_stop[0] __attribute__((section(".__efi_runtime_stop"))); | char __efi_runtime_stop[0] __section(".__efi_runtime_stop"); | ||||||
| char __efi_runtime_rel_start[0] | char __efi_runtime_rel_start[0] | ||||||
| 		__attribute__((section(".__efi_runtime_rel_start"))); | 		__section(".__efi_runtime_rel_start"); | ||||||
| char __efi_runtime_rel_stop[0] | char __efi_runtime_rel_stop[0] | ||||||
| 		__attribute__((section(".__efi_runtime_rel_stop"))); | 		__section(".__efi_runtime_rel_stop"); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
| #include <asm/cb_sysinfo.h> | #include <asm/cb_sysinfo.h> | ||||||
| #include <linux/compiler.h> | #include <linux/compiler.h> | ||||||
|  |  | ||||||
| static struct timestamp_table *ts_table  __attribute__((section(".data"))); | static struct timestamp_table *ts_table  __section(".data"); | ||||||
|  |  | ||||||
| void timestamp_init(void) | void timestamp_init(void) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ DECLARE_GLOBAL_DATA_PTR; | |||||||
|  * with zeroes when transitioning from "ROM", which is really RAM, to other |  * with zeroes when transitioning from "ROM", which is really RAM, to other | ||||||
|  * RAM. |  * RAM. | ||||||
|  */ |  */ | ||||||
| struct sysinfo_t lib_sysinfo __attribute__((section(".data"))); | struct sysinfo_t lib_sysinfo __section(".data"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Some of this is x86 specific, and the rest of it is generic. Right now, |  * Some of this is x86 specific, and the rest of it is generic. Right now, | ||||||
|   | |||||||
| @@ -2,10 +2,11 @@ | |||||||
| /* | /* | ||||||
|  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> |  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> | ||||||
|  */ |  */ | ||||||
|  | #include <linux/compiler.h> | ||||||
|  |  | ||||||
| char __efi_runtime_start[0] __attribute__((section(".__efi_runtime_start"))); | char __efi_runtime_start[0] __section(".__efi_runtime_start"); | ||||||
| char __efi_runtime_stop[0] __attribute__((section(".__efi_runtime_stop"))); | char __efi_runtime_stop[0] __section(".__efi_runtime_stop"); | ||||||
| char __efi_runtime_rel_start[0] | char __efi_runtime_rel_start[0] | ||||||
| 		__attribute__((section(".__efi_runtime_rel_start"))); | 		__section(".__efi_runtime_rel_start"); | ||||||
| char __efi_runtime_rel_stop[0] | char __efi_runtime_rel_stop[0] | ||||||
| 		__attribute__((section(".__efi_runtime_rel_stop"))); | 		__section(".__efi_runtime_rel_stop"); | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ | |||||||
|  |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
|  |  | ||||||
| gd_t *gd __attribute__((section(".data"))); | gd_t *gd __section(".data"); | ||||||
|  |  | ||||||
| #if defined(CONFIG_DISPLAY_CPUINFO) | #if defined(CONFIG_DISPLAY_CPUINFO) | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ | |||||||
|  |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
|  |  | ||||||
| static struct shc_eeprom __attribute__((section(".data"))) header; | static struct shc_eeprom __section(".data") header; | ||||||
| static int shc_eeprom_valid; | static int shc_eeprom_valid; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
|  |  | ||||||
| #define BCMSTB_DATA_SECTION __attribute__((section(".data"))) | #define BCMSTB_DATA_SECTION __section(".data") | ||||||
|  |  | ||||||
| struct bcmstb_boot_parameters bcmstb_boot_parameters BCMSTB_DATA_SECTION; | struct bcmstb_boot_parameters bcmstb_boot_parameters BCMSTB_DATA_SECTION; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|  |  | ||||||
| /* Parameters of early board initialization in SPL */ | /* Parameters of early board initialization in SPL */ | ||||||
| static struct spl_machine_param machine_param | static struct spl_machine_param machine_param | ||||||
| 		__attribute__((section(".machine_param"))) = { | 		__section(".machine_param") = { | ||||||
| 	.signature	= SIGNATURE, | 	.signature	= SIGNATURE, | ||||||
| 	.version	= 1, | 	.version	= 1, | ||||||
| 	.params		= "vmubfasirM", | 	.params		= "vmubfasirM", | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|  |  | ||||||
| /* Parameters of early board initialization in SPL */ | /* Parameters of early board initialization in SPL */ | ||||||
| static struct spl_machine_param machine_param | static struct spl_machine_param machine_param | ||||||
| 		__attribute__((section(".machine_param"))) = { | 		__section(".machine_param") = { | ||||||
| 	.signature	= SIGNATURE, | 	.signature	= SIGNATURE, | ||||||
| 	.version	= 1, | 	.version	= 1, | ||||||
| 	.params		= "vmubfasirM", | 	.params		= "vmubfasirM", | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ | |||||||
|  |  | ||||||
| /* Parameters of early board initialization in SPL */ | /* Parameters of early board initialization in SPL */ | ||||||
| static struct spl_machine_param machine_param | static struct spl_machine_param machine_param | ||||||
| 		__attribute__((section(".machine_param"))) = { | 		__section(".machine_param") = { | ||||||
| 	.signature	= SIGNATURE, | 	.signature	= SIGNATURE, | ||||||
| 	.version	= 1, | 	.version	= 1, | ||||||
| 	.params		= "vmubfasirM", | 	.params		= "vmubfasirM", | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ | |||||||
| #include <nand.h> | #include <nand.h> | ||||||
|  |  | ||||||
| #ifdef CONFIG_SPL_BUILD | #ifdef CONFIG_SPL_BUILD | ||||||
| static struct draco_baseboard_id __attribute__((section(".data"))) settings; | static struct draco_baseboard_id __section(".data") settings; | ||||||
|  |  | ||||||
| #if DDR_PLL_FREQ == 303 | #if DDR_PLL_FREQ == 303 | ||||||
| #if !defined(CONFIG_TARGET_ETAMIN) | #if !defined(CONFIG_TARGET_ETAMIN) | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| #include "fru.h" | #include "fru.h" | ||||||
|  |  | ||||||
| struct fru_table fru_data __section(.data); | struct fru_table fru_data __section(".data"); | ||||||
|  |  | ||||||
| static u16 fru_cal_area_len(u8 len) | static u16 fru_cal_area_len(u8 len) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ | |||||||
| #include "biosemui.h" | #include "biosemui.h" | ||||||
|  |  | ||||||
| BE_sysEnv _BE_env = {{0}}; | BE_sysEnv _BE_env = {{0}}; | ||||||
| static X86EMU_memFuncs _BE_mem __attribute__((section(GOT2_TYPE))) = { | static X86EMU_memFuncs _BE_mem __section(GOT2_TYPE) = { | ||||||
| 	BE_rdb, | 	BE_rdb, | ||||||
| 	BE_rdw, | 	BE_rdw, | ||||||
| 	BE_rdl, | 	BE_rdl, | ||||||
| @@ -59,7 +59,7 @@ static X86EMU_memFuncs _BE_mem __attribute__((section(GOT2_TYPE))) = { | |||||||
| 	BE_wrl, | 	BE_wrl, | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| static X86EMU_pioFuncs _BE_pio __attribute__((section(GOT2_TYPE))) = { | static X86EMU_pioFuncs _BE_pio __section(GOT2_TYPE) = { | ||||||
| 	BE_inb, | 	BE_inb, | ||||||
| 	BE_inw, | 	BE_inw, | ||||||
| 	BE_inl, | 	BE_inl, | ||||||
|   | |||||||
| @@ -347,7 +347,7 @@ static const struct k210_comp_params k210_comps[] = { | |||||||
| #undef COMP_NOMUX_ID | #undef COMP_NOMUX_ID | ||||||
| #undef COMP_LIST | #undef COMP_LIST | ||||||
|  |  | ||||||
| static struct clk *k210_bypass_children __section(.data); | static struct clk *k210_bypass_children __section(".data"); | ||||||
|  |  | ||||||
| /* Helper functions to create sub-clocks */ | /* Helper functions to create sub-clocks */ | ||||||
| static struct clk_mux *k210_create_mux(const struct k210_mux_params *params, | static struct clk_mux *k210_create_mux(const struct k210_mux_params *params, | ||||||
| @@ -473,7 +473,7 @@ cleanup_mux: | |||||||
| 	return comp; | 	return comp; | ||||||
| } | } | ||||||
|  |  | ||||||
| static bool __section(.data) probed; | static bool __section(".data") probed; | ||||||
|  |  | ||||||
| /* reset probed so we will probe again post-relocation */ | /* reset probed so we will probe again post-relocation */ | ||||||
| static int k210_clk_bind(struct udevice *dev) | static int k210_clk_bind(struct udevice *dev) | ||||||
|   | |||||||
| @@ -42,7 +42,7 @@ | |||||||
| #if CONFIG_IS_ENABLED(EFI_LOADER) | #if CONFIG_IS_ENABLED(EFI_LOADER) | ||||||
| int __efi_runtime_data psci_method; | int __efi_runtime_data psci_method; | ||||||
| #else | #else | ||||||
| int psci_method __attribute__ ((section(".data"))); | int psci_method __section(".data"); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| unsigned long __efi_runtime invoke_psci_fn | unsigned long __efi_runtime invoke_psci_fn | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ | |||||||
|  |  | ||||||
| #include "pinctrl-imx.h" | #include "pinctrl-imx.h" | ||||||
|  |  | ||||||
| static struct imx_pinctrl_soc_info imx5_pinctrl_soc_info __attribute__((section(".data"))); | static struct imx_pinctrl_soc_info imx5_pinctrl_soc_info __section(".data"); | ||||||
|  |  | ||||||
| static int imx5_pinctrl_probe(struct udevice *dev) | static int imx5_pinctrl_probe(struct udevice *dev) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|  |  | ||||||
| #include "pinctrl-imx.h" | #include "pinctrl-imx.h" | ||||||
|  |  | ||||||
| static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __attribute__((section(".data"))); | static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __section(".data"); | ||||||
|  |  | ||||||
| static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = { | static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = { | ||||||
| 	.flags = ZERO_OFFSET_VALID, | 	.flags = ZERO_OFFSET_VALID, | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|  |  | ||||||
| #include "pinctrl-imx.h" | #include "pinctrl-imx.h" | ||||||
|  |  | ||||||
| static struct imx_pinctrl_soc_info imx8mq_pinctrl_soc_info __attribute__((section(".data"))); | static struct imx_pinctrl_soc_info imx8mq_pinctrl_soc_info __section(".data"); | ||||||
|  |  | ||||||
| static int imx8mq_pinctrl_probe(struct udevice *dev) | static int imx8mq_pinctrl_probe(struct udevice *dev) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
| #include <power/tps62362.h> | #include <power/tps62362.h> | ||||||
|  |  | ||||||
| #if CONFIG_IS_ENABLED(DM_I2C) | #if CONFIG_IS_ENABLED(DM_I2C) | ||||||
| struct udevice *tps62362_dev __attribute__((section(".data"))) = NULL; | struct udevice *tps62362_dev __section(".data") = NULL; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
| #include <i2c.h> | #include <i2c.h> | ||||||
| #include <power/tps65217.h> | #include <power/tps65217.h> | ||||||
|  |  | ||||||
| struct udevice *tps65217_dev __attribute__((section(".data"))) = NULL; | struct udevice *tps65217_dev __section(".data") = NULL; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * tps65217_reg_read() - Generic function that can read a TPS65217 register |  * tps65217_reg_read() - Generic function that can read a TPS65217 register | ||||||
|   | |||||||
| @@ -86,7 +86,7 @@ int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val, | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| #else | #else | ||||||
| struct udevice *tps65218_dev __attribute__((section(".data"))) = NULL; | struct udevice *tps65218_dev __section(".data") = NULL; | ||||||
|  |  | ||||||
| int tps65218_reg_read(uchar dest_reg, uchar *dest_val) | int tps65218_reg_read(uchar dest_reg, uchar *dest_val) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
| #include <i2c.h> | #include <i2c.h> | ||||||
| #include <power/tps65910.h> | #include <power/tps65910.h> | ||||||
|  |  | ||||||
| struct udevice *tps65910_dev __attribute__((section(".data"))) = NULL; | struct udevice *tps65910_dev __section(".data") = NULL; | ||||||
|  |  | ||||||
| static inline int tps65910_read_reg(int addr, uchar *buf) | static inline int tps65910_read_reg(int addr, uchar *buf) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -30,8 +30,8 @@ DECLARE_GLOBAL_DATA_PTR; | |||||||
| #ifndef CONFIG_DM_SERIAL | #ifndef CONFIG_DM_SERIAL | ||||||
|  |  | ||||||
| static volatile unsigned char *const port[] = CONFIG_PL01x_PORTS; | static volatile unsigned char *const port[] = CONFIG_PL01x_PORTS; | ||||||
| static enum pl01x_type pl01x_type __attribute__ ((section(".data"))); | static enum pl01x_type pl01x_type __section(".data"); | ||||||
| static struct pl01x_regs *base_regs __attribute__ ((section(".data"))); | static struct pl01x_regs *base_regs __section(".data"); | ||||||
| #define NUM_PORTS (sizeof(port)/sizeof(port[0])) | #define NUM_PORTS (sizeof(port)/sizeof(port[0])) | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -682,8 +682,8 @@ ssize_t efi_dp_check_length(const struct efi_device_path *dp, | |||||||
|  * Use these to indicate that your code / data should go into the EFI runtime |  * Use these to indicate that your code / data should go into the EFI runtime | ||||||
|  * section and thus still be available when the OS is running |  * section and thus still be available when the OS is running | ||||||
|  */ |  */ | ||||||
| #define __efi_runtime_data __attribute__ ((section (".data.efi_runtime"))) | #define __efi_runtime_data __section(".data.efi_runtime") | ||||||
| #define __efi_runtime __attribute__ ((section (".text.efi_runtime"))) | #define __efi_runtime __section(".text.efi_runtime") | ||||||
|  |  | ||||||
| /* Indicate supported runtime services */ | /* Indicate supported runtime services */ | ||||||
| efi_status_t efi_init_runtime_supported(void); | efi_status_t efi_init_runtime_supported(void); | ||||||
|   | |||||||
| @@ -69,8 +69,8 @@ | |||||||
|  */ |  */ | ||||||
| #define ll_entry_declare(_type, _name, _list)				\ | #define ll_entry_declare(_type, _name, _list)				\ | ||||||
| 	_type _u_boot_list_2_##_list##_2_##_name __aligned(4)		\ | 	_type _u_boot_list_2_##_list##_2_##_name __aligned(4)		\ | ||||||
| 			__attribute__((unused,				\ | 			__attribute__((unused))				\ | ||||||
| 			section(".u_boot_list_2_"#_list"_2_"#_name))) | 			__section(".u_boot_list_2_"#_list"_2_"#_name) | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ll_entry_declare_list() - Declare a list of link-generated array entries |  * ll_entry_declare_list() - Declare a list of link-generated array entries | ||||||
| @@ -92,8 +92,8 @@ | |||||||
|  */ |  */ | ||||||
| #define ll_entry_declare_list(_type, _name, _list)			\ | #define ll_entry_declare_list(_type, _name, _list)			\ | ||||||
| 	_type _u_boot_list_2_##_list##_2_##_name[] __aligned(4)		\ | 	_type _u_boot_list_2_##_list##_2_##_name[] __aligned(4)		\ | ||||||
| 			__attribute__((unused,				\ | 			__attribute__((unused))				\ | ||||||
| 			section(".u_boot_list_2_"#_list"_2_"#_name))) | 			__section(".u_boot_list_2_"#_list"_2_"#_name) | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * We need a 0-byte-size type for iterator symbols, and the compiler |  * We need a 0-byte-size type for iterator symbols, and the compiler | ||||||
| @@ -125,8 +125,8 @@ | |||||||
| #define ll_entry_start(_type, _list)					\ | #define ll_entry_start(_type, _list)					\ | ||||||
| ({									\ | ({									\ | ||||||
| 	static char start[0] __aligned(CONFIG_LINKER_LIST_ALIGN)	\ | 	static char start[0] __aligned(CONFIG_LINKER_LIST_ALIGN)	\ | ||||||
| 		__attribute__((unused,					\ | 		__attribute__((unused))					\ | ||||||
| 		section(".u_boot_list_2_"#_list"_1")));			\ | 		__section(".u_boot_list_2_"#_list"_1");			\ | ||||||
| 	(_type *)&start;						\ | 	(_type *)&start;						\ | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -151,8 +151,8 @@ | |||||||
|  */ |  */ | ||||||
| #define ll_entry_end(_type, _list)					\ | #define ll_entry_end(_type, _list)					\ | ||||||
| ({									\ | ({									\ | ||||||
| 	static char end[0] __aligned(4) __attribute__((unused,		\ | 	static char end[0] __aligned(4) __attribute__((unused))		\ | ||||||
| 		section(".u_boot_list_2_"#_list"_3")));			\ | 		__section(".u_boot_list_2_"#_list"_3");			\ | ||||||
| 	(_type *)&end;							\ | 	(_type *)&end;							\ | ||||||
| }) | }) | ||||||
| /** | /** | ||||||
| @@ -245,8 +245,8 @@ | |||||||
|  */ |  */ | ||||||
| #define ll_start(_type)							\ | #define ll_start(_type)							\ | ||||||
| ({									\ | ({									\ | ||||||
| 	static char start[0] __aligned(4) __attribute__((unused,	\ | 	static char start[0] __aligned(4) __attribute__((unused))	\ | ||||||
| 		section(".u_boot_list_1")));				\ | 		__section(".u_boot_list_1");				\ | ||||||
| 	(_type *)&start;						\ | 	(_type *)&start;						\ | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -268,8 +268,8 @@ | |||||||
|  */ |  */ | ||||||
| #define ll_end(_type)							\ | #define ll_end(_type)							\ | ||||||
| ({									\ | ({									\ | ||||||
| 	static char end[0] __aligned(4) __attribute__((unused,		\ | 	static char end[0] __aligned(4) __attribute__((unused))		\ | ||||||
| 		section(".u_boot_list_3")));				\ | 		__section(".u_boot_list_3");				\ | ||||||
| 	(_type *)&end;							\ | 	(_type *)&end;							\ | ||||||
| }) | }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, | |||||||
| 			long ______r;					\ | 			long ______r;					\ | ||||||
| 			static struct ftrace_likely_data		\ | 			static struct ftrace_likely_data		\ | ||||||
| 				__aligned(4)				\ | 				__aligned(4)				\ | ||||||
| 				__section(_ftrace_annotated_branch)	\ | 				__section("_ftrace_annotated_branch")	\ | ||||||
| 				______f = {				\ | 				______f = {				\ | ||||||
| 				.data.func = __func__,			\ | 				.data.func = __func__,			\ | ||||||
| 				.data.file = __FILE__,			\ | 				.data.file = __FILE__,			\ | ||||||
| @@ -60,7 +60,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, | |||||||
| #define __trace_if_value(cond) ({			\ | #define __trace_if_value(cond) ({			\ | ||||||
| 	static struct ftrace_branch_data		\ | 	static struct ftrace_branch_data		\ | ||||||
| 		__aligned(4)				\ | 		__aligned(4)				\ | ||||||
| 		__section(_ftrace_branch)		\ | 		__section("_ftrace_branch")		\ | ||||||
| 		__if_trace = {				\ | 		__if_trace = {				\ | ||||||
| 			.func = __func__,		\ | 			.func = __func__,		\ | ||||||
| 			.file = __FILE__,		\ | 			.file = __FILE__,		\ | ||||||
| @@ -118,7 +118,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, | |||||||
| 	".popsection\n\t" | 	".popsection\n\t" | ||||||
|  |  | ||||||
| /* Annotate a C jump table to allow objtool to follow the code flow */ | /* Annotate a C jump table to allow objtool to follow the code flow */ | ||||||
| #define __annotate_jump_table __section(.rodata..c_jump_table) | #define __annotate_jump_table __section(".rodata..c_jump_table") | ||||||
|  |  | ||||||
| #else | #else | ||||||
| #define annotate_reachable() | #define annotate_reachable() | ||||||
| @@ -294,7 +294,7 @@ unsigned long read_word_at_a_time(const void *addr) | |||||||
|  * visible to the compiler. |  * visible to the compiler. | ||||||
|  */ |  */ | ||||||
| #define __ADDRESSABLE(sym) \ | #define __ADDRESSABLE(sym) \ | ||||||
| 	static void * __section(.discard.addressable) __used \ | 	static void * __section(".discard.addressable") __used \ | ||||||
| 		__PASTE(__addressable_##sym, __LINE__) = (void *)&sym; | 		__PASTE(__addressable_##sym, __LINE__) = (void *)&sym; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -246,7 +246,7 @@ | |||||||
|  *   gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-section-variable-attribute |  *   gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-section-variable-attribute | ||||||
|  * clang: https://clang.llvm.org/docs/AttributeReference.html#section-declspec-allocate |  * clang: https://clang.llvm.org/docs/AttributeReference.html#section-declspec-allocate | ||||||
|  */ |  */ | ||||||
| #define __section(S)                    __attribute__((__section__(#S))) | #define __section(S)                    __attribute__((__section__(S))) | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  *   gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-unused-function-attribute |  *   gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-unused-function-attribute | ||||||
|   | |||||||
| @@ -13,8 +13,8 @@ | |||||||
|  |  | ||||||
| DECLARE_GLOBAL_DATA_PTR; | DECLARE_GLOBAL_DATA_PTR; | ||||||
|  |  | ||||||
| static char trace_enabled __attribute__((section(".data"))); | static char trace_enabled __section(".data"); | ||||||
| static char trace_inited __attribute__((section(".data"))); | static char trace_inited __section(".data"); | ||||||
|  |  | ||||||
| /* The header block at the start of the trace memory area */ | /* The header block at the start of the trace memory area */ | ||||||
| struct trace_hdr { | struct trace_hdr { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user