| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
|
|
When make -s support were added to filechk to
combination created with make V=1 were not
covered.
Fix it by explicitly cover this case too.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Mike Frysinger <vapier@gentoo.org>
|
|
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
|
The variable CFLAGS is a wellknown variable and the usage by
kbuild may result in unexpected behaviour.
On top of that several people over time has asked for a way to
pass in additional flags to gcc.
This patch replace use of CFLAGS with KBUILD_CFLAGS all over the
tree and enabling one to use:
make CFLAGS=...
to specify additional gcc commandline options.
One usecase is when trying to find gcc bugs but other
use cases has been requested too.
Patch was tested on following architectures:
alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k
Test was simple to do a defconfig build, apply the patch and check
that nothing got rebuild.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
|
The file init/initramfs.c is always compiled and linked in the kernel
vmlinux even when BLK_DEV_RAM and BLK_DEV_INITRD are disabled and the
system isn't using any form of an initramfs or initrd. In this situation
the code is only used to unpack a (static) default initial rootfilesystem.
The current init/initramfs.c code. usr/initramfs_data.o compiles to a size
of ~15 kbytes. Disabling BLK_DEV_RAM and BLK_DEV_INTRD shrinks the kernel
code size with ~60 Kbytes.
This patch avoids compiling in the code and data for initramfs support if
CONFIG_BLK_DEV_INITRD is not defined. Instead of the initramfs code and
data it uses a small routine in init/noinitramfs.c to setup an initial
static default environment for mounting a rootfilesystem later on in the
kernel initialisation process. The new code is: 164 bytes of size.
The patch is separated in two parts:
1) doesn't compile initramfs code when CONFIG_BLK_DEV_INITRD is not set
2) changing all plaforms vmlinux.lds.S files to not reserve an area of
PAGE_SIZE when CONFIG_BLK_DEV_INITRD is not set.
[deweerdt@free.fr: warning fix]
Signed-off-by: Jean-Paul Saman <jean-paul.saman@nxp.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
Revert previous attempts at messing with the linux banner string and
simply use a separate format string for proc.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Acked-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Jean Delvare <khali@linux-fr.org>
Cc: Andrey Borzenkov <arvidjaar@mail.ru>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
compile.h is created super-late in the build. But proc_misc.c want to include
it, and it's generally not sane to have a header file in include/linux be
created at the end of the build: it's either not present or, worse, wrong for
most of the build.
So the patch arranges for compile.h to be built at the start of the build
process. It also consolidates the compile.h rules with those for version.h
and utsname.h, so they all get built together.
I hope. My chances of having got this right are about 2%.
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
utsname information is shown in the linux banner, which also is used for
/proc/version (which can have different utsname values inside a uts
namespaces). this patch makes the varying data arguments and changes the
string to a format string, using those arguments.
Signed-off-by: Herbert Poetzl <herbert@13thfloor.at>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
This patch removes the devfs code from the init/ directory.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
|
From: Matt Mackall <mpm@selenic.com>
Add PREEMPT to UTS_VERSION where enabled as is done for SMP to make
preempt kernels easily identifiable.
Added SMP PREEMPT as comment in compile.h to force it to be
updated when they change (sam).
Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
|
The attached patch makes calibrate_delay() optional. In this architecture, it's
a waste of time since we can predict exactly what it's going to come up with
just by looking at the CPU's hardware clock registers. Thus far, we haven't
seen a board with any clock not dependent on the CPU's clock.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
From: Pratik Solanki <pratik.solanki@timesys.com>
- Fix include path for build.c so that it finds asm/boot.h.
/usr/include/asm/boot.h may not be present when cross-compiling on a
non-Linux machine.
- $(CONFIG_SHELL) instead of sh.
|
|
but the build was confused by the fact that they did share some files.
Move INITRD code from do_mounts_rd.c to new file do_mounts_initrd.c.
|
|
Added a new rule filechk used to check when a generated file
actually is changed. If there is no actual changes the file
is left without updating the timestamp.
When building a kernel from scratch two printouts occurs:
CHK file-to-generate
UPD file-to-generate
The first line tell that kbuild checks the file, second line tell that
the file is being updated (or created).
On successive runs only the first line is printed.
Output is the same in verbose and non-verbose mode.
This replaces the former update-if-changed which has been deleted.
generate-asm-offsets.h has been renamed as well.
All users are updated in next patch.
Output when generating compile.h follow above style
|
|
We don't really have a nice way to say "compile this when CONFIG_FOO
is y, don't otherwise".
Alternatives are:
obj-$(subst m,,$(CONFIG_FOO)) := foo.o
or
obj-$(CONFIG_FOO) := foo.o
obj-m :=
or
obj-y := do_foo.o
do_foo-$(CONFIG_FOO) := foo.o
I chose the last one, though I'm not particularly happy with either.
|
|
into home.transmeta.com:/home/torvalds/v2.5/linux
|
|
For some people (though not me), the '+' indicating that a command will
invoke a sub-make didn't propagated properly, and caused a warning.
Putting the command all into one line should fix that.
Plus some cosmetics and clean up the per_cpu check.
|
|
There's still an #ifdef in there for CONFIG_BLK_DEV_INITRD, but at
some point it just gets too many files, so accept that for now.
There's also a #define BUILD_CRAMDISK in there, which should be either
made a config option or removed...
|
|
Again, just get rid of some #ifdefs by moving MD setup into
its own file which is only compiled when CONFIG_BLK_DEV_MD is set.
|
|
Get rid of a couple scattered #ifdef CONFIG_DEVFS_FS in init/do_mounts.c
by moving the devfs code into its own file and using stubs when it's
not selected.
|
|
Since we'll have to always do module postprocessing shortly, we can as well
get rid of the special cased init/vermagic.o which needed to be compiled
before descending, and instead include the current version magic string
during post processing. For that purpose, the generation of the string is
moved from init/vermagic.c to include/linux/vermagic.h.
People who externally maintain modules will also be happy about that.
|
|
This patch, based on Rusty's implementation, adds a special section
to vmlinux and all modules, which contain the kernel version
string, values of some particularly important config options
(SMP,preempt,proc family) and the gcc version.
When inserting a module, the version string is checked against the
kernel version string and loading is rejected if they don't match.
The version string is actually added to the modules during the
final .ko generation, so that a changed version string does only
cause relinking, not recompilation, which is a major performance
improvement over the old 2.4 way of doing things.
|
|
Makefiles no longer need to include Rules.make, which is currently an
empty file. This patch removes it from the remaining Makefiles, and
removes the empty Rules.make file.
|
|
|
|
parisc builds parisc / parisc64 from arch/parisc, but wants different
strings for uname -m, which it can now provide by overwriting
UTS_MACHINE in arch/parisc/Makefile.
(Matthew Wilcox)
|
|
Alright, so now actually all four phases are converted to new-style,
i.e. we call make -f scripts/Makefile.<phase> which includes the
actual subdir Makefile.
The obvious drawback is some code duplication between the four
scripts/Makefile.<phase>, which could easily be overcome including
shared parts, but since I'm going for maximum performance, I did not
for now.
Rules.make is empty now ;) (Well, not quite, since if it was 0 bytes,
make mrproper would remove it...)
|
|
Including Rules.make after make -C stopped working with the
fixdep changes, so the other code trying to salvage backward
compatibility should go as well.
|
|
|
|
o Move sound/oss file list to sound/oss/Makefile
o Remove files non-existing in the tree (khttp,net/802/submenu)
o scripts/* are handled by scripts makefile
o Do not delete .config*, be more explicit
o Add MC* - files generated by Menuconfig in toplevel dir
|
|
Instead of recurring problems with non-executable permissions on
files in scripts/, just call them as "sh <script>".
|
|
It's gone almost everywhere else already, and will eventually make for
a nicer top-level Makefile.
|
|
HPATH won't work with separate obj/src dirs, since it doesn't specify
if we want to look at source or generated files. Fortunately, most uses
in arch/*/Makefile were superfluous anyway, the others were converted to
explicitly $(srctree) or $(objtree).
Additionally, a bit more of srctree / objtree related cleanup.
|
|
For separate source and object directories, Rules.make needs
to know where the files live.
For all the normal variables, $(obj-[ymn]) etc, it can figure that
out by itself, but for explicit rules to generate files it needs
help.
So there $(obj)/target.o indicates that this file lives in the
object directory, as opposed to $(src)/target.c, which lives in
the source dir.
For now $(obj) = $(src) = ., but convert some Makefiles to it
already.
|
|
by Sam Ravnborg
|
|
Patch by Keith Owens, ported to 2.5.
If the length of $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
exceeds 64 characters it silently corrupts the utsname data, resulting
in garbage for uname -r and problems running the kernel and modules.
Abort if KERNELRELEASE is too long. Truncation is not good enough, it
results in ambiguous /lib/modules/`uname -r` contents.
Ensure that the date/time in uname are always in LANG=C. Users with
other languages report that 8 bit values cause the boot messages to go
haywire.
|
|
We source some scripts, but still pass parameters to them, e.g.
. mk_version_h $@ $(KERNELRELEASE) $(VERSION) ...
This does not work for all kinds of /bin/sh (it does for bash, that's
why I did not notice).
The fix is easy: Just mark the scripts executable and call instead of
source them.
Unfortunately, patch(1) doesn't understand about propagating chmod.
bk does, so changing the tree isn't hard, and we introduce an explicit
chmod a+x executed during the build for propagating this change into
those trees which get "traditionally" patched up.
|
|
Suppress echoing of commands when using "make -s", so that make -s
does indeed have the effect one would expect.
Add a quiet mode, which will print not the entire command but only
one line per rule. To turn it on, use
make KBUILD_VERBOSE=0 vmlinux/whatever
or set KBUILD_VERBOSE=0 in your environment.
For now, the verbose mode is default, which gives you the old behavior
of printing all commands.
The output in quiet mode is based on what Keith Owens' kbuild-2.5 does,
I like, I did not want to invent yet another output format.
|
|
include/linux/compile.h is a generated file, only init/Makefile knows
about it - including it outside of init/* will cause trouble on
parallel builds.
Also, when compile.h already exists when 'make dep' is run, that'll pick
up a dependency on $(TOPDIR)/include/linux/compile.h. So init/Makefile
needs to tell make that this is actually the same file as
../include/linux.compile.h
|
|
FORCE is the de-facto standard name for a prequisite to force
recompilation, so instead of using a mix of 'dummy','FORCE' and
'FORCE_RECOMPILE' use 'FORCE' everywhere.
Also, move figuring out the path relative to the top level dir
into Rules.make, instead of calling an external script.
|
|
There's no good reason to build the objects in init/ explicitly from
the top-level Makefile. Instead, handle init/ like every other
subdir, which also provides the automatic checks for a changed
command line etc.
|