bk://linux-sam.bkbits.net/kbuild
sam@mars.ravnborg.org|ChangeSet|20041103224052|49455 sam

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/11/04 13:28:30-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-kbuild
# 
# arch/i386/kernel/traps.c
#   2004/11/04 13:28:27-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/03 23:40:52+01:00 sam@mars.ravnborg.org 
#   Merge mars.ravnborg.org:/home/sam/bk/linux-2.6
#   into mars.ravnborg.org:/home/sam/bk/to-akpm
# 
# scripts/Makefile.build
#   2004/11/03 23:40:43+01:00 sam@mars.ravnborg.org +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/03 21:52:01+01:00 azarah@nosferatu.za.org 
#   kbuild: check timestamps on files for initramfs
#   
#     Add a comment to gen_initramfs_list.sh output that contains the
#     numeric mtime of the last modified file in the source directory,
#     or the mtime of the source list.  This should cause the initramfs
#     image to be rebuild if a file in the source directory changed, or
#     the source list (if that was used rather than a directory as source).
#   
#   
#   Signed-off-by: Martin Schlemmer <azarah@nosferatu.za.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/gen_initramfs_list.sh
#   2004/11/03 21:51:27+01:00 azarah@nosferatu.za.org +19 -4
#   kbuild: check timestamps on files for initramfs
#   
#     Add a comment to gen_initramfs_list.sh output that contains the
#     numeric mtime of the last modified file in the source directory,
#     or the mtime of the source list.  This should cause the initramfs
#     image to be rebuild if a file in the source directory changed, or
#     the source list (if that was used rather than a directory as source).
#   
#   
#   Signed-off-by: Martin Schlemmer <azarah@nosferatu.za.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:51:06+01:00 adobriyan@mail.ru 
#   kernel-doc: don't print ... twice in variadic functions
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kernel-doc
#   2004/11/03 21:50:28+01:00 adobriyan@mail.ru +1 -1
#   kernel-doc: don't print ... twice in variadic functions
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:50:05+01:00 adobriyan@mail.ru 
#   kernel-doc: print arrays in declarations correctly
#   
#   Do not convert arrays into pointers while generating documentation for them.
#   
#   I.e, print
#   
#   struct sk_buff {
#   	char cb[40];
#   };
#   
#   as "char cb[40]", not "char * cb".
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kernel-doc
#   2004/11/03 21:49:44+01:00 adobriyan@mail.ru +73 -27
#   kernel-doc: print arrays in declarations correctly
#   
#   Do not convert arrays into pointers while generating documentation for them.
#   
#   I.e, print
#   
#   struct sk_buff {
#   	char cb[40];
#   };
#   
#   as "char cb[40]", not "char * cb".
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:49:24+01:00 adobriyan@mail.ru 
#   kernel-doc: support for comma-separated members in structs and unions
#   
#   Fix the following warnings
#   
#   $ make sgmldocs
#   ...
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'len,data_len,mac_len,csum'
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'local_df,cloned,pkt_type,ip_summed'
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'protocol,security'
#   ...
#   Warning(include/linux/skbuff.h:283): No description found for
#   parameter 'head,*data,*tail,*end'
#   ...
#   
#   by adding support for comma-separated members in structs and unions.
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kernel-doc
#   2004/11/03 21:49:05+01:00 adobriyan@mail.ru +30 -16
#   kernel-doc: support for comma-separated members in structs and unions
#   
#   Fix the following warnings
#   
#   $ make sgmldocs
#   ...
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'len,data_len,mac_len,csum'
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'local_df,cloned,pkt_type,ip_summed'
#   Warning(include/linux/skbuff.h:283): No description found for parameter 'protocol,security'
#   ...
#   Warning(include/linux/skbuff.h:283): No description found for
#   parameter 'head,*data,*tail,*end'
#   ...
#   
#   by adding support for comma-separated members in structs and unions.
#   
#   Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:48:44+01:00 sam@mars.ravnborg.org 
#   ppc: fix building arch/ppc/boot/lib/ with make O=
#   
#   arch/ppc/boot/lib/ reuses zlib_inflate from lib/zlib_inflate but kbuild
#   does not support two different places utilising the same .o file. It results
#   in recompile for each build because options to compiler changes etc.
#   So the trick used here is to make a copy of the required .c files.
#   
#   Acked-by: Tom Rini <trini@kernel.crashing.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/ppc/boot/lib/Makefile
#   2004/11/03 21:48:25+01:00 sam@mars.ravnborg.org +17 -4
#   ppc: fix building arch/ppc/boot/lib/ with make O=
#   
#   arch/ppc/boot/lib/ reuses zlib_inflate from lib/zlib_inflate but kbuild
#   does not support two different places utilising the same .o file. It results
#   in recompile for each build because options to compiler changes etc.
#   So the trick used here is to make a copy of the required .c files.
#   
#   Acked-by: Tom Rini <trini@kernel.crashing.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:47:44+01:00 sam@mars.ravnborg.org 
#   kconfig: drop usage of shared libraries
#   
#   Drop usage of shared libraries.
#   It breaks on several non-i386 build environemnts - especially the ones popular for embedded development.
#   This is a minimal version.
#   Based on idea from Bertrand Marquis and patch from Dan Kegel.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kconfig/Makefile
#   2004/11/03 21:47:25+01:00 sam@mars.ravnborg.org +3 -5
#   kconfig: drop usage of shared libraries
#   
#   Drop usage of shared libraries.
#   It breaks on several non-i386 build environemnts - especially the ones popular for embedded development.
#   This is a minimal version.
#   Based on idea from Bertrand Marquis and patch from Dan Kegel.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/11/03 21:40:43+01:00 sam@mars.ravnborg.org 
#   kbuild: Prefer Kbuild as name of the kbuild files
#   
#   The kbuild syntax is unique and does only have very few things in common with
#   usual Makefile syntax. So to avoid confusion make the filename 'Kbuild' be
#   the preferred name as replacement for 'Makefile'.
#   No global renaming planned to take place for now, but new stuff expected to use
#   the new 'Kbuild' filename.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/Makefile.clean
#   2004/11/03 21:40:00+01:00 sam@mars.ravnborg.org +1 -1
#   kbuild: Prefer Kbuild as name of the kbuild files
#   
#   The kbuild syntax is unique and does only have very few things in common with
#   usual Makefile syntax. So to avoid confusion make the filename 'Kbuild' be
#   the preferred name as replacement for 'Makefile'.
#   No global renaming planned to take place for now, but new stuff expected to use
#   the new 'Kbuild' filename.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/Makefile.build
#   2004/11/03 21:40:00+01:00 sam@mars.ravnborg.org +1 -1
#   kbuild: Prefer Kbuild as name of the kbuild files
#   
#   The kbuild syntax is unique and does only have very few things in common with
#   usual Makefile syntax. So to avoid confusion make the filename 'Kbuild' be
#   the preferred name as replacement for 'Makefile'.
#   No global renaming planned to take place for now, but new stuff expected to use
#   the new 'Kbuild' filename.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# Documentation/kbuild/makefiles.txt
#   2004/11/03 21:40:00+01:00 sam@mars.ravnborg.org +5 -2
#   kbuild: Prefer Kbuild as name of the kbuild files
#   
#   The kbuild syntax is unique and does only have very few things in common with
#   usual Makefile syntax. So to avoid confusion make the filename 'Kbuild' be
#   the preferred name as replacement for 'Makefile'.
#   No global renaming planned to take place for now, but new stuff expected to use
#   the new 'Kbuild' filename.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# ChangeSet
#   2004/10/31 02:49:03+02:00 james4765@verizon.net 
#   Re: More patches to arch/sparc/Kconfig [2 of 5]
#   
#   Fixes typo in help in openpromfs.
#   
#   From: Jim Nelson <james4765@verizon.net>
#   Acked-by: William Lee Irwin III <wli@holomorphy.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/sparc/Kconfig
#   2004/10/19 00:38:05+02:00 james4765@verizon.net +4 -1
#   Re: More patches to arch/sparc/Kconfig [2 of 5]
# 
# ChangeSet
#   2004/10/31 02:46:14+02:00 james4765@verizon.net 
#   More patches to arch/sparc/Kconfig [4 of 5]
#   
#   Makes sun4 default to "N" - most SPARC32 systems did not use these.
#   
#   From: Jim Nelson <james4765@verizon.net>
#   Acked-by: William Lee Irwin III <wli@holomorphy.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/sparc/Kconfig
#   2004/10/16 16:09:58+02:00 james4765@verizon.net +1 -0
#   More patches to arch/sparc/Kconfig [4 of 5]
# 
# ChangeSet
#   2004/10/31 02:45:50+02:00 james4765@verizon.net 
#   More patches to arch/sparc/Kconfig [5 of 5]
#   
#   Fixes x86-specific bootloader help in printer config.
#   
#   From: Jim Nelson <james4765@verizon.net>
#   Acked-by: William Lee Irwin III <wli@holomorphy.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/sparc/Kconfig
#   2004/10/16 16:15:30+02:00 james4765@verizon.net +3 -3
#   More patches to arch/sparc/Kconfig [5 of 5]
# 
# ChangeSet
#   2004/10/31 02:45:26+02:00 james4765@verizon.net 
#   More patches to arch/sparc/Kconfig [3 of 5]
#   
#   Fixes x86-specific bootloader help in serial console.
#   
#   From: Jim Nelson <james4765@verizon.net>
#   Acked-by: William Lee Irwin III <wli@holomorphy.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/sparc/Kconfig
#   2004/10/16 16:18:36+02:00 james4765@verizon.net +3 -3
#   More patches to arch/sparc/Kconfig [3 of 5]
# 
# ChangeSet
#   2004/10/31 02:45:02+02:00 james4765@verizon.net 
#   Patch to arch/sparc/Kconfig [1 of 5]
#   
#   Fixes x86-specific help in SPARC32 SMP support help.
#   
#   From: Jim Nelson <james4765@verizon.net>
#   Acked-by: William Lee Irwin III <wli@holomorphy.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/sparc/Kconfig
#   2004/10/16 16:02:11+02:00 james4765@verizon.net +2 -8
#   Patch to arch/sparc/Kconfig [1 of 5]
# 
# ChangeSet
#   2004/10/31 02:23:45+02:00 sam@mars.ravnborg.org 
#   Do not recompile if localversion changes
#   
#   Changing localversion causes a few files to be recompiled, namely those who
#   include <version.h>. Replace <version.h> with <utsname.h> in a few places.
#   Long term solution is to split up <version.h> in two files.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# sound/core/info.c
#   2004/10/31 02:23:26+02:00 sam@mars.ravnborg.org +2 -2
#   Do not use UTS_RELEASE direct - use system_utsname.release
# 
# arch/i386/kernel/traps.c
#   2004/10/31 02:23:26+02:00 sam@mars.ravnborg.org +2 -2
#   Do not use UTS_RELEASE direct - use system_utsname.release
# 
# arch/i386/kernel/process.c
#   2004/10/31 02:23:26+02:00 sam@mars.ravnborg.org +3 -2
#   Do not use UTS_RELEASE direct - use system_utsname.release
# 
# ChangeSet
#   2004/10/31 02:05:58+02:00 sam@mars.ravnborg.org 
#   kbuild: allow architectures to specify defconfig file with KBUILD_DEFCONFIG
#   
#   For some architectures is does not make sense to maintain a single default
#   configuration - arm is a good example here.
#   KBUILD_DEFCONFIG is introduced allowing relevant architectures to point out
#   a configuration kept in arch/$(ARCH)/configs as the configuration
#   to be used when executing 'make defconfig'.
#   This patch selects versatile_defconfig as the default configuration for arm.
#   
#   The reason to keep defconfig is that is has proved valuable in many testing
#   scenarios when one are doing a cross architecture build of the kernel to
#   do a simple compile-time check of some changes.
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kconfig/Makefile
#   2004/10/31 02:05:38+02:00 sam@mars.ravnborg.org +5 -0
#   Introduce support for KBUILD_DEFCONFIG
# 
# arch/arm/Makefile
#   2004/10/31 02:05:38+02:00 sam@mars.ravnborg.org +4 -0
#   Use versatile_defconfig as default configuration for arm.
# 
# Makefile
#   2004/10/31 02:05:38+02:00 sam@mars.ravnborg.org +6 -0
#   Introduce KBUILD_DEFCONFIG
# 
# BitKeeper/deleted/.del-defconfig~a0790bbb7ef0057d
#   2004/10/31 02:00:22+02:00 sam@mars.ravnborg.org +0 -0
#   Delete: arch/arm/defconfig
# 
# ChangeSet
#   2004/10/31 01:38:28+02:00 trini@kernel.crashing.org 
#   kbuild: additional warning fixes on Solaris 9
#   
#   A coworker of mine give them a look-over and spotted a few
#   places where I missed changing some casts.
#   
#   Signed-off-by: Tom Rini <trini@kernel.crashing.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/mod/modpost.c
#   2004/10/30 02:00:00+02:00 trini@kernel.crashing.org +1 -1
#   kbuild: additional warning fixes on Solaris 9
# 
# scripts/basic/fixdep.c
#   2004/10/30 02:00:00+02:00 trini@kernel.crashing.org +4 -4
#   kbuild: additional warning fixes on Solaris 9
# 
# ChangeSet
#   2004/10/31 01:28:31+02:00 sam@mars.ravnborg.org 
#   m32r: misc kbuild cleanups
#   
#   o Remove unused LDFLAGS_BLOB assignement (from Brian Gerst)
#   o Use implicit rule for vmlinux.lds (from Al viro)
#   
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/m32r/boot/compressed/Makefile
#   2004/10/31 01:28:12+02:00 sam@mars.ravnborg.org +0 -3
#   Use implicit rules to generate vmlinux.lds
# 
# arch/m32r/Makefile
#   2004/10/31 01:28:12+02:00 sam@mars.ravnborg.org +0 -1
#   Delete unused LDFLAGS_BLOB assignment
#   
# 
# ChangeSet
#   2004/10/31 01:14:43+02:00 kaos@sgi.com 
#   kbuild: Include useful absolute symbols in kallsyms
#   
#   Some absolute symbols are useful, they can even appear in back traces.
#   Tweak kallsyms to retain the useful absolute symbols.
#   
#   This list is from ia64, add absolute symbols from other architectures
#   as required.
#   
#   Signed-off-by: Keith Owens <kaos@sgi.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/kallsyms.c
#   2004/10/31 01:12:45+02:00 kaos@sgi.com +11 -1
#   kbuild: Include useful absolute symbols in kallsyms
# 
# ChangeSet
#   2004/10/31 00:18:21+02:00 bunk@stusta.de 
#   kbuild: Documentation/kbuild/makefiles.txt: check_gcc -> cc-option
#   
#   It's not good to show the obsolete check_gcc in an example.
#   
#   Signed-off-by: Adrian Bunk <bunk@stusta.de>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# Documentation/kbuild/makefiles.txt
#   2004/10/27 20:03:24+02:00 bunk@stusta.de +9 -7
#   kbuild: Documentation/kbuild/makefiles.txt: check_gcc -> cc-option
# 
# ChangeSet
#   2004/10/31 00:16:03+02:00 trini@kernel.crashing.org 
#   kconfig: Fix menuconfig on Solaris
#   
#   The following two bits are needed to get it working (not as colorful as on
#   Linux, but it functions) for me.  First, unless CURS_MACROS is defined,
#   scroll(x) doesn't get expanded to wscrl(x, 1).  I did some quick
#   grepping on Cygwin and Linux (debian/unstable) and didn't see
#   CURS_MACROS show up anywhere else, but to be safe I put it inside of
#   __sun__.  Next this uses libcurses instead of libncurses otherwise we
#   get a bunch of undefined refs to w32attrset, w32addch, acs32map and few
#   more.
#   
#   Signed-off-by: Tom Rini <trini@kernel.crashing.org>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# scripts/lxdialog/dialog.h
#   2004/10/30 02:00:00+02:00 trini@kernel.crashing.org +3 -0
#   kconfig: Fix menuconfig on Solaris
# 
# scripts/lxdialog/Makefile
#   2004/10/30 02:00:00+02:00 trini@kernel.crashing.org +4 -0
#   kconfig: Fix menuconfig on Solaris
# 
# ChangeSet
#   2004/10/31 00:12:39+02:00 dwm@austin.ibm.com 
#   ppc64: install outside of source tree
#   
#   Rationale:
#   	When building outside source tree, install.sh is looked for in the
#           obj side.
#   
#   Status:  tested on ppc64 builds
#   
#   Signed-off-by: Doug Maxey <dwm@austin.ibm.com>
#   Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
# 
# arch/ppc64/boot/Makefile
#   2004/10/11 21:15:58+02:00 dwm@austin.ibm.com +1 -1
#   ppc64: install outside of source tree
# 
diff -Nru a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
--- a/Documentation/kbuild/makefiles.txt	2004-11-04 20:19:48 -08:00
+++ b/Documentation/kbuild/makefiles.txt	2004-11-04 20:19:48 -08:00
@@ -6,7 +6,7 @@
 
 	=== 1 Overview
 	=== 2 Who does what
