Skip to contentSkip to conversation

kbuild + kconfig: Updates

DISCUSSION Sam Ravnborg 2 participants 13 messages Aug 15, 2004 – Aug 16, 2004

Subsystems (11)
lore
Share & tools
lore
#0 lore raw

A number of kbuild updates and Randy's Kconfig.debug

Most important stuff is:
o Get rid og bogus "has no CRC" when building external modules
o Rename *.lds.s to *.lds (*)
o Allow external modules to use host-progs

(*) The renaming of the *.lds file has been doen to allow the kernel to be build with for example Cygwin.
The major outstanding issue with Cygwin/Solaris are availability of certain .h files for the tools in scripts/* and spread in the tree. Tested patches that allows the tools to be build under Cygwin/Solaris are appreciated.

Patches follows this mail.

Everything pushed to:
bk://linux-sam.bkbits.net/kbuild

Sam

#1 lore raw

kbuild: bogus has no CRC warning

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/15 11:54:27+02:00 [email protected]
# kbuild: Bogus "has no CRC" in external module builds
#

#   From: Pavel Roskin <[email protected]>
#   The recent fixes for the external module build have fixed the major
#   breakage, but they left one annoyance unfixed.  If CONFIG_MODVERSIONS is
#   disabled, a warning is printed for every exported symbol that is has no
#   CRC.  For instance, I see this when compiling the standalone Orinoco
#   driver on Linux 2.6.6-rc3:
#   
#   *** Warning: "__orinoco_down" [/usr/local/src/orinoco/spectrum_cs.ko] has
#   no CRC!
#   *** Warning: "hermes_struct_init" [/usr/local/src/orinoco/spectrum_cs.ko]
#   has no CRC!
#   *** Warning: "free_orinocodev" [/usr/local/src/orinoco/spectrum_cs.ko] has
#   no CRC!
#   [further warnings skipped]
#   
#   I have found that the "-i" option for modpost is used for external builds,
#   whereas the internal modules use "-o".  The "-i" option causes read_dump()
#   in modpost.c to be called.  This function sets "modversions" variable
#   under some conditions that I don't understand.  The comment before the
#   modversions declarations says: "Are we using CONFIG_MODVERSIONS?"

#
# Apparently modpost fails to answer this question. I think it's better to
# use an explicit option rather than a kludge.
#

#   The attached patch adds a new option "-m" that is specified if and only if
#   CONFIG_MODVERSIONS is enabled.  The patch has been successfully tested
#   both with and without CONFIG_MODVERSIONS.
#   
#   Signed-off-by: Sam Ravnborg <[email protected]>
# 
# scripts/mod/modpost.c
#   2004/08/15 11:54:12+02:00 [email protected] +4 -3
#   Do not try to guess modversions - use -m option
# 
# scripts/Makefile.modpost
#   2004/08/15 11:54:12+02:00 [email protected] +2 -1
#   Pass -m option to modpost if CONFIG_MODVERSIONS
# 
diff -Nru a/scripts/Makefile.modpost b/scripts/Makefile.modpost
--- a/scripts/Makefile.modpost	2004-08-15 22:14:34 +02:00
+++ b/scripts/Makefile.modpost	2004-08-15 22:14:34 +02:00
@@ -50,7 +50,8 @@
 # Step 2), invoke modpost
 #  Includes step 3,4
 quiet_cmd_modpost = MODPOST
-      cmd_modpost = scripts/mod/modpost \
+      cmd_modpost = scripts/mod/modpost            \
+        $(if $(CONFIG_MODVERSIONS),-m)             \
 	$(if $(KBUILD_EXTMOD),-i,-o) $(symverfile) \
 	$(filter-out FORCE,$^)
scripts/mod/modpost.c +4 -3
diff -Nru a/scripts/mod/modpost.c b/scripts/mod/modpost.c
@@ -343,7 +343,6 @@
 			crc = (unsigned int) sym->st_value;
 			add_exported_symbol(symname + strlen(CRC_PFX),
 					    mod, &crc);
-			modversions = 1;
 		}
 		break;
 	case SHN_UNDEF:
@@ -649,7 +648,6 @@
 
 		if (!(mod = find_module(modname))) {
 			if (is_vmlinux(modname)) {
-				modversions = 1;
 				have_vmlinux = 1;
 			}
 			mod = new_module(NOFAIL(strdup(modname)));
@@ -696,10 +694,13 @@
 	char *dump_read = NULL, *dump_write = NULL;
 	int opt;
 
-	while ((opt = getopt(argc, argv, "i:o:")) != -1) {
+	while ((opt = getopt(argc, argv, "i:mo:")) != -1) {
 		switch(opt) {
 			case 'i':
 				dump_read = optarg;
+				break;
+			case 'm':
+				modversions = 1;
 				break;
 			case 'o':
 				dump_write = optarg;
#2 lore raw

kbuild: *.lds.s -> *.lds rename. Infrastructure

In reply to Sam Ravnborg

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/15 12:18:07+02:00 [email protected]
# kbuild: Generate *.lds instead of *.lds.s
#

#   When building a kernel on platforms where the filesytem do
#   not distingush between upper and lower case the rule:
#   .S -> .s did not work.
#   In a normal build this is only used for linker scripts.
#   So create a separate rule for .lds files, and use generic cpp flags.

#
# Patch from: Dan Aloni <[email protected]>
# Modified to use cpp flags + added documentation.
#
# Signed-off-by: Sam Ravnborg <[email protected]>
#
# scripts/Makefile.lib
# 2004/08/15 12:17:51+02:00 [email protected] +5 -0
# Add flags to be used for generec preprocessing
#
# scripts/Makefile.build
# 2004/08/15 12:17:51+02:00 [email protected] +8 -0
# Add specific command for preprocessing linker scripts.
#
# arch/i386/kernel/Makefile
# 2004/08/15 12:17:51+02:00 [email protected] +1 -1
# Rename linker script from *lds.s to *.lds
#
# Makefile

#   2004/08/15 12:17:51+02:00 [email protected] +7 -7
#   Renmae linker scripts from *.lds.s to *.lds
#   Set new linker flags

#
# Documentation/kbuild/makefiles.txt
# 2004/08/15 12:17:51+02:00 [email protected] +31 -0
# Documented support for *lds files
#

Documentation/kbuild/makefiles.txt +31 -0
diff -Nru a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
@@ -938,6 +938,37 @@
 	will be displayed with "make KBUILD_VERBOSE=0".
 	
 
+--- 6.8 Preprocessing linker scripts
+
+	When the vmlinux image is build the linker script:
+	arch/$(ARCH)/kernel/vmlinux.lds is used.
+	The script is a preprocessed variant of the file vmlinux.lds.S
+	located in the same directory.
+	kbuild knows .lds file and includes a rule *lds.S -> *lds.
+	
+	Example:
+		#arch/i386/kernel/Makefile
+		always := vmlinux.lds
+	
+		#Makefile
+		export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
+		
+	The assigment to $(always) is used to tell kbuild to build the
+	target: vmlinux.lds.
+	The assignment to $(CPPFLAGS_vmlinux.lds) tell kbuild to use the
+	specified options when building the target vmlinux.lds.
+	
+	When building the *.lds target kbuild used the variakles:
+	CPPFLAGS	: Set in top-level Makefile
+	EXTRA_CPPFLAGS	: May be set in the kbuild makefile
+	CPPFLAGS_$(@F)  : Target specific flags.
+	                  Note that the full filename is used in this
+	                  assignment.
+
+	The kbuild infrastructure for *lds file are used in several
+	architecture specific files.
+
+
 === 7 Kbuild Variables
 
 The top Makefile exports the following variables:
Makefile +7 -7
diff -Nru a/Makefile b/Makefile
@@ -545,7 +545,7 @@
 quiet_cmd_sysmap = SYSMAP 
       cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
 		   
-LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s
+LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds
 
 #	Generate section listing all symbols and add it into vmlinux
 #	It's a three stage process:
@@ -591,13 +591,13 @@
 .tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS)
 	$(call cmd,kallsyms)
 
-.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
+.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds FORCE
 	$(call if_changed_rule,vmlinux__)
 
-.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
+.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds FORCE
 	$(call if_changed_rule,vmlinux__)
 
-.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
+.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds FORCE
 	$(call if_changed_rule,vmlinux__)
 
 endif
@@ -618,13 +618,13 @@
 	$(rule_verify_kallsyms)
 endef
 
-vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
+vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds FORCE
 	$(call if_changed_rule,vmlinux)
 
 #	The actual objects are generated when descending, 
 #	make sure no implicit rule kicks in
 
-$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.s: $(vmlinux-dirs) ;
+$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds: $(vmlinux-dirs) ;
 
 # Handle descending into subdirectories listed in $(vmlinux-dirs)
 # Preset locale variables to speed up the build process. Limit locale
@@ -687,7 +687,7 @@
 #	Leave this as default for preprocessing vmlinux.lds.S, which is now
 #	done in arch/$(ARCH)/kernel/Makefile
 
-export AFLAGS_vmlinux.lds.o += -P -C -U$(ARCH)
+export CPPFLAGS_vmlinux.lds += -P -C -U$(ARCH)
 
 # Single targets
 # ---------------------------------------------------------------------------
arch/i386/kernel/Makefile +1 -1
diff -Nru a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y := head.o init_task.o vmlinux.lds.s
+extra-y := head.o init_task.o vmlinux.lds
 
 obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \
 		ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_i386.o \
scripts/Makefile.build +8 -0
diff -Nru a/scripts/Makefile.build b/scripts/Makefile.build
@@ -219,6 +219,14 @@
 targets += $(real-objs-y) $(real-objs-m) $(lib-y)
 targets += $(extra-y) $(MAKECMDGOALS) $(always)
 
+# Linker scripts preprocessor (.lds.S -> .lds)
+# ---------------------------------------------------------------------------
+quiet_cmd_cpp_lds_S = LDS     $@
+      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ -o $@ $<
+
+%.lds: %.lds.S FORCE
+	$(call if_changed_dep,cpp_lds_S)
+
 # Build the compiled-in targets
 # ---------------------------------------------------------------------------
 
scripts/Makefile.lib +5 -0
diff -Nru a/scripts/Makefile.lib b/scripts/Makefile.lib
@@ -100,6 +100,7 @@
 
 _c_flags       = $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(*F).o)
 _a_flags       = $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$(*F).o)
+_cpp_flags     = $(CPPFLAGS) $(EXTRA_CPPFLAGS) $(CPPFLAGS_$(@F))
 
 # If building the kernel in a separate objtree expand all occurrences
 # of -Idir to -I$(srctree)/dir except for absolute paths (starting with '/').
@@ -107,6 +108,7 @@
 ifeq ($(KBUILD_SRC),)
 __c_flags	= $(_c_flags)
 __a_flags	= $(_a_flags)
+__cpp_flags     = $(_cpp_flags)
 else
 
 # Prefix -I with $(srctree) if it is not an absolute path
@@ -120,6 +122,7 @@
 # FIXME: Replace both with specific CFLAGS* statements in the makefiles
 __c_flags	= $(call addtree,-I$(obj)) $(call flags,_c_flags)
 __a_flags	=                          $(call flags,_a_flags)
+__cpp_flags     =                          $(call flags,_cpp_flags)
 endif
 
 c_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(CPPFLAGS) \
@@ -128,6 +131,8 @@
 
 a_flags        = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(CPPFLAGS) \
 		 $(__a_flags) $(modkern_aflags)
+
+cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(__cpp_flags)
 
 ld_flags       = $(LDFLAGS) $(EXTRA_LDFLAGS)
 
#3 lore raw

kbuild/all archs: Rename all *.lds.s to *.lds

In reply to Sam Ravnborg

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/15 20:21:00+02:00 [email protected]
# kbuild/all archs: Rename *.lds.s to *.lds
#
# For all architectures use the new name for linker definition scripts.
# Based on patch from: Dan Aloni <[email protected]>
#
# Signed-off-by: Sam Ravnborg <[email protected]>
#
# arch/x86_64/kernel/Makefile
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/x86_64/kernel/Makefile-HEAD
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/v850/kernel/Makefile
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/um/kernel/Makefile
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/um/Makefile
# 2004/08/15 20:20:44+02:00 [email protected] +4 -4
# Renamed *.lds.s to *.lds
#
# arch/um/Makefile-skas
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sparc64/kernel/Makefile
# 2004/08/15 20:20:44+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sparc64/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sparc/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sparc/boot/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sh64/boot/compressed/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +3 -3
# Renamed *.lds.s to *.lds
#
# arch/sh/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sh/boot/compressed/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/sh/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/s390/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/ppc64/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/ppc/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/ppc/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/parisc/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/mips/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/mips/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/m68knommu/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/m68k/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/ia64/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +5 -5
# Renamed *.lds.s to *.lds
#
# arch/h8300/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/cris/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/cris/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/arm26/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/arm26/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/arm/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/arm/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#
# arch/alpha/kernel/Makefile
# 2004/08/15 20:20:43+02:00 [email protected] +1 -1
# Renamed *.lds.s to *.lds
#

arch/alpha/kernel/Makefile +1 -1
diff -Nru a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y		:= head.o vmlinux.lds.s
+extra-y		:= head.o vmlinux.lds
 EXTRA_AFLAGS	:= $(CFLAGS)
 EXTRA_CFLAGS	:= -Werror -Wno-sign-compare
 
arch/arm/Makefile +1 -1
diff -Nru a/arch/arm/Makefile b/arch/arm/Makefile
@@ -9,7 +9,7 @@
 
 LDFLAGS_vmlinux	:=-p --no-undefined -X
 LDFLAGS_BLOB	:=--format binary
-AFLAGS_vmlinux.lds.o = -DTEXTADDR=$(TEXTADDR) -DDATAADDR=$(DATAADDR)
+CPPFLAGS_vmlinux.lds = -DTEXTADDR=$(TEXTADDR) -DDATAADDR=$(DATAADDR)
 OBJCOPYFLAGS	:=-O binary -R .note -R .comment -S
 GZFLAGS		:=-9
 #CFLAGS		+=-pipe
arch/arm/kernel/Makefile +1 -1
diff -Nru a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
@@ -26,7 +26,7 @@
 head-y			:= head.o
 obj-$(CONFIG_DEBUG_LL)	+= debug.o
 
-extra-y := $(head-y) init_task.o vmlinux.lds.s
+extra-y := $(head-y) init_task.o vmlinux.lds
 
 # Spell out some dependencies that aren't automatically figured out
 $(obj)/entry-armv.o: 	$(obj)/entry-header.S include/asm-arm/constants.h
arch/arm26/Makefile +1 -1
diff -Nru a/arch/arm26/Makefile b/arch/arm26/Makefile
@@ -9,7 +9,7 @@
 
 LDFLAGS_vmlinux	:=-p -X
 LDFLAGS_BLOB	:=--format binary
-AFLAGS_vmlinux.lds.o = -DTEXTADDR=$(TEXTADDR) -DDATAADDR=$(DATAADDR)
+CPPFLAGS_vmlinux.lds = -DTEXTADDR=$(TEXTADDR) -DDATAADDR=$(DATAADDR)
 OBJCOPYFLAGS	:=-O binary -R .note -R .comment -S
 GZFLAGS		:=-9
 
arch/arm26/kernel/Makefile +1 -1
diff -Nru a/arch/arm26/kernel/Makefile b/arch/arm26/kernel/Makefile
@@ -14,5 +14,5 @@
 obj-$(CONFIG_FIQ)		+= fiq.o
 obj-$(CONFIG_MODULES)		+= armksyms.o
 
-extra-y := init_task.o vmlinux.lds.s
+extra-y := init_task.o vmlinux.lds
 
arch/cris/Makefile +1 -1
diff -Nru a/arch/cris/Makefile b/arch/cris/Makefile
@@ -29,7 +29,7 @@
 
 OBJCOPYFLAGS := -O binary -R .note -R .comment -S
 
-AFLAGS_vmlinux.lds.o = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
+CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
 AFLAGS += -mlinux
 
 CFLAGS := $(CFLAGS) -mlinux -march=$(arch-y) -pipe
arch/cris/kernel/Makefile +1 -1
diff -Nru a/arch/cris/kernel/Makefile b/arch/cris/kernel/Makefile
@@ -3,7 +3,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y	:= vmlinux.lds.s
+extra-y	:= vmlinux.lds
 
 obj-y   := process.o traps.o irq.o ptrace.o setup.o \
 	   time.o sys_cris.o semaphore.o
arch/h8300/kernel/Makefile +1 -1
diff -Nru a/arch/h8300/kernel/Makefile b/arch/h8300/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y := vmlinux.lds.s
+extra-y := vmlinux.lds
 
 obj-y := process.o traps.o ptrace.o ints.o \
 	 sys_h8300.o time.o semaphore.o signal.o \
arch/ia64/kernel/Makefile +5 -5
diff -Nru a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y	:= head.o init_task.o vmlinux.lds.s
+extra-y	:= head.o init_task.o vmlinux.lds
 
 obj-y := acpi.o entry.o efi.o efi_stub.o gate-data.o fsys.o ia64_ksyms.o irq.o irq_ia64.o	\
 	 irq_lsapic.o ivt.o machvec.o pal.o patch.o process.o perfmon.o ptrace.o sal.o		\
@@ -21,25 +21,25 @@
 # The gate DSO image is built using a special linker script.
 targets += gate.so gate-syms.o
 
-extra-y += gate.so gate-syms.o gate.lds.s gate.o
+extra-y := gate.so gate-syms.o gate.lds gate.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
 
-AFLAGS_gate.lds.o += -P -C -U$(ARCH)
+CPPFLAGS_gate.lds := -P -C -U$(ARCH)
 
 quiet_cmd_gate = GATE $@
       cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
 
 GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1
-$(obj)/gate.so: $(obj)/gate.lds.s $(obj)/gate.o FORCE
+$(obj)/gate.so: $(obj)/gate.lds $(obj)/gate.o FORCE
 	$(call if_changed,gate)
 
 $(obj)/built-in.o: $(obj)/gate-syms.o
 $(obj)/built-in.o: ld_flags += -R $(obj)/gate-syms.o
 
 GATECFLAGS_gate-syms.o = -r
-$(obj)/gate-syms.o: $(src)/gate.lds.s $(obj)/gate.o FORCE
+$(obj)/gate-syms.o: $(obj)/gate.lds $(obj)/gate.o FORCE
 	$(call if_changed,gate)
 
 # gate-data.o contains the gate DSO image as data in section .data.gate.
arch/m68k/kernel/Makefile +1 -1
diff -Nru a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile
@@ -7,7 +7,7 @@
 else
   extra-y := sun3-head.o
 endif
-extra-y	+= vmlinux.lds.s
+extra-y	+= vmlinux.lds
 
 obj-y		:= entry.o process.o traps.o ints.o signal.o ptrace.o \
 			sys_m68k.o time.o semaphore.o setup.o m68k_ksyms.o
arch/m68knommu/kernel/Makefile +1 -1
diff -Nru a/arch/m68knommu/kernel/Makefile b/arch/m68knommu/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for arch/m68knommu/kernel.
 #
 
-extra-y := vmlinux.lds.s
+extra-y := vmlinux.lds
 
 obj-y += dma.o entry.o init_task.o m68k_ksyms.o process.o ptrace.o semaphore.o \
 	 setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
arch/mips/Makefile +1 -1
diff -Nru a/arch/mips/Makefile b/arch/mips/Makefile
@@ -643,7 +643,7 @@
 # none has been choosen above.
 #
 
-AFLAGS_vmlinux.lds.o := \
+CPPFLAGS_vmlinux.lds := \
 	-D"LOADADDR=$(load-y)" \
 	-D"JIFFIES=$(JIFFIES)" \
 	-imacros $(srctree)/include/asm-$(ARCH)/sn/mapped_kernel.h
arch/mips/kernel/Makefile +1 -1
diff -Nru a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Linux/MIPS kernel.
 #
 
-extra-y		:= head.o init_task.o vmlinux.lds.s
+extra-y		:= head.o init_task.o vmlinux.lds
 
 obj-y		+= cpu-probe.o branch.o entry.o genex.o irq.o process.o \
 		   ptrace.o reset.o semaphore.o setup.o signal.o syscall.o \
arch/parisc/kernel/Makefile +1 -1
diff -Nru a/arch/parisc/kernel/Makefile b/arch/parisc/kernel/Makefile
@@ -4,7 +4,7 @@
 
 head-y			:= head.o
 head-$(CONFIG_PARISC64)	:= head64.o
-extra-y			:= init_task.o $(head-y) vmlinux.lds.s
+extra-y			:= init_task.o $(head-y) vmlinux.lds
 
 AFLAGS_entry.o	:= -traditional
 AFLAGS_pacache.o := -traditional
arch/ppc/Makefile +1 -1
diff -Nru a/arch/ppc/Makefile b/arch/ppc/Makefile
@@ -73,7 +73,7 @@
 
 all: zImage
 
-AFLAGS_vmlinux.lds.o	:= -Upowerpc
+CPPFLAGS_vmlinux.lds	:= -Upowerpc
 
 # All the instructions talk about "make bzImage".
 bzImage: zImage
arch/ppc/kernel/Makefile +1 -1
diff -Nru a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile
@@ -19,7 +19,7 @@
 extra-$(CONFIG_8xx)		:= head_8xx.o
 extra-$(CONFIG_6xx)		+= idle_6xx.o
 extra-$(CONFIG_POWER4)		+= idle_power4.o
-extra-y				+= vmlinux.lds.s
+extra-y				+= vmlinux.lds
 
 obj-y				:= entry.o traps.o irq.o idle.o time.o misc.o \
 					process.o signal.o ptrace.o align.o \
arch/ppc64/kernel/Makefile +1 -1
diff -Nru a/arch/ppc64/kernel/Makefile b/arch/ppc64/kernel/Makefile
@@ -3,7 +3,7 @@
 #
 
 EXTRA_CFLAGS	+= -mno-minimal-toc
-extra-y		:= head.o vmlinux.lds.s
+extra-y		:= head.o vmlinux.lds
 
 obj-y               :=	setup.o entry.o traps.o irq.o idle.o dma.o \
 			time.o process.o signal.o syscalls.o misc.o ptrace.o \
arch/s390/kernel/Makefile +1 -1
diff -Nru a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile
@@ -10,7 +10,7 @@
 
 extra-$(CONFIG_ARCH_S390_31)	+= head.o 
 extra-$(CONFIG_ARCH_S390X)	+= head64.o 
-extra-y				+= init_task.o vmlinux.lds.s
+extra-y				+= init_task.o vmlinux.lds
 
 obj-$(CONFIG_MODULES)		+= s390_ksyms.o module.o
 obj-$(CONFIG_SMP)		+= smp.o
arch/sh/Makefile +1 -1
diff -Nru a/arch/sh/Makefile b/arch/sh/Makefile
@@ -122,7 +122,7 @@
 
 boot := arch/sh/boot
 
-AFLAGS_vmlinux.lds.o := -traditional
+CPPFLAGS_vmlinux.lds := -traditional
 
 prepare: target_links
 
arch/sh/boot/compressed/Makefile +1 -1
diff -Nru a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
@@ -22,7 +22,7 @@
 CONFIG_BOOT_LINK_OFFSET ?= 0x00800000
 IMAGE_OFFSET := $(shell printf "0x%8x" $$[0x80000000+$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)])
 
-LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds.s
+LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds
 
 $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
 	$(call if_changed,ld)
arch/sh/kernel/Makefile +1 -1
diff -Nru a/arch/sh/kernel/Makefile b/arch/sh/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Linux/SuperH kernel.
 #
 
-extra-y	:= head.o init_task.o vmlinux.lds.s
+extra-y	:= head.o init_task.o vmlinux.lds
 
 obj-y	:= process.o signal.o entry.o traps.o irq.o \
 	ptrace.o setup.o time.o sys_sh.o semaphore.o \
arch/sh64/boot/compressed/Makefile +3 -3
diff -Nru a/arch/sh64/boot/compressed/Makefile b/arch/sh64/boot/compressed/Makefile
@@ -12,7 +12,7 @@
 #
 
 targets		:= vmlinux vmlinux.bin vmlinux.bin.gz \
-		   head.o misc.o cache.o piggy.o vmlinux.lds.o
+		   head.o misc.o cache.o piggy.o vmlinux.lds
 
 EXTRA_AFLAGS	:= -traditional
 
@@ -25,7 +25,7 @@
 ZIMAGE_OFFSET = $(shell printf "0x%8x" $$[$(CONFIG_MEMORY_START)+0x400000+0x10000])
 
 LDFLAGS_vmlinux := -Ttext $(ZIMAGE_OFFSET) -e startup \
-		    -T $(obj)/../../kernel/vmlinux.lds.s \
+		    -T $(obj)/../../kernel/vmlinux.lds \
 		    --no-warn-mismatch
 
 $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
@@ -41,6 +41,6 @@
 LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh64-linux -T
 OBJCOPYFLAGS += -R .empty_zero_page
 
-$(obj)/piggy.o: $(obj)/vmlinux.lds.s $(obj)/vmlinux.bin.gz FORCE
+$(obj)/piggy.o: $(obj)/vmlinux.lds $(obj)/vmlinux.bin.gz FORCE
 	$(call if_changed,ld)
 
arch/sparc/boot/Makefile +1 -1
diff -Nru a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
@@ -37,7 +37,7 @@
 
 BTOBJS := $(HEAD_Y) $(INIT_Y)
 BTLIBS := $(CORE_Y) $(LIBS_Y) $(DRIVERS_Y) $(NET_Y)
-LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds.s $(BTOBJS) \
+LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds $(BTOBJS) \
                   --start-group $(BTLIBS) --end-group \
                   $(kallsyms.o) $(obj)/btfix.o
 
arch/sparc/kernel/Makefile +1 -1
diff -Nru a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y		:= head.o init_task.o vmlinux.lds.s
+extra-y		:= head.o init_task.o vmlinux.lds
 
 EXTRA_AFLAGS	:= -ansi
 
arch/sparc64/Makefile +1 -1
diff -Nru a/arch/sparc64/Makefile b/arch/sparc64/Makefile
@@ -10,7 +10,7 @@
 
 CHECK		:= $(CHECK) -D__sparc__=1 -D__sparc_v9__=1
 
-AFLAGS_vmlinux.lds.o += -Usparc
+CPPFLAGS_vmlinux.lds += -Usparc
 
 CC		:= $(shell if $(CC) -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo $(CC); else echo sparc64-linux-gcc; fi )
 
arch/sparc64/kernel/Makefile +1 -1
diff -Nru a/arch/sparc64/kernel/Makefile b/arch/sparc64/kernel/Makefile
@@ -5,7 +5,7 @@
 EXTRA_AFLAGS := -ansi
 EXTRA_CFLAGS := -Werror
 
-extra-y		:= head.o init_task.o vmlinux.lds.s
+extra-y		:= head.o init_task.o vmlinux.lds
 
 obj-y		:= process.o setup.o cpu.o idprom.o \
 		   traps.o devices.o auxio.o \
arch/um/Makefile +4 -4
diff -Nru a/arch/um/Makefile b/arch/um/Makefile
@@ -77,7 +77,7 @@
 # CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
 
 LINK_TT = -static
-LD_SCRIPT_TT := uml.lds.s
+LD_SCRIPT_TT := uml.lds
 
 ifeq ($(CONFIG_STATIC_LINK),y)
   LINK-y += $(LINK_TT)
@@ -98,12 +98,12 @@
 CONFIG_KERNEL_STACK_ORDER ?= 2
 STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] )
 
-AFLAGS_vmlinux.lds.o = -U$(SUBARCH) \
+CPPFLAGS_vmlinux.lds = -U$(SUBARCH) \
 	-DSTART=$$(($(TOP_ADDR) - $(SIZE))) -DELF_ARCH=$(ELF_ARCH) \
 	-DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
 	-DKERNEL_STACK_SIZE=$(STACK_SIZE)
 
-AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
+CPPFLAGS_$(LD_SCRIPT-y) = $(CPPFLAGS_vmlinux.lds) -P -C -Uum
 
 LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
 
@@ -122,7 +122,7 @@
 # To get a definition of F_SETSIG
 USER_CFLAGS += -D_GNU_SOURCE
 
-CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
+CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds \
 	$(ARCH_DIR)/dyn_link.ld.s $(GEN_HEADERS)
 
 $(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
arch/um/Makefile-skas +1 -1
diff -Nru a/arch/um/Makefile-skas b/arch/um/Makefile-skas
@@ -12,7 +12,7 @@
 MODE_INCLUDE += -I$(TOPDIR)/$(ARCH_DIR)/kernel/skas/include
 
 LINK_SKAS = -Wl,-rpath,/lib 
-LD_SCRIPT_SKAS = dyn.lds.s
+LD_SCRIPT_SKAS = dyn.lds
 
 GEN_HEADERS += $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
 
arch/um/kernel/Makefile +1 -1
diff -Nru a/arch/um/kernel/Makefile b/arch/um/kernel/Makefile
@@ -3,7 +3,7 @@
 # Licensed under the GPL
 #
 
-extra-y := vmlinux.lds.s
+extra-y := vmlinux.lds
 
 obj-y = checksum.o config.o exec_kern.o exitcode.o frame_kern.o frame.o \
 	helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
arch/v850/kernel/Makefile +1 -1
diff -Nru a/arch/v850/kernel/Makefile b/arch/v850/kernel/Makefile
@@ -9,7 +9,7 @@
 # for more details.
 #
 
-extra-y := head.o init_task.o vmlinux.lds.s
+extra-y := head.o init_task.o vmlinux.lds
 
 obj-y += intv.o entry.o process.o syscalls.o time.o semaphore.o setup.o \
 	 signal.o irq.o mach.o ptrace.o bug.o
arch/x86_64/kernel/Makefile +1 -1
diff -Nru a/arch/x86_64/kernel/Makefile b/arch/x86_64/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y 	:= head.o head64.o init_task.o vmlinux.lds.s
+extra-y 	:= head.o head64.o init_task.o vmlinux.lds
 EXTRA_AFLAGS	:= -traditional
 obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o \
 		ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_x86_64.o \
arch/x86_64/kernel/Makefile-HEAD +1 -1
diff -Nru a/arch/x86_64/kernel/Makefile-HEAD b/arch/x86_64/kernel/Makefile-HEAD
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y 	:= head.o head64.o init_task.o vmlinux.lds.s
+extra-y 	:= head.o head64.o init_task.o vmlinux.lds
 EXTRA_AFLAGS	:= -traditional
 obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o \
 		ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_x86_64.o \
#4 lore raw

kbuild: Allow external modules to use host.progs with no warning

In reply to Sam Ravnborg

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/15 21:54:22+02:00 [email protected]
# kbuild: Allow external modules to use host-progs with no warning
#

#   Only warn if $(host-progs) and $(hostptogs-y) are not equal.
#   This allows external modules to use:
#   hostprogs-y := file ...
#   host-progs  := $(hostprogs-y)

#
# This is backwards compatible and will not warn.
#
# Signed-off-by: Sam Ravnborg <[email protected]>
#
# scripts/Makefile.build

#   2004/08/15 21:54:06+02:00 [email protected] +2 -0
#   Only warn if $(host-progs) and $(hostptogs-y) are not equal.
#   This allows external modules to use:
#   hostprogs-y := file ...
#   host-progs := $(hostprogs-y)

#
# This is backwards compatible and will not warn.
#

scripts/Makefile.build +2 -0
diff -Nru a/scripts/Makefile.build b/scripts/Makefile.build
@@ -15,8 +15,10 @@
 include scripts/Makefile.lib
 
 ifdef host-progs
+ifneq ($(hostprogs-y),$(host-progs))
 $(warning kbuild: $(obj)/Makefile - Usage of host-progs is deprecated. Please replace with hostprogs-y!)
 hostprogs-y += $(host-progs)
+endif
 endif
 
 # Do not include host rules unles needed
#5 lore raw

kbuild: Delete unnessesary $(wildcard ...)

In reply to Sam Ravnborg

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/15 21:41:02+02:00 [email protected]
# kbuild: Remove wildcard on KBUILD_OUTPUT
#
# This patch removes unnecessary wildcard on KBUILD_OUTPUT
#
# Signed-off-by: Coywolf Qi Hunt <[email protected]>
# Signed-off-by: Sam Ravnborg <[email protected]>
#
# Makefile
# 2004/08/12 23:09:08+02:00 [email protected] +1 -1
# kbuild: Remove wildcard on KBUILD_OUTPUT
#

Makefile +1 -1
diff -Nru a/Makefile b/Makefile
@@ -102,7 +102,7 @@
 # check that the output directory actually exists
 saved-output := $(KBUILD_OUTPUT)
 KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
-$(if $(wildcard $(KBUILD_OUTPUT)),, \
+$(if $(KBUILD_OUTPUT),, \
      $(error output directory "$(saved-output)" does not exist))
 
 .PHONY: $(MAKECMDGOALS)
#6 lore raw

kconfig: Kconfig.debug

In reply to Sam Ravnborg
Quoted 1 line · Sam Ravnborg

A number of kbuild updates and Randy's Kconfig.debug

Randy already posted his patch so it will
not be included here.

Sam

#7 lore raw
In reply to Sam Ravnborg
Quoted 7 lines · Sam Ravnborg

A number of kbuild updates and Randy's Kconfig.debug

Most important stuff is:
o Get rid og bogus "has no CRC" when building external modules
o Rename *.lds.s to *.lds (*)
o Allow external modules to use host-progs

Quoted 8 lines

(*) The renaming of the *.lds file has been doen to allow the kernel to be build with for example Cygwin.
The major outstanding issue with Cygwin/Solaris are availability of certain .h files for the tools in scripts/* and spread in the tree. Tested patches that allows the tools to be build under Cygwin/Solaris are appreciated.

Patches follows this mail.

Speaking of kbuild, is there any reasonable way to do check-only runs? Simple "set CC et.al. to scripts that will create target and do nothing else" doesn't work for obvious reasons - we have some stuff that really has to be compiled (e.g. empty.c + some arch-dependent files). Same goes for make -n C=1 | grep sparse | ... variants.

Another thing that would be very nice to have: analog of allmodconfig with some options pre-set. Trivial cases can be hanlded by patching Kconfig (basically, adding depends on BROKEN), but IWBN to have something like make allmodconfig PRESET=<file that looks like a subset of .config>...

#8 lore raw
Quoted 6 lines · On Sun, Aug 15, 2004 at 09:42:29PM +0100…

Speaking of kbuild, is there any reasonable way to do check-only runs? Simple "set CC et.al. to scripts that will create target and do nothing else" doesn't work for obvious reasons - we have some stuff that really has to be compiled (e.g. empty.c + some arch-dependent files). Same goes for make -n C=1 | grep sparse | ... variants.

Usage:
make C=2

===== scripts/Makefile.build 1.47 vs edited =====

scripts/Makefile.build +5 -0
@@ -85,6 +85,9 @@
 ifneq ($(KBUILD_CHECKSRC),0)
 quiet_cmd_checksrc = CHECK   $<
       cmd_checksrc = $(CHECK) $(c_flags) $< ;
+  ifeq ($(KBUILD_CHECKSRC),2)      
+    cmd_force_checksrc = $(call cmd,checksrc)
+  endif
 endif
 
 
@@ -182,11 +185,13 @@
 # Built-in and composite module parts
 
 %.o: %.c FORCE
+	$(cmd_force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 
 # Single-part modules are special since we need to mark them in $(MODVERDIR)
 
 $(single-used-m): %.o: %.c FORCE
+	$(cmd_force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)
 

That should do it?
I will push this if you are OK with it.

Quoted 5 lines

Another thing that would be very nice to have: analog of allmodconfig with some options pre-set. Trivial cases can be hanlded by patching Kconfig (basically, adding depends on BROKEN), but IWBN to have something like make allmodconfig PRESET=<file that looks like a subset of .config>...

Agree. Discussed a long time ago if we should introduce preprocessed _defconfig files, but people told me there were too little in common.

IIRC it is possible just to add to a .config file, and then the last assignment will decide.
But I have not tested it since long time ago so I may be wrong.

Sam

#9 lore raw
Quoted 8 lines · Sam Ravnborg

$(single-used-m): %.o: %.c FORCE

scripts/Makefile.build +1 -0
+	$(cmd_force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)

That should do it?
I will push this if you are OK with it.

Uhh... It ends up running sparse *twice* and still runs gcc on every file.

#10 lore raw
Quoted 7 lines · On Mon, Aug 16, 2004 at 09:01:59PM +0100…
Quoted 6 lines · Sam Ravnborg

$(single-used-m): %.o: %.c FORCE

scripts/Makefile.build +1 -0
+	$(cmd_force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)
Quoted 5 lines
Quoted 2 lines

That should do it?
I will push this if you are OK with it.

Uhh... It ends up running sparse *twice* and still runs gcc on every file.

You are supposed to use: make C=2 only on a fully updated tree. Then you will see sparse only being run once, and gcc will not be run because the file is already updated.

That said it should not run sparse twice when a file needs to be updated. Will take another look at it.

PS. Please keep me in cc:.

Sam

#11 lore raw
Quoted 3 lines · Sam Ravnborg
Quoted 3 lines

Uhh... It ends up running sparse *twice* and still runs gcc on every file.

This one should be better.

On the sparse topic. Do you see anything against introducing CHECKFLAGS?
CHECKFLAGS would be assigned the sparse specific flags in arch/*/Makefile.

I see no reason to introduce EXTRA_CHECKFLAGS, CHECKFLAGS_$(F*) as known from CFLAGS, AFLAGS. But I like the split into CHECKFLAGS. That should allow me to do:
make CHECK=my_hacked_sparse C=2

Sam

===== scripts/Makefile.build 1.47 vs edited =====

scripts/Makefile.build +9 -2
@@ -83,8 +83,13 @@
 
 # Linus' kernel sanity checking tool
 ifneq ($(KBUILD_CHECKSRC),0)
-quiet_cmd_checksrc = CHECK   $<
-      cmd_checksrc = $(CHECK) $(c_flags) $< ;
+  ifeq ($(KBUILD_CHECKSRC),2)      
+    quiet_cmd_force_checksrc = CHECK   $<
+          cmd_force_checksrc = $(CHECK) $(c_flags) $< ;
+  else  
+    quiet_cmd_checksrc = CHECK   $<
+          cmd_checksrc = $(CHECK) $(c_flags) $< ;
+  endif
 endif
 
 
@@ -182,11 +187,13 @@
 # Built-in and composite module parts
 
 %.o: %.c FORCE
+	$(call cmd,force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 
 # Single-part modules are special since we need to mark them in $(MODVERDIR)
 
 $(single-used-m): %.o: %.c FORCE
+	$(call cmd,force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)
 
#12 lore raw

kbuild/ia64: Fix breakage in arch/ia64/kernel/Makefile

In reply to Sam Ravnborg

Brown paperbag time :-(
The *.lds changes that I added to ia64 introduced an error. Fix it so ia64 build againg.

Pushed to bk://linux-sam.bkbits.net/kbuild

Sam

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/08/16 16:51:51+02:00 [email protected]
# kbuild/ia64: Fix breakage in arch/ia64/kernel/Makefile
#
# Signed-off-by: Sam Ravnborg <[email protected]>
#
# arch/ia64/kernel/Makefile
# 2004/08/16 16:51:35+02:00 [email protected] +1 -1
# Fix breakage
#

arch/ia64/kernel/Makefile +1 -1
diff -Nru a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile
@@ -21,7 +21,7 @@
 # The gate DSO image is built using a special linker script.
 targets += gate.so gate-syms.o
 
-extra-y := gate.so gate-syms.o gate.lds gate.o
+extra-y += gate.so gate-syms.o gate.lds gate.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31