diff -urN 2.3.99-pre4-pre4/arch/alpha/vmlinux.lds bss/arch/alpha/vmlinux.lds --- 2.3.99-pre4-pre4/arch/alpha/vmlinux.lds Sun Feb 27 06:19:41 2000 +++ bss/arch/alpha/vmlinux.lds Sat Apr 8 16:44:25 2000 @@ -50,9 +50,11 @@ .got : { *(.got) } .sdata : { *(.sdata) } _edata = .; - _bss = .; + + __bss_start = .; .sbss : { *(.sbss) *(.scommon) } .bss : { *(.bss) *(COMMON) } + __bss_stop = .; _end = .; .mdebug 0 : { *(.mdebug) } diff -urN 2.3.99-pre4-pre4/arch/i386/vmlinux.lds bss/arch/i386/vmlinux.lds --- 2.3.99-pre4-pre4/arch/i386/vmlinux.lds Sun Jan 30 15:43:27 2000 +++ bss/arch/i386/vmlinux.lds Sat Apr 8 16:44:39 2000 @@ -62,6 +62,7 @@ .bss : { *(.bss) } + __bss_stop = .; _end = . ; /* Sections to be discarded */ diff -urN 2.3.99-pre4-pre4/arch/ppc/vmlinux.lds bss/arch/ppc/vmlinux.lds --- 2.3.99-pre4-pre4/arch/ppc/vmlinux.lds Tue Oct 12 02:40:34 1999 +++ bss/arch/ppc/vmlinux.lds Sat Apr 8 16:44:25 2000 @@ -132,6 +132,7 @@ *(.bss) *(COMMON) } + __bss_stop = .; _end = . ; PROVIDE (end = .); } diff -urN 2.3.99-pre4-pre4/arch/sparc/vmlinux.lds bss/arch/sparc/vmlinux.lds --- 2.3.99-pre4-pre4/arch/sparc/vmlinux.lds Fri Feb 11 00:05:33 2000 +++ bss/arch/sparc/vmlinux.lds Sat Apr 8 16:44:25 2000 @@ -57,6 +57,7 @@ *(.bss) *(COMMON) } + __bss_stop = .; _end = . ; PROVIDE (end = .); /* Stabs debugging sections. */ diff -urN 2.3.99-pre4-pre4/arch/sparc64/vmlinux.lds bss/arch/sparc64/vmlinux.lds --- 2.3.99-pre4-pre4/arch/sparc64/vmlinux.lds Fri Feb 11 00:05:33 2000 +++ bss/arch/sparc64/vmlinux.lds Sat Apr 8 16:44:25 2000 @@ -58,6 +58,7 @@ *(.bss) *(COMMON) } + __bss_stop = .; _end = . ; PROVIDE (end = .); /* Stabs debugging sections. */ diff -urN 2.3.99-pre4-pre4/init/main.c bss/init/main.c --- 2.3.99-pre4-pre4/init/main.c Sat Mar 11 20:02:33 2000 +++ bss/init/main.c Sat Apr 8 16:44:25 2000 @@ -466,6 +466,13 @@ #endif +static void __init clear_bss(void) +{ + extern char * __bss_start, __bss_stop; + memset(__bss_start, 0, + (unsigned long) __bss_stop - (unsigned long) __bss_start); +} + /* * Activate the first processor. */ @@ -478,6 +485,7 @@ * Interrupts are still disabled. Do necessary setups, then * enable them */ + clear_bss(); lock_kernel(); printk(linux_banner); setup_arch(&command_line);