-	=== 3 The kbuild Makefiles
+	=== 3 The kbuild files
 	   --- 3.1 Goal definitions
 	   --- 3.2 Built-in object goals - obj-y
 	   --- 3.3 Loadable module goals - obj-m
@@ -101,11 +101,14 @@
 This document is aimed towards normal developers and arch developers.
 
 
-=== 3 The kbuild Makefiles
+=== 3 The kbuild files
 
 Most Makefiles within the kernel are kbuild Makefiles that use the
 kbuild infrastructure. This chapter introduce the syntax used in the
 kbuild makefiles.
+The preferred name for the kbuild files is 'Kbuild' but 'Makefile' will
+continue to be supported. All new developmen is expected to use the
+Kbuild filename.
 
 Section 3.1 "Goal definitions" is a quick intro, further chapters provide
 more details, with real examples.
@@ -707,15 +710,17 @@
 	probe supported options:
 
 		#arch/i386/Makefile
-		check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc \
-		            /dev/null\ > /dev/null 2>&1; then echo "$(1)"; \
-		            else echo "$(2)"; fi)
-		cflags-$(CONFIG_MCYRIXIII) += $(call check_gcc,\
-		                                     -march=c3,-march=i486)
 
-		CFLAGS += $(cflags-y)
+		...
+		cflags-$(CONFIG_MPENTIUMII)     += $(call cc-option,\
+						-march=pentium2,-march=i686)
+		...
+		# Disable unit-at-a-time mode ...
+		CFLAGS += $(call cc-option,-fno-unit-at-a-time)
+		...
+
 
