From: Greg Ungerer <gerg@snapgear.com>
To: uClinux development list <uclinux-dev@uclinux.org>
Cc: Michal Simek <monstr@monstr.eu>,
Mike Frysinger <vapier@gentoo.org>,
Paul Mundt <lethal@linux-sh.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
linux-mtd@lists.infradead.org,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [uClinux-dev] [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss
Date: Fri, 1 Jun 2012 16:11:44 +1000 [thread overview]
Message-ID: <4FC85D20.6020905@snapgear.com> (raw)
In-Reply-To: <1338497739-2852-1-git-send-email-geert@linux-m68k.org>
Hi Geert,
On 01/06/12 06:55, 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.
Looks good to me. Compile and run tested uclinux.c changes on
ColdFire, no problems.
Acked-by: Greg Ungerer <gerg@uclinux.org>
Regards
Greg
> Not-Yet-Signed-off-by: Geert Uytterhoeven<geert@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 b/arch/sh/kernel/sh_ksyms_32.c
> index 3896f26..2a0a596 100644
> --- a/arch/sh/kernel/sh_ksyms_32.c
> +++ b/arch/sh/kernel/sh_ksyms_32.c
> @@ -19,7 +19,6 @@ EXPORT_SYMBOL(csum_partial);
> EXPORT_SYMBOL(csum_partial_copy_generic);
> EXPORT_SYMBOL(copy_page);
> EXPORT_SYMBOL(__clear_user);
> -EXPORT_SYMBOL(_ebss);
> EXPORT_SYMBOL(empty_zero_page);
>
> #define DECLARE_EXPORT(name) \
> diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S
> index c98905f..db88cbf 100644
> --- a/arch/sh/kernel/vmlinux.lds.S
> +++ b/arch/sh/kernel/vmlinux.lds.S
> @@ -78,7 +78,6 @@ SECTIONS
> . = ALIGN(PAGE_SIZE);
> __init_end = .;
> BSS_SECTION(0, PAGE_SIZE, 4)
> - _ebss = .; /* uClinux MTD sucks */
> _end = . ;
>
> STABS_DEBUG
> diff --git a/arch/sh/lib/mcount.S b/arch/sh/lib/mcount.S
> index 84a5776..60164e6 100644
> --- a/arch/sh/lib/mcount.S
> +++ b/arch/sh/lib/mcount.S
> @@ -39,7 +39,7 @@
> *
> * Make sure the stack pointer contains a valid address. Valid
> * addresses for kernel stacks are anywhere after the bss
> - * (after _ebss) and anywhere in init_thread_union (init_stack).
> + * (after __bss_stop) and anywhere in init_thread_union (init_stack).
> */
> #define STACK_CHECK() \
> mov #(THREAD_SIZE>> 10), r0; \
> @@ -60,7 +60,7 @@
> cmp/hi r2, r1; \
> bf stack_panic; \
> \
> - /* If sp> _ebss then we're OK. */ \
> + /* If sp> __bss_stop then we're OK. */ \
> mov.l .L_ebss, r1; \
> cmp/hi r1, r15; \
> bt 1f; \
> @@ -70,7 +70,7 @@
> cmp/hs r1, r15; \
> bf stack_panic; \
> \
> - /* If sp> init_stack&& sp< _ebss, not OK. */ \
> + /* If sp> init_stack&& sp< __bss_stop, not OK. */ \
> add r0, r1; \
> cmp/hs r1, r15; \
> bt stack_panic; \
> @@ -292,8 +292,6 @@ stack_panic:
> nop
>
> .align 2
> -.L_ebss:
> - .long _ebss
> .L_init_thread_union:
> .long init_thread_union
> .Lpanic:
> diff --git a/drivers/mtd/maps/uclinux.c b/drivers/mtd/maps/uclinux.c
> index cfff454..c3bb304 100644
> --- a/drivers/mtd/maps/uclinux.c
> +++ b/drivers/mtd/maps/uclinux.c
> @@ -19,14 +19,13 @@
> #include<linux/mtd/map.h>
> #include<linux/mtd/partitions.h>
> #include<asm/io.h>
> +#include<asm/sections.h>
>
> /****************************************************************************/
>
> -extern char _ebss;
> -
> struct map_info uclinux_ram_map = {
> .name = "RAM",
> - .phys = (unsigned long)&_ebss,
> + .phys = (unsigned long)__bss_stop,
> .size = 0,
> };
>
--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
prev parent reply other threads:[~2012-06-01 6:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-31 20:55 [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss Geert Uytterhoeven
2012-05-31 23:47 ` Paul Mundt
2012-06-01 2:20 ` Mike Frysinger
2012-06-01 4:58 ` Michal Simek
2012-06-01 6:11 ` Greg Ungerer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FC85D20.6020905@snapgear.com \
--to=gerg@snapgear.com \
--cc=dwmw2@infradead.org \
--cc=geert@linux-m68k.org \
--cc=lethal@linux-sh.org \
--cc=linux-mtd@lists.infradead.org \
--cc=monstr@monstr.eu \
--cc=uclinux-dev@uclinux.org \
--cc=vapier@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.