Commit graph

310 commits

Author SHA1 Message Date
Paul Smith
4f1933620f kbuild: change kbuild to not rely on incorrect GNU make behavior
The kbuild system takes advantage of an incorrect behavior in GNU make.
Once this behavior is fixed, all files in the kernel rebuild every time,
even if nothing has changed.  This patch ensures kbuild works with both
the incorrect and correct behaviors of GNU make.

For more details on the incorrect behavior, see:

http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html

Changes in this patch:
  - Keep all targets that are to be marked .PHONY in a variable, PHONY.
  - Add .PHONY: $(PHONY) to mark them properly.
  - Remove any $(PHONY) files from the $? list when determining whether
    targets are up-to-date or not.

Signed-off-by: Paul Smith <psmith@gnu.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-03-06 00:09:51 +01:00
Sam Ravnborg
f6ecebd659 kbuild: fix make dir/file.xx when asm symlink is missing
Added a dependency so we do full preparation before trying to build single
file targets. This fixes a case where Andrew Morton did:
	make kernel/sched.o
        rm include/asm
	make kernel/sched.o     -> splat

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-03-05 12:10:58 +01:00
Linus Torvalds
b9a33cebac Linux v2.6.16-rc5 2006-02-26 21:09:35 -08:00
Jan Beulich
c3f9da90b6 kbuild: version.h should depend on .kernelrelease
Rebuilding a previously built tree while using make's -j options from time to
time results in the version.h check running at the same time as the updating
of .kernelrelease, resulting in UTS_RELEASE remaining an empty string (and as
a side effect causing the entire kernel to be rebuilt).

Signed-Off-By: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-22 21:29:27 +01:00
Mattia Dongili
0f558c3334 kbuild: fix a cscope bug (make cscope segfaults)
Workaround a cscope bug where a trailing ':' in VPATH makes it segfault
and let it build the cross-reference succesfully.

VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b
[1]    17555 segmentation fault VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b

Signed-off-by: Mattia Dongili <malattia@linux.it>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 14:27:57 +01:00
Adrian Bunk
e63046630c kbuild: remove a tab from an empty line
Emacs warns if an otherwise empty line starts with a tab.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:21 +01:00
Sam Ravnborg
20a468b513 kbuild: make cc-version available in kbuild files
Move $(CC) support functions to Kbuild.include so they are available
in the kbuild files.
In addition the following was done:
	o as-option documented in Documentation/kbuild/makefiles.txt
	o Moved documentation to new section to match
	  new scope of functions
	o added cc-ifversion used to conditionally select a text string
	  dependent on actual $(CC) version
	o documented cc-ifversion
	o change so Kbuild.include is read before the kbuild file

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:20 +01:00
Sam Ravnborg
a67dc21a38 kbuild: run depmod when installing external modules
Following patch enables depmod support when installing external modules.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:20 +01:00
Sam Ravnborg
fb3cbd2e57 kbuild: avoid stale modules in $(MODVERDIR) for external modules
To avoid stale modules located in $(MODVERDIR) aka .tmp_versions/
always delete the directory when building an external module.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:19 +01:00
Martin Michlmayr
8999257c29 kbuild: Accept various mips sub-types in SUBARCH
uname -m on MIPS can give a number of results, such as mips64.  We
need to add another substitution to the sed call for SUBARCH in the
main Makefile.

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:19 +01:00
Sam Ravnborg
06300b21f4 kbuild: support building individual files for external modules
Support building individual files when dealing with separate modules.
So say you have a module named "foo" which consist of two .o files bar.o
and fun.o.

You can then do:
make -C $KERNELSRC M=`pwd` bar.o
make -C $KERNELSRC M=`pwd` bar.lst
make -C $KERNELSRC M=`pwd` bar.i
make -C $KERNELSRC M=`pwd` /            <= will build all .o files
                                           and link foo.o
make -C $KERNELSRC M=`pwd` foo.ko       <= will build the module
                                           and do the modpost step
					   to create foo.ko

The above will also work if the external module is placed in a
subdirectory using a hirachy of kbuild files.
Thanks to Andreas Gruenbacher <agruen@suse.de> for initial feature
request / bug report.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-02-19 09:51:17 +01:00
Linus Torvalds
bd71c2b174 Linux v2.6.16-rc4 2006-02-17 14:23:45 -08:00
Benjamin LaHaise
36cbbe5eb9 [PATCH] kbuild: revert "fix make -jN with multiple targets with O=..."
Commit 296e0855b0:

    "kbuild: fix make -jN with multiple targets with O=..."

causes a ~95% increase in build time for the kernel.  Before: 4m21s
after: 8m1.403s.  Can we revert this until another approach is found?

Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-15 15:32:21 -08:00
Linus Torvalds
e9bb4c9929 Linux v2.6.16-rc3 2006-02-12 16:27:25 -08:00
Linus Torvalds
eeb059e0a6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-bugfix 2006-02-07 10:01:43 -08:00
Linus Torvalds
826eeb53a6 Linux v2.6.16-rc2 2006-02-02 22:03:08 -08:00
Sam Ravnborg
8c7f75d325 kbuild: fix build with O=..
.kernelrelease was saved in same directory as kernel source also
with make O=...
Make sure we kick in the normal logic to shift to the output directory
when we build .kernelrelease after executing *config.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2006-01-21 12:07:56 +01:00
Linus Torvalds
2664b25051 Linux v2.6.16-rc1 2006-01-16 23:44:47 -08:00
Paul Mundt
cad8244840 [PATCH] sh: Move CPU subtype configuration to its own Kconfig
Currently the CPU subtype options are cluttering up arch/sh/Kconfig somewhat.

Given that, this moves all of that in to its own arch/sh/mm/Kconfig.  Things
like cache configuration are also moved to this new location.

This also adds support for strict CPU tuning on newer cores, which requires
the addition of as-option.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-16 23:15:28 -08:00
Linus Torvalds
9d8d5a284e Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-01-16 11:19:04 -08:00
Sam Ravnborg
df9df036d3 kbuild: fix 'make all install_modules install'
The command 'make all modules_install install' would fail
in a virgin tree - pointing at a non-existing directory under
/lib/modules/xxx

KERNELRELEASE is part of MODLIB and we need to create .kernelrelease
before we can properly evaluate KERNELRELEASE,
Changing MODLIB to the recursively expanded flavor let it pick up
the correct KERNELRELEASE value.

Reported by: "Hemmann, Volker Armin" <volker.armin.hemmann@tu-clausthal.de>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-16 12:46:07 +01:00
Sam Ravnborg
2244cbd8a9 kbuild: create .kernelrelease at *config step
To enable 'make kernelrelease' earlier now create .kernelrelease when
one of the *config targets are used.
Also introduce KERNELVERSION - only user is kconfig.
KERNELVERSION was needed to display kernel version in menuconfig -
KERNELRELEASE is not valid until configuration has completed.
kconfig files modified to use KERNELVERSION.
Bug reported by: Rene Rebe <rene@exactcode.de>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-16 12:12:12 +01:00
Sam Ravnborg
296e0855b0 kbuild: fix make -jN with multiple targets with O=...
The way multiple targets was handled with make O=...
broke because for each high-level target make spawned
a parallel make resulting in a broken build.
Reported by Keith Owens <kaos@ocs.com.au>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-15 20:02:31 +01:00
Paul Mackerras
820a8ce793 powerpc: Make ARCH=powerpc the default for 32-bit ppc
This makes ARCH=powerpc the default on 32-bit powerpc machines,
where uname -m returns ppc, as well as on 64-bit powerpc machines.
Most people who would be likely to build their own kernels on
32-bit powerpc machines would be using powermacs or CHRP machines,
both of which are supported with ARCH=powerpc now.  Embedded ppc
developers whose ports haven't been moved over to arch/powerpc
yet will have to explicitly set ARCH=ppc now.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-15 17:33:52 +11:00
Linus Torvalds
ab396e91bf Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
Fix up some trivial conflicts in {i386|ia64}/Makefile
2006-01-10 08:21:33 -08:00
Adrian Bunk
a58a414fd5 spelling: s/usefull/useful/
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-01-10 00:08:17 +01:00
Sam Ravnborg
4f0210b9c4 kbuild: re-export VERSION, PATCHLEVEL, SUBLEVEL
Eric Sandeen <sandeen@sgi.com> pointed out that it is usefull to have
access to VERSION, PATCHLEVEL, SUBLEVEL in external modules, and gooling
a litte confirmed this.
So re-export them.
Usage within the kernel is still discouraged but possible.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-09 22:48:34 +01:00
Sam Ravnborg
cb58455c48 kbuild: KERNELRELEASE is only re-defined when buiding the kernel
To avoid running setlocalversion as root no longer (re-)define
KERNELRELEASE for each run. With this patch KERNELRELEASE is
only re-read when we do an actual kernel build.
Rationale behind this is "do as little as possible" when executing
make install - as root!

A new file named .kernelrelease is strored in the root of the kernel
tree containing the actual version string.
So when we use do a kernel build the .kernelrelease file will be updated.
But in all other situations it is left as-is.

To make it more visible the kernel now prints out the version being build.
Sample:
Building kernel 2.6.15-g63b794bf-dirty
...
...

The patch also un-exports VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION
since all users of these are anyway broken - and none is left in the
tree.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-09 21:20:34 +01:00
Tore Anderson
50aa88e287 kbuild: ensure mrproper removes .old_version
If the final linking of vmlinux fails, the file .old_version are left
behind.  This patch ensures the mrproper target will remove it if
present.

Signed-off-by: Tore Anderson <tore@fud.no>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-01-08 18:46:49 +01:00
Linus Torvalds
25c862cc9e Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-01-04 16:36:52 -08:00
Linus Torvalds
88026842b0 Linux v2.6.15
Hey, it's fifteen years today since I bought the machine that got Linux
started.  January 2nd is a good date.
2006-01-02 19:21:10 -08:00
Sam Ravnborg
752625cff3 kbuild: always run 'make silentoldconfig' when tree is cleaned
If the file .kconfig.d is missing then make sure to run
'make silentoldconfig', since we have no way to detect if
a Kconfig file has been updated.

-kconfig.d is created by kconfig and is removed as part
of 'make clean' so the situation is likely to occur in reality.

Jan Beulich <JBeulich@novell.com> reported this bug.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-26 23:34:03 +01:00
Samuel Thibault
54e08a2392 kbuild: tags file generation fixup
Here is a fixup for tags file generation, for proper tags of
__releases/__acquires functions.

Signed-off-by: samuel.thibault@ens-lyon.org
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-26 23:19:55 +01:00
John Kacur
f6333eb4e7 kbuild: Add ctags support for function prototypes and external variable declarations
This patch adds function prototypes and external variable declarations
to the set of tag kinds when running ctags. I find this useful when
perusing the kernel. Please apply.

Signed-off-by: John Kacur <jkacur@rogers.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-25 21:29:38 +01:00
Linus Torvalds
f89f5948fc Linux v2.6.15-rc7
Ho ho ho.
2005-12-24 15:47:48 -08:00
Linus Torvalds
df7addbb45 Linux v2.6.15-rc6
Also renamed in honor of Portland being snowed in and everybody sliding
around on the highways like greased pumpkins.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-18 16:36:54 -08:00
Bodo Eggert
9cc5d74c84 kbuild: document INSTALL_MOD_PATH in 'make help'
Signed-Off-By: Bodo Eggert <7eggert@gmx.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-16 23:19:45 +01:00
Adrian Bunk
cb1a7b4df7 [PATCH] kbuild: remove the deprecated check_gcc
check_gcc has been deprecated for quite some time.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-12-16 21:48:02 +01:00
Andreas Schwab
6b6a462c4a [PATCH] KERNELRELEASE depends on CONFIG_LOCALVERSION
Sam Ravnborg <sam@ravnborg.org> writes:

> Author: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
>
>     [PATCH] kbuild: make kernelrelease in unconfigured kernel prints an error
>
>     Do not include .config for target kernelrelease

This is wrong.  KERNELRELEASE depends on CONFIG_LOCALVERSION, thus you
need .config.

Signed-off-by: Andreas Schwab <schwab@suse.de>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-12 08:57:42 -08:00
Linus Torvalds
436b0f76f2 Linux v2.6.15-rc5
Hey, for no other reason than the fact that I'll be off-line for a
week.

Of course, I could force everybody to just use git (and when I'm emperor
of the world, don't think I won't!), but it seems some people want to
just test official releases.  Even if they are just -rc's.

By the time I'm back, Andrew will have fixed all my bugs, and I'll
release it as 2.6.15 and take all the credit.

Mwahahahaaa

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-03 21:10:42 -08:00
Linus Torvalds
5666c0947e Linux v2.6.15-rc4 2005-11-30 22:25:15 -08:00
Linus Torvalds
624f54be20 Linux v2.6.15-rc3 2005-11-28 19:51:27 -08:00
Linus Torvalds
3bedff1d73 Linux v2.6.15-rc2 2005-11-19 19:25:03 -08:00
Paolo 'Blaisorblade' Giarrusso
2ab23c95a0 [PATCH] Kbuild: index asm-$(SUBARCH) headers for UML
In Uml, many definitions are borrowed from underlying subarch headers (with
#include <asm/arch/stuff.h>).  And it has become annoying to keep switching
tag files all time, so by default index the underlying subarch headers too.
Btw, it adds negligible space to the tags file (less than 1M surely, IIRC it
was around 500k over 40M).

Finally, preserve the ALLSOURCE_ARCHS command line option (I hope) - if it is
set, it is used for headers too as before.  But check my construct please, I
didn't test this.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-13 18:14:14 -08:00
Linus Torvalds
cd52d1ee9a Linux v2.6.15-rc1
As per the new release rules: two weeks of merging, and then an -rc1 and
calming down for the next release.
2005-11-11 17:43:36 -08:00
Linus Torvalds
39990b5eb9 ppc64: default build as the merged 'powerpc' architecture
After the last merge of the new unified 'powerpc' architecture, ppc64 no
longer compiles cleanly as a standalone architecture.  Some bits and
pieces still exist as files under the old ppc64 hierarchy, but the old
"ARCH=ppc64" is dead.

So if "uname" says ppc64, that now implies that the default architecture
should be "powerpc".

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-11 14:27:32 -08:00
Linus Torvalds
b8cbfa6924 Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2005-11-10 13:45:34 -08:00
Zachary Amsden
e623a3b808 [PATCH] kbuild: build breaks after -imacros was introduced
I have to revert the recent addition of -imacros to the Makefile to get my
tool chain to build.  Without the change, below, I get:

Note that this looks entirely like a toolchain bug.  Here is the offending command:

[pid 12163] execve("/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0", ["/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0", "-lang-asm", "-nostdinc", "-Iinclude", "-Iinclude/asm-i386/mach-default", "-D__GNUC__=3", "-D__GNUC_MINOR__=2", "-D__GNUC_PATCHLEVEL__=2", "-D__GXX_ABI_VERSION=102", "-D__ELF__", "-Dunix", "-D__gnu_linux__", "-Dlinux", "-D__ELF__", "-D__unix__", "-D__gnu_linux__", "-D__linux__", "-D__unix", "-D__linux", "-Asystem=posix", "-D__NO_INLINE__", "-D__STDC_HOSTED__=1", "-Acpu=i386", "-Amachine=i386", "-Di386", "-D__i386", "-D__i386__", "-D__tune_i386__", "-D__KERNEL__", "-D__ASSEMBLY__", "-isystem", "/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include", "-imacros", "include/linux/autoconf.h", "-MD", "arch/i386/kernel/.entry.o.d", "arch/i386/kernel/entry.S", "-o", "/tmp/ccOlsFJR.s"]

Which should execute properly, I think.  But it does not:

zach-dev:linux-2.6.14-zach-work $ make
  CHK     include/linux/version.h
  CHK     include/linux/compile.h
  CHK     usr/initramfs_list
  AS      arch/i386/kernel/entry.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/tradcpp0: output filename specified twice
make[1]: *** [arch/i386/kernel/entry.o] Error 1
make: *** [arch/i386/kernel] Error 2

gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)

Deprecating the -imacros fixes the build for me.  It does not appear to be a
simple argument overflow problem in trapcpp0, since deprecating all the defines
reproduces the problem as well.  Also, switching -imacros to -include fixes the
problem.

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-11-10 21:49:10 +01:00
Uwe Zeisberger
ac4d5f74a9 [PATCH] kbuild: make kernelrelease in unconfigured kernel prints an error
Do not include .config for target kernelrelease

Signed-off-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-11-09 22:20:01 +01:00
Linus Torvalds
333c47c847 Merge branch 'block-dir' of git://brick.kernel.dk/data/git/linux-2.6-block 2005-11-07 08:32:39 -08:00
Russell King
2dd34b488a [PATCH] kbuild: permanently fix kernel configuration include mess
Include autoconf.h into every kernel compilation via the gcc command line
using -imacros.  This ensures that we have the kernel configuration
included from the start, rather than relying on each file having #include
<linux/config.h> as appropriate.  History has shown that this is something
which is difficult to get right.

Since we now include the kernel configuration automatically, make
configcheck becomes meaningless, so remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-11-06 10:22:04 +01:00
Jens Axboe
3a65dfe8c0 [BLOCK] Move all core block layer code to new block/ directory
drivers/block/ is right now a mix of core and driver parts. Lets move
the core parts to a new top level directory. Al will move the fs/
related block parts to block/ next.

Signed-off-by: Jens Axboe <axboe@suse.de>
2005-11-04 08:43:35 +01:00
Trond Myklebust
406119f49d [PATCH] Ensure that 'make distclean' does not delete files in '.git'
Currently, 'make distclean' causes stgit to barf since it may delete
files in .git/patches.  We really shouldn't allow 'make distclean'
anywhere near .git...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-28 13:57:57 -07:00
Al Viro
af4ca457ea [PATCH] gfp_t: infrastructure
Beginning of gfp_t annotations:

 - -Wbitwise added to CHECKFLAGS
 - old __bitwise renamed to __bitwise__
 - __bitwise defined to either __bitwise__ or nothing, depending on
   __CHECK_ENDIAN__ being defined
 - gfp_t switched from __nocast to __bitwise__
 - force cast to gfp_t added to __GFP_... constants
 - new helper - gfp_zone(); extracts zone bits out of gfp_t value and casts
   the result to int

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-28 08:16:46 -07:00
Linus Torvalds
741b2252a5 Linux v2.6.14
"Better late than never"
2005-10-27 17:02:08 -07:00
Linus Torvalds
93918e9afc Linux v2.6.14-rc5
The -rc4 release was supposed to be the last -rc, but here goes.  The
RCU fixes and the swiotlb changes need an -rc for final testing.
2005-10-19 23:23:05 -07:00
Tom Rini
f9b25fabfd [PATCH] Export RCS_TAR_IGNORE for rpm targets
The variable RCS_TAR_IGNORE is used in scripts/packaging/Makefile, but not
exported from the main Makefile, so it's never used.

This results in the rpm targets being very unhappy in quilted trees.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-19 23:04:30 -07:00
Mark Rustad
39ca371c45 [PATCH] kbuild: Eliminate build error when KALLSYMS not defined
The following build error happens with 2.6.14-rc4 when CONFIG_KALLSYMS is
not defined.  The error message in a fragment of the output was:

  CC      arch/i386/lib/usercopy.o
  AR      arch/i386/lib/lib.a
/bin/sh: line 1: +@: command not found
make[3]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
  CHK     include/linux/compile.h

Signed-off-by: Mark Rustad <mrustad@mac.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-17 17:03:57 -07:00
Linus Torvalds
907a426179 Linux v2.6.14-rc4 2005-10-10 18:19:19 -07:00
Linus Torvalds
1c9426e8a5 Linux v2.6.14-rc3 2005-09-30 14:17:35 -07:00
Linus Torvalds
676d55ae30 Linux v2.6.14-rc2
Avast, ye scurvy land-lubbers! Time to try out a new release.

Arrr!
2005-09-19 20:00:41 -07:00
Linus Torvalds
2f4ba45a75 Linux 2.6.14-rc1
Two weeks after 2.6.13: starting to calm things down.
2005-09-12 20:12:09 -07:00
Sam Ravnborg
5011cdd01b kbuild: fix silentoldconfig with make O=
Al Viro reported that sometimes silentoldconfig failed because
output directory was missing.
So create it unconditionally before executing conf

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-11 22:32:57 +02:00
Sam Ravnborg
5bb7826900 kbuild: rename prepare to archprepare to fix dependency chain
When introducing the generic asm-offsets.h support the dependency
chain for the prepare targets was changed. All build scripts expecting
include/asm/asm-offsets.h to be made when using the prepare target would broke.
With the limited number of prepare targets left in arch Makefiles
the trivial solution was to introduce a new arch specific target: archprepare

The dependency chain looks like this now:

prepare
  |
  +--> prepare0
         |
         +--> archprepare
                |
		+--> scripts_basic
                +--> prepare1
                       |
                       +---> prepare2
                               |
                               +--> prepare3

So prepare 3 is processed before prepare2 etc.
This guaantees that the asm symlink, version.h, scripts_basic
are all updated before archprepare is processed.

prepare0 which build the asm-offsets.h file will need the
actions performed by archprepare.

The head target is now named prepare, because users scripts will most
likely use that target, but prepare-all has been kept for compatibility.
Updated Documentation/kbuild/makefiles.txt.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-11 22:30:22 +02:00
Sam Ravnborg
8d36a62364 kbuild: fix generic asm-offsets.h support
iThis fixes a bug where the generated asm-offsets.h file was saved in
the source tree even with make O=.
Thanks to Stephen Rothwell <sfr@canb.auug.org.au> for the report.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-10 21:05:36 +02:00
Jan Beulich
cd05e6bdc6 [PATCH] kbuild: fix split-include dependency
Splitting of autoconf.h requires that split-include was built before,
and
needs to be-re-done when split-include changes. This dependency was
previously missing. Additionally, since autoconf.h is (suppoosed to
be)
generated as a side effect of executing config targets, include/linux
should be created prior to running the respective sub-make.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-10 14:21:31 +02:00
Jan Beulich
4e25d8bb95 [PATCH] kbuild: adjust .version updating
In order to maintain a more correct build number, updates to the
version
number should only be commited after a successful link of vmlinux, not
before (so that errors in the link process don't lead to pointless
increments).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-10 14:17:45 +02:00
viro@ZenIV.linux.org.uk
7b49bb9aff [PATCH] kbuild: CF=<arguments> passes arguments to sparse
Allows to add to sparse arguments without mutilating makefiles - just
pass CF=<arguments> and they will be added to CHECKFLAGS.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-10 14:15:37 +02:00
Zach Brown
6d12884259 [PATCH] kbuild: add kernelrelease to 'make help'
Dunno if there was a conscious decision to leave it out, but if you're
happy with adding some help text for it here's a patch against 2.6.13-mm1..

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-10 14:13:36 +02:00
Sam Ravnborg
86feeaa812 kbuild: full dependency check on asm-offsets.h
Building asm-offsets.h has been moved to a seperate Kbuild file
located in the top-level directory. This allow us to share the
functionality across the architectures.

The old rules in architecture specific Makefiles will die
in subsequent patches.

Furhtermore the usual kbuild dependency tracking is now used
when deciding to rebuild asm-offsets.s. So we no longer risk
to fail a rebuild caused by asm-offsets.c dependencies being touched.

With this common rule-set we now force the same name across
all architectures. Following patches will fix the rest.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-09-09 19:28:28 +02:00
Linus Torvalds
ef88b7dba2 Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2005-09-06 00:35:51 -07:00
Matt Mackall
0216f86daf [PATCH] kbuild: fix make clean damaging hg repos
Running 'make clean' was quietly deleting files in Mercurial kernel
repositories matching '.*.d', which was corrupting the tags portions of the
repository.  Spotted and fixed by several people.

Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-05 00:05:37 -07:00
Benjamin LaHaise
5bbe6ab938 [PATCH] new name for 2.6.14
We've had Woozy Numbat for a while now.  Here's an updated name care of
Jeff Garzik and myself.

Signed-off-by: Benjamin LaHaise <bcrl@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-29 10:40:08 -07:00
Linus Torvalds
02b3e4e2d7 Linux v2.6.13 2005-08-28 16:41:01 -07:00
Linus Torvalds
0572e3da3f Linux v2.6.13-rc7
Too many changes to release a final 2.6.13.
2005-08-23 20:39:14 -07:00
Ryan Anderson
aaebf43320 [PATCH] kbuild: automatically append a short string to the version based upon the git commit
If CONFIG_AUTO_LOCALVERSION is set, the user is using a git-based tree, and the
current HEAD is not referred to by any tags in .git/refs/tags/, append -g and
the first 8 characters of the commit to the version string.  This makes it
easier to use git-bisect, and/or to do a daily build, without trampling on your
older, working builds, or accidentally setting up conflicting sets of modules.

Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-08-10 21:11:23 +02:00
Linus Torvalds
6fc32179de Linux 2.6.13-rc6
Last (?) -rc, partly brought on by the aic7xxx performance fixes (ie get
them tested in an -rc release before the real 2.6.13).
2005-08-07 11:18:56 -07:00
Linus Torvalds
9a351e30d7 Linux v2.6.13-rc5
Ok, let's get it right this time
2005-08-01 21:45:48 -07:00
Linus Torvalds
6395352334 Linux 2.6.13-rc4 2005-07-28 15:44:44 -07:00
Sam Ravnborg
66d609ec8a kbuild: fix make TAGS (for emacs use)
From: bongiojp@clarkson.edu <Jeremy Bongio>
make TAGS does not make source code tags for emacs. It instead
returns an error than "etags -" isn't valid. The problem is
easily remedied.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-28 23:11:34 +02:00
Sam Ravnborg
72ba47c1b2 kbuild: silence mystery message
During last phase of the build the following message were displayed:
/bin/sh: +@: command not found

This message appears due to slightly changed semantics
of cmd and if_changed_rule.
The easy fix was to insert a dummy command first in rule_ksym_ld.
The alternative was to redo part of this processing in the top-level
Makefile - a volatile area that I try to avoid.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-27 11:39:37 +02:00
Sam Ravnborg
23a45e2c0a kbuild: pass less variables to second make invocation when using make O=...
make exports all variables assigned on the command-line, so no need to pass
them explicit.
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=4725

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-27 09:12:07 +02:00
Sam Ravnborg
e579d351b4 kbuild: KBUILD_VERBOSE was exported twice
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=4727

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-27 08:10:10 +02:00
Sam Ravnborg
2a69147034 kbuild: fix make O=...
kbuild failed to locate Kbuild.include.
Teach kbuild how to find Kbuild files when using make O=...

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-25 20:26:04 +00:00
Sam Ravnborg
8ec4b4ff1c kbuild: introduce Kbuild.include
Kbuild.include is a placeholder for definitions originally present in
both the top-level Makefile and scripts/Makefile.build.
There were a slight difference in the filechk definition, so the most videly
used version was kept and usr/Makefile was adopted for this syntax.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-25 20:10:36 +00:00
Sam Ravnborg
7c6b155fb4 kbuild: drop descend - converting existing users
There was only two users left of descend. Fix them so they
use $(clean)= and $(build)=.
Drop definition of descend.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-25 12:51:08 +00:00
Sam Ravnborg
43af5f2335 kbuild: drop -Wundef from HOSTCFLAGS for now
-Wundef caused warnings in the bison generated code in kconfig.
Updating to a newer bison (1.875d) did not fix it. The alternatives
was to correct the autogenerated code or drop -Wundef.
For now -Wundef is dropped from HOSTCFLAGS.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
2005-07-25 12:40:34 +00:00
Olaf Hering
3c521e06fa [PATCH] kbuild: add -Wundef to global CFLAGS
A recent change to the aic scsi driver removed two defines to detect
endianness. cpp handles undefined strings as 0. As a result, the test turned
into #if 0 == 0 and the wrong code was selected.
Adding -Wundef to global CFLAGS will catch such errors.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-21 21:45:47 +00:00
Tom Rini
ce454d4d72 [PATCH] kbuild: When checking depmod version, redirect stderr
When running depmod to check for the correct version number, extra
output we don't need to see, such as "depmod: QM_MODULES: Function not
implemented" may show up.  Redirect stderr to /dev/null as the version
information that we do care about comes to stdout.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-17 21:00:22 +00:00
Sam Ravnborg
946dc121d7 kbuild: fix make O=... build
It fixes the following error:

make[1]: *** No rule to make target `include/asm', needed by `arch/alpha/kernel/asm-offsets.s'.  Stop.

Reported by:
From: Jan Dittmer <j.dittmer@portrix.net>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-14 20:28:49 +00:00
Sam Ravnborg
d80e224609 kbuild: Don't fail if include/asm symlink exists
From: Andreas Gruenbacher <agruen@suse.de>

We're having the following situation: There are user-space applications
that include kernel headers directly. With a completely unconfigured
/usr/src/linux tree, including most headers fails because essential
files are not there:

	include/asm
	include/linux/autoconf.h
	include/linux/version.h

So we create these files. On the other hand, we want to use
/usr/src/linux as read-only source for building kernels or additional
modules. Now when building a kernel with a separate output directory
(O=), there is a check in the main makefile for the include/asm symlink.
There is no real need for this check: if we ensure that
$(objdir)/include/asm is always created as the patch does,
$(srctree)/include/asm becomes irrelevant.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-14 20:22:39 +00:00
Sam Ravnborg
33bc25eae4 kbuild: Add target debug_kallsyms
From: Keith Owens <kaos@ocs.com.au>

Make it easier to generate maps for debugging kallsyms problems.
debug_kallsyms is only a debugging target so no help or silent mode.

Signed-off-by: Keith Owens <kaos@ocs.com.au>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-14 20:19:08 +00:00
Ian Campbell
a0674e88d9 [PATCH] kbuild: allow cscope to index multiple architectures
I have a single source tree which I cross compile for a couple of
different architectures using ARHC=foo O=blah etc.

The existing cscope target is very handy but only indexes the current
$(ARCH), which is a pain since inevitably I'm interested in the other
one at any given time ;-). This patch allows me to pass a list of
architectures for cscope to index. e.g.
	make ALLSOURCE_ARCHS="i386 arm" cscope

This change also works for etags etc, and I presume it is just as useful
there.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-13 22:07:04 +00:00
Karl Hegbloom
acbef459a6 [PATCH] kbuild: make 'cscope -q' play well with cscope.el
I tried the Linux Makefile 'make cscope' target, and found that the
generated database is not compatible with 'cscope.el' under XEmacs.
The thing is that 'cscope.el' does not allow setting the command line
options to the 'cscope' commands it runs, and it errors with a message
about the options not matching the ones used to generate the index.

It turns out the cscope designers already thought of this.  The
options can be written into the "cscope.files".  The included patch
moves the "-q" and "-k" options from the 'cmd_cscope' to the
'cmd_cscope-file', echoing them into the top of the files listing.

Now the index is generated with the "-q" option, and when 'cscope.el'
performs it's search, it uses that argument as well.  Lookups are fast
and everyone is happy.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2005-07-13 21:45:57 +00:00
Linus Torvalds
c32511e271 Linux 2.6.13-rc3
Yeah, this time hopefully I'm not confusing the version
numbers. The last release was -rc2, _this_ is -rc3.
2005-07-12 21:46:46 -07:00
Sam Ravnborg
155ad605b3 [PATCH] kbuild: build a single module using 'make dir/module.ko'
Using the syntax:
make dir/module.ko

kbuild now allows one to build a module including the final link stage.
This is usefull when one only wants to compile a single module and thus do
not have to wait until a full kernel has finished compiling.  Tested by:
randy_dunlap <rdunlap@xenotime.net>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-07 18:23:36 -07:00
George Anzinger
f182ae6261 [PATCH] kbuild: build TAGS problem with O=
make O=/dir TAGS

  fails with:

    MAKE   TAGS
  find: security/selinux/include: No such file or directory
  find: include: No such file or directory
  find: include/asm-i386: No such file or directory
  find: include/asm-generic: No such file or directory

  The problem is in this line:
  ifeq ($(KBUILD_OUTPUT),)

KBUILD_OUTPUT is not defined (ever) after make reruns itself.  This line is
used in the TAGS, tags, and cscope makes.

Signed-off-by: George Anzinger <george@mvista.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-07 18:23:36 -07:00
Linus Torvalds
a18bcb7450 Linux v2.6.13-rc3 2005-07-05 20:46:33 -07:00
Linus Torvalds
4c91aedb75 Linux v2.6.13-rc1
Ok, a lot of things were pending after the 2.6.12 release, let's try to
start calming things down again.
2005-06-28 22:57:29 -07:00
Alexey Dobriyan
ae67cd643e [PATCH] Makefile: s/gcc-option/cc-option/
Fixes http://bugme.osdl.org/show_bug.cgi?id=4726

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-25 16:24:37 -07:00
Matthias Urlichs
0030cbf06c [PATCH] Turn off sibling call optimization w/ frame pointers
Frame pointers are supposed to enable debuggers to reliably tell where a
call comes from.  That is defeated by GCC's sibling call optimization (aka
tail recursion elimination).

This patch turns this optimization off when compiling with frame pointers.

Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23 09:45:30 -07:00
Linus Torvalds
9ee1c939d1 Linux 2.6.12 2005-06-17 12:48:29 -07:00
Linus Torvalds
7cef5677ef Linux 2.6.12-rc6
Getting ready for the real release..
2005-06-06 08:22:29 -07:00
Linus Torvalds
2a24ab628a Linux 2.6.12-rc5 2005-05-24 20:31:20 -07:00
Rik van Riel
e8f5bdb02c [PATCH] Makefile include path ordering
The arch Makefile may override the include path order, which is used by Xen
(and UML?) to make sure include/asm-xen is searched before
include/asm-i386.

The Makefile change to 2.6.12-rc4 made the top Makefile always override the
value specified by the arch Makefile.  This trivial patch makes the Xen
kernel compile again.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-17 07:59:19 -07:00
Linus Torvalds
88d7bd8cb9 Linux v2.6.12-rc4 2005-05-06 22:20:31 -07:00
Emanuele Giaquinta
efcd5e3ab0 [PATCH] Makefile: fix for compatibility with *emacs ctags
I've noticed that, starting from linux-2.6.12-rc1, in the top Makefile the
"cmd_tags" variable has been changed in a way incompatible with *emacs
ctags.  Since the "--extra" option exists only in "exuberant ctags", it
should be included in the CTAGSF shell variable.

Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-01 08:59:15 -07:00
Sam Ravnborg
e8e6993178 [PATCH] kbuild: Set NOSTDINC_FLAGS late to speed up compile (a little)
Move definition of NOSTDINC_FLAGS below inclusion of arch Makefile, so
any arch specific settings to $(CC) takes effect before looking up the
compiler include directory.

The previous solution that replaced ':=' with '=' caused gcc to be
invoked one additional time for each directory visited.

This decreases kernel compile time with 0.1 second (3.6 -> 3.5 seconds) when
running make on a fully built kernel

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30 16:51:42 -07:00
Linus Torvalds
a2755a80f4 Linux v2.6.12-rc3
Releasing this will also make "git" the official source control
thing. Here's to hoping for the best.
2005-04-20 16:24:21 -07:00
Linus Torvalds
1da177e4c3 Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
2005-04-16 15:20:36 -07:00