-	The above examples both utilise the trick that a config option expands
+	The first examples utilises the trick that a config option expands
 	to 'y' when selected.
 
     CFLAGS_KERNEL	$(CC) options specific for built-in
diff -Nru a/Makefile b/Makefile
--- a/Makefile	2004-11-04 20:19:48 -08:00
+++ b/Makefile	2004-11-04 20:19:48 -08:00
@@ -440,6 +440,12 @@
 # *config targets only - make sure prerequisites are updated, and descend
 # in scripts/kconfig to make the *config target
 
+# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
+# KBUILD_DEFCONFIG may point out an alternative default configuration
+# used for 'make defconfig'
+include $(srctree)/arch/$(ARCH)/Makefile
+export KBUILD_DEFCONFIG
+
 config: scripts_basic outputmakefile FORCE
 	$(Q)$(MAKE) $(build)=scripts/kconfig $@
 %config: scripts_basic outputmakefile FORCE
diff -Nru a/arch/arm/Makefile b/arch/arm/Makefile
--- a/arch/arm/Makefile	2004-11-04 20:19:48 -08:00
+++ b/arch/arm/Makefile	2004-11-04 20:19:48 -08:00
@@ -13,6 +13,10 @@
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
 
+# Do not use arch/arm/defconfig - it's always outdated.
+# Select a platform tht is kept up-to-date
+KBUILD_DEFCONFIG := versatile_defconfig
+
 ifeq ($(CONFIG_FRAME_POINTER),y)
 CFLAGS		+=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
 endif
diff -Nru a/arch/arm/defconfig b/arch/arm/defconfig
--- a/arch/arm/defconfig	2004-11-04 20:19:48 -08:00
+++ /dev/null	Wed Dec 31 16:00:00 196900
@@ -1,510 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_ARM=y
-# CONFIG_EISA is not set
-# CONFIG_SBUS is not set
-# CONFIG_MCA is not set
-CONFIG_UID16=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-# CONFIG_OBSOLETE is not set
-
-#
-# Loadable module support
-#
-# CONFIG_MODULES is not set
-
-#
-# System Type
-#
-# CONFIG_ARCH_ARCA5K is not set
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-CONFIG_ARCH_INTEGRATOR=y
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_CLPS711X is not set
-
-#
-# Archimedes/A5000 Implementations
-#
-
-#
-# Footbridge Implementations
-#
-
-#
-# SA11x0 Implementations
-#
-
-#
-# CLPS711X/EP721X Implementations
-#
-# CONFIG_ARCH_ACORN is not set
-# CONFIG_FOOTBRIDGE is not set
-# CONFIG_FOOTBRIDGE_HOST is not set
-# CONFIG_FOOTBRIDGE_ADDIN is not set
-CONFIG_CPU_32=y
-# CONFIG_CPU_26 is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_32v4=y
-CONFIG_CPU_ARM720=y
-CONFIG_CPU_ARM920=y
-CONFIG_CPU_ARM920_CPU_IDLE=y
-CONFIG_CPU_ARM920_I_CACHE_ON=y
-CONFIG_CPU_ARM920_D_CACHE_ON=y
-# CONFIG_CPU_ARM920_WRITETHROUGH is not set
-# CONFIG_DISCONTIGMEM is not set
-
-#
-# General setup
-#
-# CONFIG_ANGELBOOT is not set
-CONFIG_PCI_INTEGRATOR=y
-CONFIG_PCI=y
-# CONFIG_ISA is not set
-# CONFIG_ISA_DMA is not set
-CONFIG_PCI_NAMES=y
-# CONFIG_HOTPLUG is not set
-# CONFIG_PCMCIA is not set
-CONFIG_NET=y
-CONFIG_SYSVIPC=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-CONFIG_NWFPE=y
-CONFIG_KCORE_ELF=y
-# CONFIG_KCORE_AOUT is not set
-CONFIG_BINFMT_AOUT=y
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_PM is not set
-# CONFIG_ARTHUR is not set
-CONFIG_CMDLINE="root=1f04 mem=32M"
-CONFIG_LEDS=y
-CONFIG_LEDS_TIMER=y
-CONFIG_LEDS_CPU=y
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DOC1000 is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOCPROBE is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_MTDRAM is not set
-
-#
-# MTD drivers for mapped chips
-#
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_JEDEC is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_PHYSMAP is not set
-
-#
-# Drivers for chip mappings
-#
-# CONFIG_MTD_MIXMEM is not set
-# CONFIG_MTD_NORA is not set
-# CONFIG_MTD_OCTAGON is not set
-# CONFIG_MTD_PNC2000 is not set
-# CONFIG_MTD_RPXLITE is not set
-# CONFIG_MTD_VMAX is not set
-
-#
-# User modules and translation layers for MTD devices
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-CONFIG_MTD_ARM=y
-
-#
-# Plug and Play configuration
-#
-# CONFIG_PNP is not set
-# CONFIG_ISAPNP is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_INITRD is not set
-
-#
-# Networking options
-#
-# CONFIG_PACKET is not set
-# CONFIG_NETLINK is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_FILTER is not set
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_INET_ECN is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_IPV6 is not set
-# CONFIG_KHTTPD is not set
-# CONFIG_ATM is not set
-
-#
-#  
-#
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_DECNET is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_LLC is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_NET_SB1000 is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_LANCE is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_APRICOT is not set
-# CONFIG_CS89x0 is not set
-CONFIG_TULIP=y
-# CONFIG_DE4X5 is not set
-# CONFIG_DGRS is not set
-# CONFIG_DM9102 is not set
-CONFIG_EEPRO100=y
-CONFIG_EEPRO100_PM=y
-# CONFIG_LNE390 is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_NE3210 is not set
-# CONFIG_ES3210 is not set
-# CONFIG_8139TOO is not set
-# CONFIG_RTL8129 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_WINBOND_840 is not set
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_NET_POCKET is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-# CONFIG_NET_FC is not set
-# CONFIG_RCPCI is not set
-# CONFIG_SHAPER is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-
-#
-# ATA/IDE/MFM/RLL support
-#
-# CONFIG_IDE is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI support
-#
-# CONFIG_SCSI is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-# CONFIG_I2O_PCI is not set
-# CONFIG_I2O_BLOCK is not set
-# CONFIG_I2O_LAN is not set
-# CONFIG_I2O_SCSI is not set
-# CONFIG_I2O_PROC is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input core support
-#
-# CONFIG_INPUT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-# CONFIG_SERIAL is not set
-# CONFIG_SERIAL_EXTENDED is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_SERIAL_AMBA=y
-CONFIG_SERIAL_INTEGRATOR=y
-CONFIG_SERIAL_AMBA_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
-CONFIG_MOUSE=y
-CONFIG_PSMOUSE=y
-# CONFIG_82C710_MOUSE is not set
-# CONFIG_PC110_PAD is not set
-
-#
-# Joysticks
-#
-# CONFIG_JOYSTICK is not set
-
-#
-# Input core support is needed for joysticks
-#
-# CONFIG_QIC02_TAPE is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_INTEL_RNG is not set
-# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_FTAPE is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# File systems
-#
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_ADFS_FS_RW is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_FAT_FS is not set
-# CONFIG_MSDOS_FS is not set
-# CONFIG_UMSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_RAMFS is not set
-# CONFIG_ISO9660_FS is not set
-# CONFIG_JOLIET is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_NTFS_FS is not set
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-# CONFIG_HPFS_FS is not set
-CONFIG_PROC_FS=y
-# CONFIG_DEVFS_FS is not set
-# CONFIG_DEVFS_MOUNT is not set
-# CONFIG_DEVFS_DEBUG is not set
-CONFIG_DEVPTS_FS=y
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX4FS_RW is not set
-CONFIG_ROMFS_FS=y
-CONFIG_EXT2_FS=y
-# CONFIG_SYSV_FS is not set
-# CONFIG_SYSV_FS_WRITE is not set
-# CONFIG_UDF_FS is not set
-# CONFIG_UDF_RW is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_UFS_FS_WRITE is not set
-
-#
-# Network File Systems
-#
-# CONFIG_CODA_FS is not set
-CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-# CONFIG_NFSD_V3 is not set
-CONFIG_SUNRPC=y
-CONFIG_LOCKD=y
-# CONFIG_SMB_FS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-# CONFIG_NCPFS_NFS_NS is not set
-# CONFIG_NCPFS_OS2_NS is not set
-# CONFIG_NCPFS_SMALLDOS is not set
-# CONFIG_NCPFS_MOUNT_SUBDIR is not set
-# CONFIG_NCPFS_NDS_DOMAINS is not set
-# CONFIG_NCPFS_NLS is not set
-# CONFIG_NCPFS_EXTRAS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-# CONFIG_MSDOS_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_NLS is not set
-
-#
-# Console drivers
-#
-CONFIG_KMI_KEYB=y
-CONFIG_PC_KEYMAP=y
-CONFIG_VGA_CONSOLE=y
-# CONFIG_FB is not set
-
-#
-# Frame-buffer support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB is not set
-
-#
-# Kernel hacking
-#
-CONFIG_FRAME_POINTER=y
-CONFIG_DEBUG_ERRORS=y
-CONFIG_DEBUG_USER=y
-# CONFIG_DEBUG_INFO is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_LL=y
diff -Nru a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c
--- a/arch/i386/kernel/process.c	2004-11-04 20:19:48 -08:00
+++ b/arch/i386/kernel/process.c	2004-11-04 20:19:48 -08:00
@@ -28,7 +28,7 @@
 #include <linux/a.out.h>
 #include <linux/interrupt.h>
 #include <linux/config.h>
-#include <linux/version.h>
+#include <linux/utsname.h>
 #include <linux/delay.h>
 #include <linux/reboot.h>
 #include <linux/init.h>
@@ -230,7 +230,8 @@
 
 	if (regs->xcs & 3)
 		printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp);
-	printk(" EFLAGS: %08lx    %s  (%s)\n",regs->eflags, print_tainted(),UTS_RELEASE);
+	printk(" EFLAGS: %08lx    %s  (%s)\n",
+	       regs->eflags, print_tainted(), system_utsname.release);
 	printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
 		regs->eax,regs->ebx,regs->ecx,regs->edx);
 	printk("ESI: %08lx EDI: %08lx EBP: %08lx",
diff -Nru a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
--- a/arch/i386/kernel/traps.c	2004-11-04 20:19:48 -08:00
+++ b/arch/i386/kernel/traps.c	2004-11-04 20:19:48 -08:00
@@ -25,7 +25,7 @@
 #include <linux/highmem.h>
 #include <linux/kallsyms.h>
 #include <linux/ptrace.h>
-#include <linux/version.h>
+#include <linux/utsname.h>
 #include <linux/kprobes.h>
 
 #ifdef CONFIG_EISA
@@ -218,7 +218,7 @@
 	printk("CPU:    %d\nEIP:    %04x:[<%08lx>]    %s VLI\nEFLAGS: %08lx"
 			"   (%s) \n",
 		smp_processor_id(), 0xffff & regs->xcs, regs->eip,
-		print_tainted(), regs->eflags, UTS_RELEASE);
+		print_tainted(), regs->eflags, system_utsname.release);
 	print_symbol("EIP is at %s\n", regs->eip);
 	printk("eax: %08lx   ebx: %08lx   ecx: %08lx   edx: %08lx\n",
 		regs->eax, regs->ebx, regs->ecx, regs->edx);
diff -Nru a/arch/m32r/Makefile b/arch/m32r/Makefile
--- a/arch/m32r/Makefile	2004-11-04 20:19:48 -08:00
+++ b/arch/m32r/Makefile	2004-11-04 20:19:48 -08:00
@@ -5,7 +5,6 @@
 LDFLAGS		:=
 OBJCOPYFLAGS	:= -O binary -R .note -R .comment -S
 LDFLAGS_vmlinux	:= -e startup_32
-LDFLAGS_BLOB	:= --format binary --oformat elf32-m32r
 
 CFLAGS += -pipe -fno-schedule-insns
 CFLAGS_KERNEL += -mmodel=medium
diff -Nru a/arch/m32r/boot/compressed/Makefile b/arch/m32r/boot/compressed/Makefile
--- a/arch/m32r/boot/compressed/Makefile	2004-11-04 20:19:48 -08:00
+++ b/arch/m32r/boot/compressed/Makefile	2004-11-04 20:19:48 -08:00
@@ -28,9 +28,6 @@
 $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
 	$(call if_changed,gzip)
 
-$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.S FORCE
-	$(CPP) $(EXTRA_AFLAGS) -C -P -I include $< >$@
-
 LDFLAGS_piggy.o := -r --format binary --oformat elf32-m32r-linux -T
 OBJCOPYFLAGS += -R .empty_zero_page
 
diff -Nru a/arch/ppc/boot/lib/Makefile b/arch/ppc/boot/lib/Makefile
--- a/arch/ppc/boot/lib/Makefile	2004-11-04 20:19:48 -08:00
+++ b/arch/ppc/boot/lib/Makefile	2004-11-04 20:19:48 -08:00
@@ -2,9 +2,22 @@
 # Makefile for some libs needed by zImage.
 #
 
-CFLAGS_kbd.o	+= -Idrivers/char
+CFLAGS_kbd.o	:= -Idrivers/char
+CFLAGS_vreset.o := -I$(srctree)/arch/ppc/boot/include
 
-lib-y := $(addprefix ../../../../lib/zlib_inflate/, \
-           infblock.o infcodes.o inffast.o inflate.o inftrees.o infutil.o)
-lib-y += div64.o
+zlib  := infblock.c infcodes.c inffast.c inflate.c inftrees.c infutil.c
+	 
+lib-y += $(zlib:.c=.o) div64.o
 lib-$(CONFIG_VGA_CONSOLE) += vreset.o kbd.o
+
+
+# zlib files needs header from their original place
+EXTRA_CFLAGS += -Ilib/zlib_inflate
+
+quiet_cmd_copy_zlib = COPY    $@
+      cmd_copy_zlib = cat $< > $@
+
+$(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
+	$(call cmd,copy_zlib)
+
+clean-files := $(zlib)
diff -Nru a/arch/ppc64/boot/Makefile b/arch/ppc64/boot/Makefile
--- a/arch/ppc64/boot/Makefile	2004-11-04 20:19:48 -08:00
+++ b/arch/ppc64/boot/Makefile	2004-11-04 20:19:48 -08:00
@@ -118,6 +118,6 @@
 		>> $(obj)/imagesize.c
 
 install: $(CONFIGURE) $(obj)/$(BOOTIMAGE)
-	sh -x $(src)/install.sh "$(KERNELRELEASE)" "$(obj)/$(BOOTIMAGE)" "$(INSTALL_PATH)"
+	sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" "$(obj)/$(BOOTIMAGE)" "$(INSTALL_PATH)"
 
 clean-files := $(addprefix $(objtree)/, $(obj-boot) vmlinux.strip)
diff -Nru a/arch/sparc/Kconfig b/arch/sparc/Kconfig
--- a/arch/sparc/Kconfig	2004-11-04 20:19:48 -08:00
+++ b/arch/sparc/Kconfig	2004-11-04 20:19:48 -08:00
@@ -86,8 +86,8 @@
 	depends on BROKEN
 	---help---
 	  This enables support for systems with more than one CPU. If you have
-	  a system with only one CPU, like most personal computers, say N. If
-	  you have a system with more than one CPU, say Y.
+	  a system with only one CPU, say N. If you have a system with more
+	  than one CPU, say Y.
 
 	  If you say N here, the kernel will run on single and multiprocessor
 	  machines, but will use only one CPU of a multiprocessor machine. If
@@ -95,17 +95,11 @@
 	  singleprocessor machines. On a singleprocessor machine, the kernel
 	  will run faster if you say N here.
 
-	  Note that if you say Y here and choose architecture "586" or
-	  "Pentium" under "Processor family", the kernel will not work on 486
-	  architectures. Similarly, multiprocessor kernels for the "PPro"
-	  architecture may not work on all Pentium based boards.
-
 	  People using multiprocessor machines who say Y here should also say
 	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
 	  Management" code will be disabled if you say Y here.
 
 	  See also the <file:Documentation/smp.txt>,
-	  <file:Documentation/i386/IO-APIC.txt>,
 	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
 	  <http://www.tldp.org/docs.html#howto>.
 
@@ -189,10 +183,10 @@
 	  (/dev/tty0) will still be used as the system console by default, but
 	  you can alter that using a kernel command line option such as
 	  "console=ttyS1". (Try "man bootparam" or see the documentation of
-	  your boot loader (lilo or loadlin) about how to pass options to the
-	  kernel at boot time.)
+	  your boot loader (silo) about how to pass options to the kernel at
+	  boot time.)
 
-	  If you don't have a VGA card installed and you say Y here, the
+	  If you don't have a graphics card installed and you say Y here, the
 	  kernel will automatically use the first serial line, /dev/ttyS0, as
 	  system console.
 
@@ -223,6 +217,7 @@
 config SUN4
 	bool "Support for SUN4 machines (disables SUN4[CDM] support)"
 	depends on !SMP
+	default n
 	help
 	  Say Y here if, and only if, your machine is a sun4. Note that
 	  a kernel compiled with this option will run only on sun4.
@@ -249,7 +244,10 @@
 	  -t openpromfs none /proc/openprom".
 
 	  To compile the /proc/openprom support as a module, choose M here: the
-	  module will be called openpromfs.  If unsure, choose M.
+	  module will be called openpromfs.
+
+	  Only choose N if you know in advance that you will not need to modify
+	  OpenPROM settings on the running system.
 
 source "fs/Kconfig.binfmt"
 
@@ -282,9 +280,9 @@
 
 	  If you have several parallel ports, you can specify which ports to
 	  use with the "lp" kernel command line option.  (Try "man bootparam"
-	  or see the documentation of your boot loader (lilo or loadlin) about
-	  how to pass options to the kernel at boot time.)  The syntax of the
-	  "lp" command line option can be found in <file:drivers/char/lp.c>.
+	  or see the documentation of your boot loader (silo) about how to pass
+	  options to the kernel at boot time.)  The syntax of the "lp" command
+	  line option can be found in <file:drivers/char/lp.c>.
 
 	  If you have more than 8 printers, you need to increase the LP_NO
 	  macro in lp.c and the PARPORT_MAX macro in parport.h.
diff -Nru a/scripts/Makefile.build b/scripts/Makefile.build
--- a/scripts/Makefile.build	2004-11-04 20:19:48 -08:00
+++ b/scripts/Makefile.build	2004-11-04 20:19:48 -08:00
@@ -10,7 +10,7 @@
 # Read .config if it exist, otherwise ignore
 -include .config
 
-include $(obj)/Makefile
+include $(if $(wildcard $(obj)/Kbuild), $(obj)/Kbuild, $(obj)/Makefile)
 
 include scripts/Makefile.lib
 
diff -Nru a/scripts/Makefile.clean b/scripts/Makefile.clean
--- a/scripts/Makefile.clean	2004-11-04 20:19:48 -08:00
+++ b/scripts/Makefile.clean	2004-11-04 20:19:48 -08:00
@@ -7,7 +7,7 @@
 .PHONY: __clean
 __clean:
 
-include $(obj)/Makefile
+include $(if $(wildcard $(obj)/Kbuild), $(obj)/Kbuild, $(obj)/Makefile)
 
 # Figure out what we need to build from the various variables
 # ==========================================================================
diff -Nru a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
--- a/scripts/basic/fixdep.c	2004-11-04 20:19:48 -08:00
+++ b/scripts/basic/fixdep.c	2004-11-04 20:19:48 -08:00
@@ -225,10 +225,10 @@
 	signed char *p, *q;
 
 	for (; m < end; m++) {
-		if (*m == INT_CONF) { p = (char *) m  ; goto conf; }
-		if (*m == INT_ONFI) { p = (char *) m-1; goto conf; }
-		if (*m == INT_NFIG) { p = (char *) m-2; goto conf; }
-		if (*m == INT_FIG_) { p = (char *) m-3; goto conf; }
+		if (*m == INT_CONF) { p = (signed char *) m  ; goto conf; }
+		if (*m == INT_ONFI) { p = (signed char *) m-1; goto conf; }
+		if (*m == INT_NFIG) { p = (signed char *) m-2; goto conf; }
+		if (*m == INT_FIG_) { p = (signed char *) m-3; goto conf; }
 		continue;
 	conf:
 		if (p > map + len - 7)
diff -Nru a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
--- a/scripts/gen_initramfs_list.sh	2004-11-04 20:19:48 -08:00
+++ b/scripts/gen_initramfs_list.sh	2004-11-04 20:19:48 -08:00
@@ -37,6 +37,18 @@
 	return 0
 }
 
+print_mtime() {
+	local argv1="$1"
+	local my_mtime="0"
+
+	if [ -e "${argv1}" ]; then
+		my_mtime=$(find "${argv1}" -printf "%T@\n" | sort -r | head -n 1)
+	fi
+	
+	echo "# Last modified: ${my_mtime}"
+	echo
+}
+
 parse() {
 	local location="$1"
 	local name="${location/${srcdir}//}"
@@ -77,16 +89,19 @@
 	return 0
 }
 
-if [ -z $1 ]; then
+if [ -z "$1" ]; then
 	simple_initramfs
