Re: [uClinux-dev] [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss
Hi Geert, On 01/06/12 06:55, Geert Uytterhoeven wrote: The standard (see BSS_SECTION() inasm-generic/vmlinux.lds.h and asm-generic/sections.h) symbol for the end of BSS is __bss_stop. This allows to remove all local declarations that have been added to several architectures just to please CONFIG_MTD_UCLINUX. Looks good to me. Compile and run tested uclinux.c changes on ColdFire, no problems. Acked-by: Greg Ungerer g...@uclinux.org Regards Greg Not-Yet-Signed-off-by: Geert Uytterhoevenge...@linux-m68k.org --- This is a prerequisite for some future m68k changes: - replacing the m68k-specific _[se]bss by the generic __bss_{start,stop}, - using the asm-generic version ofasm/sections.h. --- arch/blackfin/kernel/setup.c |1 - arch/microblaze/include/asm/sections.h|4 arch/microblaze/kernel/microblaze_ksyms.c |3 --- arch/microblaze/kernel/setup.c|4 ++-- arch/microblaze/kernel/vmlinux.lds.S |1 - arch/sh/include/asm/sections.h|1 - arch/sh/kernel/setup.c|2 +- arch/sh/kernel/sh_ksyms_32.c |1 - arch/sh/kernel/vmlinux.lds.S |1 - arch/sh/lib/mcount.S |8 +++- drivers/mtd/maps/uclinux.c|5 ++--- 11 files changed, 8 insertions(+), 23 deletions(-) diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index ada8f0f..fb96e60 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c @@ -52,7 +52,6 @@ EXPORT_SYMBOL(reserved_mem_dcache_on); #ifdef CONFIG_MTD_UCLINUX extern struct map_info uclinux_ram_map; unsigned long memory_mtd_end, memory_mtd_start, mtd_size; -unsigned long _ebss; EXPORT_SYMBOL(memory_mtd_end); EXPORT_SYMBOL(memory_mtd_start); EXPORT_SYMBOL(mtd_size); diff --git a/arch/microblaze/include/asm/sections.h b/arch/microblaze/include/asm/sections.h index 4487e15..c07ed5d 100644 --- a/arch/microblaze/include/asm/sections.h +++ b/arch/microblaze/include/asm/sections.h @@ -18,10 +18,6 @@ extern char _ssbss[], _esbss[]; extern unsigned long __ivt_start[], __ivt_end[]; extern char _etext[], _stext[]; -# ifdef CONFIG_MTD_UCLINUX -extern char *_ebss; -# endif - extern u32 _fdt_start[], _fdt_end[]; # endif /* !__ASSEMBLY__ */ diff --git a/arch/microblaze/kernel/microblaze_ksyms.c b/arch/microblaze/kernel/microblaze_ksyms.c index bb4907c..2b25bcf 100644 --- a/arch/microblaze/kernel/microblaze_ksyms.c +++ b/arch/microblaze/kernel/microblaze_ksyms.c @@ -21,9 +21,6 @@ #includelinux/ftrace.h #includelinux/uaccess.h -extern char *_ebss; -EXPORT_SYMBOL_GPL(_ebss); - #ifdef CONFIG_FUNCTION_TRACER extern void _mcount(void); EXPORT_SYMBOL(_mcount); diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c index 16d8dfd..4da971d 100644 --- a/arch/microblaze/kernel/setup.c +++ b/arch/microblaze/kernel/setup.c @@ -121,7 +121,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram, /* Move ROMFS out of BSS before clearing it */ if (romfs_size 0) { - memmove(_ebss, (int *)romfs_base, romfs_size); + memmove(__bss_stop, (int *)romfs_base, romfs_size); klimit += romfs_size; } #endif @@ -165,7 +165,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram, BUG_ON(romfs_size 0); /* What else can we do? */ printk(Moved 0x%08x bytes from 0x%08x to 0x%08x\n, - romfs_size, romfs_base, (unsigned)_ebss); + romfs_size, romfs_base, (unsigned)__bss_stop); printk(New klimit: 0x%08x\n, (unsigned)klimit); #endif diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S index 109e9d8..936d01a 100644 --- a/arch/microblaze/kernel/vmlinux.lds.S +++ b/arch/microblaze/kernel/vmlinux.lds.S @@ -131,7 +131,6 @@ SECTIONS { *(COMMON) . = ALIGN (4) ; __bss_stop = . ; - _ebss = . ; } . = ALIGN(PAGE_SIZE); _end = .; diff --git a/arch/sh/include/asm/sections.h b/arch/sh/include/asm/sections.h index 4a53500..1b61997 100644 --- a/arch/sh/include/asm/sections.h +++ b/arch/sh/include/asm/sections.h @@ -6,7 +6,6 @@ extern long __nosave_begin, __nosave_end; extern long __machvec_start, __machvec_end; extern char __uncached_start, __uncached_end; -extern char _ebss[]; extern char __start_eh_frame[], __stop_eh_frame[]; #endif /* __ASM_SH_SECTIONS_H */ diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 7b57bf1..ebe7a7d 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c @@ -273,7 +273,7 @@ void __init setup_arch(char **cmdline_p) data_resource.start = virt_to_phys(_etext); data_resource.end = virt_to_phys(_edata)-1; bss_resource.start = virt_to_phys(__bss_start); - bss_resource.end =
[uClinux-dev] [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss
The standard (see BSS_SECTION() in asm-generic/vmlinux.lds.h and asm-generic/sections.h) symbol for the end of BSS is __bss_stop. This allows to remove all local declarations that have been added to several architectures just to please CONFIG_MTD_UCLINUX. Not-Yet-Signed-off-by: Geert Uytterhoeven ge...@linux-m68k.org --- This is a prerequisite for some future m68k changes: - replacing the m68k-specific _[se]bss by the generic __bss_{start,stop}, - using the asm-generic version of asm/sections.h. --- arch/blackfin/kernel/setup.c |1 - arch/microblaze/include/asm/sections.h|4 arch/microblaze/kernel/microblaze_ksyms.c |3 --- arch/microblaze/kernel/setup.c|4 ++-- arch/microblaze/kernel/vmlinux.lds.S |1 - arch/sh/include/asm/sections.h|1 - arch/sh/kernel/setup.c|2 +- arch/sh/kernel/sh_ksyms_32.c |1 - arch/sh/kernel/vmlinux.lds.S |1 - arch/sh/lib/mcount.S |8 +++- drivers/mtd/maps/uclinux.c|5 ++--- 11 files changed, 8 insertions(+), 23 deletions(-) diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index ada8f0f..fb96e60 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c @@ -52,7 +52,6 @@ EXPORT_SYMBOL(reserved_mem_dcache_on); #ifdef CONFIG_MTD_UCLINUX extern struct map_info uclinux_ram_map; unsigned long memory_mtd_end, memory_mtd_start, mtd_size; -unsigned long _ebss; EXPORT_SYMBOL(memory_mtd_end); EXPORT_SYMBOL(memory_mtd_start); EXPORT_SYMBOL(mtd_size); diff --git a/arch/microblaze/include/asm/sections.h b/arch/microblaze/include/asm/sections.h index 4487e15..c07ed5d 100644 --- a/arch/microblaze/include/asm/sections.h +++ b/arch/microblaze/include/asm/sections.h @@ -18,10 +18,6 @@ extern char _ssbss[], _esbss[]; extern unsigned long __ivt_start[], __ivt_end[]; extern char _etext[], _stext[]; -# ifdef CONFIG_MTD_UCLINUX -extern char *_ebss; -# endif - extern u32 _fdt_start[], _fdt_end[]; # endif /* !__ASSEMBLY__ */ diff --git a/arch/microblaze/kernel/microblaze_ksyms.c b/arch/microblaze/kernel/microblaze_ksyms.c index bb4907c..2b25bcf 100644 --- a/arch/microblaze/kernel/microblaze_ksyms.c +++ b/arch/microblaze/kernel/microblaze_ksyms.c @@ -21,9 +21,6 @@ #include linux/ftrace.h #include linux/uaccess.h -extern char *_ebss; -EXPORT_SYMBOL_GPL(_ebss); - #ifdef CONFIG_FUNCTION_TRACER extern void _mcount(void); EXPORT_SYMBOL(_mcount); diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c index 16d8dfd..4da971d 100644 --- a/arch/microblaze/kernel/setup.c +++ b/arch/microblaze/kernel/setup.c @@ -121,7 +121,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram, /* Move ROMFS out of BSS before clearing it */ if (romfs_size 0) { - memmove(_ebss, (int *)romfs_base, romfs_size); + memmove(__bss_stop, (int *)romfs_base, romfs_size); klimit += romfs_size; } #endif @@ -165,7 +165,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram, BUG_ON(romfs_size 0); /* What else can we do? */ printk(Moved 0x%08x bytes from 0x%08x to 0x%08x\n, - romfs_size, romfs_base, (unsigned)_ebss); + romfs_size, romfs_base, (unsigned)__bss_stop); printk(New klimit: 0x%08x\n, (unsigned)klimit); #endif diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S index 109e9d8..936d01a 100644 --- a/arch/microblaze/kernel/vmlinux.lds.S +++ b/arch/microblaze/kernel/vmlinux.lds.S @@ -131,7 +131,6 @@ SECTIONS { *(COMMON) . = ALIGN (4) ; __bss_stop = . ; - _ebss = . ; } . = ALIGN(PAGE_SIZE); _end = .; diff --git a/arch/sh/include/asm/sections.h b/arch/sh/include/asm/sections.h index 4a53500..1b61997 100644 --- a/arch/sh/include/asm/sections.h +++ b/arch/sh/include/asm/sections.h @@ -6,7 +6,6 @@ extern long __nosave_begin, __nosave_end; extern long __machvec_start, __machvec_end; extern char __uncached_start, __uncached_end; -extern char _ebss[]; extern char __start_eh_frame[], __stop_eh_frame[]; #endif /* __ASM_SH_SECTIONS_H */ diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 7b57bf1..ebe7a7d 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c @@ -273,7 +273,7 @@ void __init setup_arch(char **cmdline_p) data_resource.start = virt_to_phys(_etext); data_resource.end = virt_to_phys(_edata)-1; bss_resource.start = virt_to_phys(__bss_start); - bss_resource.end = virt_to_phys(_ebss)-1; + bss_resource.end = virt_to_phys(__bss_stop)-1; #ifdef CONFIG_CMDLINE_OVERWRITE strlcpy(command_line, CONFIG_CMDLINE, sizeof(command_line)); diff --git a/arch/sh/kernel/sh_ksyms_32.c
Re: [uClinux-dev] [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss
On Thu, May 31, 2012 at 10:55:39PM +0200, Geert Uytterhoeven wrote: The standard (see BSS_SECTION() in asm-generic/vmlinux.lds.h and asm-generic/sections.h) symbol for the end of BSS is __bss_stop. This allows to remove all local declarations that have been added to several architectures just to please CONFIG_MTD_UCLINUX. Not-Yet-Signed-off-by: Geert Uytterhoeven ge...@linux-m68k.org --- This is a prerequisite for some future m68k changes: - replacing the m68k-specific _[se]bss by the generic __bss_{start,stop}, - using the asm-generic version of asm/sections.h. I like it. The only reason we have _ebss on sh at all is for the mtd map anyways. Acked-by: Paul Mundt let...@linux-sh.org ___ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev