Re: [uClinux-dev] [PATCH/RFC] mtd/uclinux: Use generic __bss_stop instead of _ebss

2012-06-01 Thread Greg Ungerer

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

2012-05-31 Thread Geert Uytterhoeven
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

2012-05-31 Thread Paul Mundt
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