-elif [ -f $1 ]; then
-	cat $1
-elif [ -d $1 ]; then
+elif [ -f "$1" ]; then
+	print_mtime "$1"
+	cat "$1"
+elif [ -d "$1" ]; then
 	srcdir=$(echo "$1" | sed -e 's://*:/:g')
 	dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" 2>/dev/null)
 
 	# If $dirlist is only one line, then the directory is empty
 	if [  "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then
+		print_mtime "$1"
+		
 		echo "${dirlist}" | \
 		while read x; do
 			parse ${x}
diff -Nru a/scripts/kallsyms.c b/scripts/kallsyms.c
--- a/scripts/kallsyms.c	2004-11-04 20:19:48 -08:00
+++ b/scripts/kallsyms.c	2004-11-04 20:19:48 -08:00
@@ -132,7 +132,17 @@
 		_sinittext = s->addr;
 	else if (strcmp(str, "_einittext") == 0)
 		_einittext = s->addr;
-	else if (toupper(s->type) == 'A' || toupper(s->type) == 'U' ||
+	else if (toupper(s->type) == 'A')
+	{
+		/* Keep these useful absolute symbols */
+		if (strcmp(str, "__kernel_syscall_via_break") &&
+		    strcmp(str, "__kernel_syscall_via_epc") &&
+		    strcmp(str, "__kernel_sigtramp") &&
+		    strcmp(str, "__gp"))
+			return -1;
+
+	}
+	else if (toupper(s->type) == 'U' ||
 		 is_arm_mapping_symbol(str))
 		return -1;
 
diff -Nru a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
--- a/scripts/kconfig/Makefile	2004-11-04 20:19:48 -08:00
+++ b/scripts/kconfig/Makefile	2004-11-04 20:19:48 -08:00
@@ -38,7 +38,12 @@
 	$< -m arch/$(ARCH)/Kconfig
 
 defconfig: $(obj)/conf
+ifeq ($(KBUILD_DEFCONFIG),)
 	$< -d arch/$(ARCH)/Kconfig
+else
+	@echo *** Default configuration is based on '$(KBUILD_DEFCONFIG)'
+	$(Q)$< -D arch/$(ARCH)/configs/$(KBUILD_DEFCONFIG) arch/$(ARCH)/Kconfig
+endif
 
 %_defconfig: $(obj)/conf
 	$(Q)$< -D arch/$(ARCH)/configs/$@ arch/$(ARCH)/Kconfig
@@ -65,11 +70,9 @@
 #         Based on GTK which needs to be installed to compile it
 # object files used by all kconfig flavours
 
-libkconfig-objs := zconf.tab.o
-
 hostprogs-y	:= conf mconf qconf gconf
-conf-objs	:= conf.o  libkconfig.so
-mconf-objs	:= mconf.o libkconfig.so
+conf-objs	:= conf.o  zconf.tab.o
+mconf-objs	:= mconf.o zconf.tab.o
 
 ifeq ($(MAKECMDGOALS),xconfig)
 	qconf-target := 1
@@ -88,7 +91,7 @@
 gconf-objs	:= gconf.o kconfig_load.o
 endif
 
-clean-files	:= libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \
+clean-files	:= lkc_defs.h qconf.moc .tmp_qtcheck \
 		   .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c
 
 # generated files seem to need this to find local include files
diff -Nru a/scripts/kernel-doc b/scripts/kernel-doc
--- a/scripts/kernel-doc	2004-11-04 20:19:48 -08:00
+++ b/scripts/kernel-doc	2004-11-04 20:19:48 -08:00
@@ -105,10 +105,7 @@
 # enums and typedefs. Instead of the function name you must write the name 
 # of the declaration;  the struct/union/enum/typedef must always precede 
 # the name. Nesting of declarations is not supported. 
-# Use the argument mechanism to document members or constants. In 
-# structs and unions you must declare one member per declaration 
-# (comma-separated members are not allowed -  the parser does not support 
-# this).
+# Use the argument mechanism to document members or constants.
 # e.g.
 # /**
 #  * struct my_struct - short description
@@ -455,7 +452,10 @@
     print "<h2>".$args{'type'}." ".$args{'struct'}."</h2>\n";
     print "<b>".$args{'type'}." ".$args{'struct'}."</b> {<br>\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	$type = $args{'parametertypes'}{$parameter};
 	if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) {
 	    # pointer-to-function
@@ -471,10 +471,13 @@
     print "<h3>Members</h3>\n";
     print "<dl>\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	print "<dt><b>".$parameter."</b>\n";
 	print "<dd>";
-	output_highlight($args{'parameterdescs'}{$parameter});
+	output_highlight($args{'parameterdescs'}{$parameter_name});
     }
     print "</dl>\n";
     output_section_html(@_);
@@ -510,10 +513,13 @@
     print "<h3>Arguments</h3>\n";
     print "<dl>\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	print "<dt><b>".$parameter."</b>\n";
 	print "<dd>";
-	output_highlight($args{'parameterdescs'}{$parameter});
+	output_highlight($args{'parameterdescs'}{$parameter_name});
     }
     print "</dl>\n";
     output_section_html(@_);
@@ -605,10 +611,13 @@
     if ($#{$args{'parameterlist'}} >= 0) {
 	print " <variablelist>\n";
 	foreach $parameter (@{$args{'parameterlist'}}) {
+	    my $parameter_name = $parameter;
+	    $parameter_name =~ s/\[.*//;
+
 	    print "  <varlistentry>\n   <term><parameter>$parameter</parameter></term>\n";
 	    print "   <listitem>\n    <para>\n";
 	    $lineprefix="     ";
-	    output_highlight($args{'parameterdescs'}{$parameter});
+	    output_highlight($args{'parameterdescs'}{$parameter_name});
 	    print "    </para>\n   </listitem>\n  </varlistentry>\n";
 	}
 	print " </variablelist>\n";
@@ -647,8 +656,11 @@
     print "  <programlisting>\n";
     print $args{'type'}." ".$args{'struct'}." {\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-	defined($args{'parameterdescs'}{$parameter}) || next;
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+	defined($args{'parameterdescs'}{$parameter_name}) || next;
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	$type = $args{'parametertypes'}{$parameter};
 	if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) {
 	    # pointer-to-function
@@ -668,12 +680,15 @@
 
     print "  <variablelist>\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-      defined($args{'parameterdescs'}{$parameter}) || next;
-      ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+      my $parameter_name = $parameter;
+      $parameter_name =~ s/\[.*//;
+
+      defined($args{'parameterdescs'}{$parameter_name}) || next;
+      ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
       print "    <varlistentry>";
       print "      <term>$parameter</term>\n";
       print "      <listitem><para>\n";
-      output_highlight($args{'parameterdescs'}{$parameter});
+      output_highlight($args{'parameterdescs'}{$parameter_name});
       print "      </para></listitem>\n";
       print "    </varlistentry>\n";
     }
@@ -728,10 +743,13 @@
     print " <title>Constants</title>\n";    
     print "  <variablelist>\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
+      my $parameter_name = $parameter;
+      $parameter_name =~ s/\[.*//;
+
       print "    <varlistentry>";
       print "      <term>$parameter</term>\n";
       print "      <listitem><para>\n";
-      output_highlight($args{'parameterdescs'}{$parameter});
+      output_highlight($args{'parameterdescs'}{$parameter_name});
       print "      </para></listitem>\n";
       print "    </varlistentry>\n";
     }
@@ -842,10 +860,13 @@
 	print "<colspec colwidth=\"8*\">\n";
 	print "<tbody>\n";
 	foreach $parameter (@{$args{'parameterlist'}}) {
+	    my $parameter_name = $parameter;
+	    $parameter_name =~ s/\[.*//;
+
 	    print "  <row><entry align=\"right\"><parameter>$parameter</parameter></entry>\n";
 	    print "   <entry>\n";
 	    $lineprefix="     ";
-	    output_highlight($args{'parameterdescs'}{$parameter});
+	    output_highlight($args{'parameterdescs'}{$parameter_name});
 	    print "    </entry></row>\n";
 	}
 	print " </tbody></tgroup></informaltable>\n";
@@ -909,8 +930,11 @@
 
     print ".SH ARGUMENTS\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
 	print ".IP \"".$parameter."\" 12\n";
-	output_highlight($args{'parameterdescs'}{$parameter});
+	output_highlight($args{'parameterdescs'}{$parameter_name});
     }
     foreach $section (@{$args{'sectionlist'}}) {
 	print ".SH \"", uc $section, "\"\n";
@@ -947,8 +971,11 @@
 
     print ".SH Constants\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
 	print ".IP \"".$parameter."\" 12\n";
-	output_highlight($args{'parameterdescs'}{$parameter});
+	output_highlight($args{'parameterdescs'}{$parameter_name});
     }
     foreach $section (@{$args{'sectionlist'}}) {
 	print ".SH \"$section\"\n";
@@ -971,7 +998,10 @@
     print $args{'type'}." ".$args{'struct'}." {\n";
 
     foreach my $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	print "\n.br\n";
 	$type = $args{'parametertypes'}{$parameter};
 	if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) {
@@ -989,9 +1019,12 @@
 
     print ".SH Arguments\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	print ".IP \"".$parameter."\" 12\n";
-	output_highlight($args{'parameterdescs'}{$parameter});
+	output_highlight($args{'parameterdescs'}{$parameter_name});
     }
     foreach $section (@{$args{'sectionlist'}}) {
 	print ".SH \"$section\"\n";
@@ -1058,7 +1091,10 @@
 
     print "Arguments:\n\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-	print $parameter."\n\t".$args{'parameterdescs'}{$parameter}."\n";
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+	print $parameter."\n\t".$args{'parameterdescs'}{$parameter_name}."\n";
     }
     output_section_text(@_);
 }
@@ -1123,7 +1159,10 @@
     print $args{'type'}." ".$args{'struct'}.":\n\n";
     print $args{'type'}." ".$args{'struct'}." {\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	$type = $args{'parametertypes'}{$parameter};
 	if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) {
 	    # pointer-to-function
@@ -1138,9 +1177,12 @@
 
     print "Members:\n\n";
     foreach $parameter (@{$args{'parameterlist'}}) {
-        ($args{'parameterdescs'}{$parameter} ne $undescribed) || next;
+	my $parameter_name = $parameter;
+	$parameter_name =~ s/\[.*//;
+
+        ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next;
 	print "$parameter\n\t";
-	print $args{'parameterdescs'}{$parameter}."\n";
+	print $args{'parameterdescs'}{$parameter_name}."\n";
     }
     print "\n";
     output_section_text(@_);
@@ -1318,26 +1360,45 @@
 	    $param = $1;
 	    $type = $arg;
 	    $type =~ s/([^\(]+\(\*)$param/$1/;
+	    push_parameter($param, $type, $file);
 	} else {
-	    # evil magic to get fixed array parameters to work
-	    $arg =~ s/(.+\s+)(.+)\[.*/$1* $2/;
-	    my @args = split('\s', $arg);
-	
-	    $param = pop @args;
-	    if ($param =~ m/^(\*+)(.*)/) {
-	        $param = $2;
-		push @args, $1;
-	    } 
-	    elsif ($param =~ m/(.*?)\s*:\s*(\d+)/) {
-	        $param = $1;
-	        push @args, ":$2";
+	    $arg =~ s/\s*:\s*/:/g;
+	    $arg =~ s/\s*\[/\[/g;
+
+	    my @args = split('\s*,\s*', $arg);
+	    if ($args[0] =~ m/\*/) {
+		$args[0] =~ s/(\*+)\s*/ $1/;
+	    }
+	    my @first_arg = split('\s+', shift @args);
+	    unshift(@args, pop @first_arg);
+	    $type = join " ", @first_arg;
+
+	    foreach $param (@args) {
+		if ($param =~ m/^(\*+)\s*(.*)/) {
+		    push_parameter($2, "$type $1", $file);
+		}
+		elsif ($param =~ m/(.*?):(\d+)/) {
+		    push_parameter($1, "$type:$2", $file)
+		}
+		else {
+		    push_parameter($param, $type, $file);
+		}
 	    }
-	    $type = join " ", @args;
 	}
+    }
+}
+
+sub push_parameter($$$) {
+	my $param = shift;
+	my $type = shift;
+	my $file = shift;
+
+	my $param_name = $param;
+	$param_name =~ s/\[.*//;
 
 	if ($type eq "" && $param eq "...")
 	{
-	    $type="...";
+	    $type="";
 	    $param="...";
 	    $parameterdescs{"..."} = "variable arguments";
 	}
@@ -1347,8 +1408,8 @@
 	    $param="void";
 	    $parameterdescs{void} = "no arguments";
 	}
-	if (defined $type && $type && !defined $parameterdescs{$param}) {
-	    $parameterdescs{$param} = $undescribed;
+	if (defined $type && $type && !defined $parameterdescs{$param_name}) {
+	    $parameterdescs{$param_name} = $undescribed;
 
 	    if (($type eq 'function') || ($type eq 'enum')) {
 	        print STDERR "Warning(${file}:$.): Function parameter ".
@@ -1362,7 +1423,6 @@
 
 	push @parameterlist, $param;
 	$parametertypes{$param} = $type;
-    }
 }
 
 ##
diff -Nru a/scripts/lxdialog/Makefile b/scripts/lxdialog/Makefile
--- a/scripts/lxdialog/Makefile	2004-11-04 20:19:48 -08:00
+++ b/scripts/lxdialog/Makefile	2004-11-04 20:19:48 -08:00
@@ -1,5 +1,9 @@
 HOST_EXTRACFLAGS := -DLOCALE 
+ifeq ($(shell uname),SunOS)
+HOST_LOADLIBES   := -lcurses
+else
 HOST_LOADLIBES   := -lncurses
+endif
 
 ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h))
         HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"
diff -Nru a/scripts/lxdialog/dialog.h b/scripts/lxdialog/dialog.h
--- a/scripts/lxdialog/dialog.h	2004-11-04 20:19:48 -08:00
+++ b/scripts/lxdialog/dialog.h	2004-11-04 20:19:48 -08:00
@@ -26,6 +26,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+#ifdef __sun__
+#define CURS_MACROS
+#endif
 #include CURSES_LOC
 
 /*
diff -Nru a/scripts/mod/modpost.c b/scripts/mod/modpost.c
--- a/scripts/mod/modpost.c	2004-11-04 20:19:48 -08:00
+++ b/scripts/mod/modpost.c	2004-11-04 20:19:48 -08:00
@@ -219,7 +219,7 @@
 	static char line[4096];
 	int skip = 1;
 	size_t len = 0;
-	signed char *p = (char *)file + *pos;
+	signed char *p = (signed char *)file + *pos;
 	char *s = line;
 
 	for (; *pos < size ; (*pos)++)
diff -Nru a/sound/core/info.c b/sound/core/info.c
--- a/sound/core/info.c	2004-11-04 20:19:48 -08:00
+++ b/sound/core/info.c	2004-11-04 20:19:48 -08:00
@@ -28,7 +28,7 @@
 #include <sound/core.h>
 #include <sound/minors.h>
 #include <sound/info.h>
-#include <sound/version.h>
+#include <sound/utsname.h>
 #include <linux/proc_fs.h>
 #include <linux/devfs_fs_kernel.h>
 #include <stdarg.h>
@@ -959,7 +959,7 @@
 
 static void snd_info_version_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	static char *kernel_version = UTS_RELEASE;
+	static char *kernel_version = system_utsname.release;
 
 	snd_iprintf(buffer,
 		    "Advanced Linux Sound Architecture Driver Version " CONFIG_SND_VERSION CONFIG_SND_DATE ".\n"
