01 Jul, 2006
2 commits
-
Minor documentation change on allowing checkers besides sparse
This patch cleans up a couple of mentions of sparse in the inline
toplevel Makefile documentation such that it's clear that other checkers
besides sparse can override CHECK and CHECKFLAGS.Signed-off-by: Dustin Kirkland
Signed-off-by: Sam Ravnborg -
kbuild used $¤(*F to get filename of target without extension.
This was used in several places all over kbuild, but introducing
make -rR broke his for all cases where we specified full path to
target/prerequsite. It is assumed that make -rR disables old style
suffix-rules which is why is suddenly failed.ia64 was impacted by this change because several div* routines in
arch/ia64/lib are build using explicit paths and then kbuild failed.Thanks to David Mosberger-Tang for an explanation
what was the root-cause and for testing on ia64.This patch also fixes two uses of $(*F) in arch/um
Signed-off-by: Sam Ravnborg
27 Jun, 2006
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (40 commits)
kbuild: trivial fixes in Makefile
kbuild: adding symbols in Kconfig and defconfig to TAGS
kbuild: replace abort() with exit(1)
kbuild: support for %.symtypes files
kbuild: fix silentoldconfig recursion
kbuild: add option for stripping modules while installing them
kbuild: kill some false positives from modpost
kbuild: export-symbol usage report generator
kbuild: fix make -rR breakage
kbuild: append -dirty for updated but uncommited changes
kbuild: append git revision for all untagged commits
kbuild: fix module.symvers parsing in modpost
kbuild: ignore make's built-in rules & variables
kbuild: bugfix with initramfs
kbuild: modpost build fix
kbuild: check license compatibility when building modules
kbuild: export-type enhancement to modpost.c
kbuild: add dependency on kernel.release to the package targets
kbuild: `make kernelrelease' speedup
kconfig: KCONFIG_OVERWRITECONFIG
...
25 Jun, 2006
5 commits
-
Signed-off-by: Sam Ravnborg
-
I'm using TAGS generated from "make TAGS" to read the kernel source code.
When I met a ifdef block
#ifdef CONFIG_FOO
...
#endifin the soruce code I would like to know the meaning CONFIG_FOO
to decide whether I should read inside the ifdef block
or not. meaning CONFIG_FOO is well documented in Kconfig.
So it is nice if I can jump to CONFIG_FOO entry in Kconfig
from "#ifdef CONFIG_FOO" with the tag jump.Here is the patch to add symbols in Kconfig and defconfig to TAGS
in "make TAGS" operation.Signed-off-by: Masatake YAMATO
Signed-off-by: Sam Ravnborg -
Here is a patch that adds a new -T option to genksyms for generating dumps of
the type definition that makes up the symbol version hashes. This allows to
trace modversion changes back to what caused them. The dump format is the
name of the type defined, followed by its definition (which is almost C):s#list_head struct list_head { s#list_head * next , * prev ; }
The s#, u#, e#, and t# prefixes stand for struct, union, enum, and typedef.
The exported symbols do not define types, and thus do not have an x# prefix:nfs4_acl_get_whotype int nfs4_acl_get_whotype ( char * , t#u32 )
The symbol type defintion of a single file can be generated with:
make fs/jbd/journal.symtypes
If KBUILD_SYMTYPES is defined, all the *.symtypes of all object files that
export symbols are generated.The single *.symtypes files can be combined into a single file after a kernel
build with a script like the following:for f in $(find -name '*.symtypes' | sort); do
f=${f#./}
echo "/* ${f%.symtypes}.o */"
cat $f
echo
done \
| sed -e '\:UNKNOWN:d' \
-e 's:[,;] }:}:g' \
-e 's:\([[({]\) :\1:g' \
-e 's: \([])},;]\):\1:g' \
-e 's: $::' \
$f \
| awk '
/^.#/ { if (defined[$1] == $0) {
print $1
next
}
defined[$1] = $0
}
{ print }
'When the kernel ABI changes, diffing individual *.symtype files, or the
combined files, against each other will show which symbol changes caused the
ABI changes. This can save a tremendous amount of time.Dump the types that make up modversions
Signed-off-by: Andreas Gruenbacher
Signed-off-by: Sam Ravnborg -
kconfig-fix-config-dependencies causes this:
make CC=cc KBUILD_VERBOSE=1 -C /usr/src/25 SUBDIRS=/home/akpm/NVIDIA-Linux-x86_64-1.0-8762-pkg2/usr/src/nv modules
make -f /usr/src/devel/Makefile silentoldconfig
make -f /usr/src/devel/Makefile silentoldconfig
make -f /usr/src/devel/Makefile silentoldconfigThe basic problem is if we compile external modules, config-targets isn't
set which can cause recursive calls to silentoldconfig to update the
kernel configuration.Bail out and ask the user to update manually.
Signed-off-by: Sam Ravnborg
-
Add option for stripping modules while installing them.
This function adds support for stripping modules while they are being
installed. CONFIG_DEBUG_KERNEL (which will probably become more
popular as developers use kdump) causes the size of the installed
modules to grow by a factor of 9 or so.Some kernel package systems solve this problem by stripping the debug
information from /lib/modules after running "make modules_install",
but that may not work for people who are installing directly into
/lib/modules --- root partitions that were sized to handle 16 megs
worth of modules may not be quite so happy with 145 megs of modules,
so the "make modules_install" never succeeds.This patch allows such users to request modules_install to strip the
modules as they are installed.Signed-off-by: "Theodore Ts'o"
Signed-off-by: Sam Ravnborg
18 Jun, 2006
1 commit
-
Being named "Crazed Snow-Weasel" instills a lot of confidence in this
release, so I'm sure this will be one of the better ones.
10 Jun, 2006
1 commit
-
kbuild does explicitly specify what to do in all cases, and each
time make's built-in rules & variables has been used it has been a bug.
So to speed up things and to avoid the hard-to-debug error situations
ignore the built-in definitions.
If any part of the kernel uses the built-in definitions the build will
just stop there and it should be trivial to fix.Signed-off-by: Sam Ravnborg
09 Jun, 2006
6 commits
-
The binrpm-pkg target uses KERNELRELEASE when generated its .spec file.
When binrpm-pkg was the first build target run in a tree it generated the
.spec before kernel.release so the Version: tag in the .spec was empty.I don't know if this is the best fix, but binrpm-pkg works when we
explicitly build kernel.release before descending into package-dir.Signed-off-by: Zach Brown
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg -
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg -
If you set KCONFIG_OVERWRITECONFIG in environment, Kconfig will not break
symlinks when .config is a symlink to somewhere else.Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg -
This moves the .kernelrelease file into include/config directory. Remove its
generation from the config step, if the config step doesn't leave a proper
.config behind, it triggers a call to silentoldconfig. Instead its generation
can be done via proper dependencies.Signed-off-by: Roman Zippel
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg -
Now that kconfig can load multiple configurations, it becomes simple to
integrate the split config step, by simply comparing the new .config file with
the old auto.conf (and then saving the new auto.conf). A nice side effect is
that this saves a bit of disk space and cache, as no data needs to be read
from or saved into the splitted config files anymore (e.g. include/config is
now 648KB instead of 5.2MB).Signed-off-by: Roman Zippel
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg -
This fixes one of the worst kbuild warts left - the broken dependencies used
to check and regenerate the .config file. This was done via an indirect
dependency and the .config itself had an empty command, which can cause make
not to reread the changed .config file.Instead of this we generate now a new file include/config/auto.conf from
.config, which is used for kbuild and has the proper dependencies. It's also
the main make target now for all files generated during this step (and thus
replaces include/linux/autoconf.h).This also means we can now relax the syntax requirements for the .config file
and we don't have to rewrite it all the time, i.e. silentoldconfig only
writes .config now when it's necessary to keep it in sync with the Kconfig
files and even this can be suppressed by setting the environment variable
KCONFIG_NOSILENTUPDATE, so the update can (and must) be done manually.Signed-off-by: Roman Zippel
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg
06 Jun, 2006
1 commit
25 May, 2006
1 commit
12 May, 2006
1 commit
08 May, 2006
1 commit
-
Change the conditional of the outputmakefile rule to be evaluated entirely
in make, and add a conditional to not touch the generated makefile when e.g.
running 'make install' as root while the build was done as non-root. Also
adjust the comment describing this, and move the message printing and
redirection to mkmakefile.Signed-off-by: Jan Beulich
Signed-off-by: Sam Ravnborg
01 May, 2006
1 commit
-
Remove *.mod files but not .tmp_versions for external builds
When "make install" is run as root, .tmp_versions is re-created and
becomes owned by root. Subsequent "make" run by user fails because
.tmp_versions cannot be removed.Signed-off-by: Pavel Roskin
Signed-off-by: Sam Ravnborg
27 Apr, 2006
1 commit
19 Apr, 2006
1 commit
06 Apr, 2006
2 commits
-
When installing external modules with `make modules_install', the
first thing that happens is a rm -rf of the target directory. This
works only once, and breaks when installing more than one (set of)
external module(s).
With following fix we have the functionality:
- for a in-kernel modules_install the $(MODLIB)/kernel directory will be
deleted before module installation
- for external modules the existing modules will be left as is assuming
one may be building and installign several external modulesSigned-off-by: Andreas Gruenbacher
Signed-off-by: Sam Ravnborg -
kbuild added an extra '/' after the directory - resulting in all
files being rebuild in a subdirectory.Signed-off-by: Sam Ravnborg
05 Apr, 2006
1 commit
-
This fixes single targets build so it now works relaiably in
following cases:
- build with mixed kernel source and output files (make single-target)
- build with separate output directory (make O=.. single-target)
- external module with mixed kernel source and output files
(make M='pwd' single-target)
- external module with separate kernel source and output files
(make O=.. M='pwd' single-target)Signed-off-by: Sam Ravnborg
03 Apr, 2006
1 commit
-
Close of the merge window..
26 Mar, 2006
2 commits
-
gcc should handle this anyways, and it causes problems when
sprintf is turned into strcpy by gcc behind our backs and
the C fallback version of strcpy is actually defining __builtin_strcpyThen drop -ffreestanding from the main Makefile because it isn't
needed anymore and implies -fno-builtin, which is wrong now.
(it was only added for x86-64, so dropping it should be safe)Noticed by Roman Zippel
Cc: Roman Zippel
Signed-off-by: Andi Kleen
Signed-off-by: Linus Torvalds -
* master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild: (46 commits)
kbuild: remove obsoleted scripts/reference_* files
kbuild: fix make help & make *pkg
kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h
Kconfig: remove the CONFIG_CC_ALIGN_* options
kbuild: add -fverbose-asm to i386 Makefile
kbuild: clean-up genksyms
kbuild: Lindent genksyms.c
kbuild: fix genksyms build error
kbuild: in makefile.txt note that Makefile is preferred name for kbuild files
kbuild: replace PHONY with FORCE
kbuild: Fix bug in crc symbol generating of kernel and modules
kbuild: change kbuild to not rely on incorrect GNU make behavior
kbuild: when warning symbols exported twice now tell user this is the problem
kbuild: fix make dir/file.xx when asm symlink is missing
kbuild: in the section mismatch check try harder to find symbols
kbuild: fix section mismatch check for unwind on IA64
kbuild: kill false positives from section mismatch warnings for powerpc
kbuild: kill trailing whitespace in modpost & friends
kbuild: small update of allnoconfig description
kbuild: make namespace.pl CROSS_COMPILE happy
...Trivial conflict in arch/ppc/boot/Makefile manually fixed up
24 Mar, 2006
1 commit
-
As a foundation for reliable stack unwinding, this adds a config option
(available to all architectures except IA64 and those where the module
loader might have problems with the resulting relocations) to enable the
generation of frame unwind information.Signed-off-by: Jan Beulich
Cc: Miles Bader
Cc: "Luck, Tony"
Cc: Ralf Baechle
Cc: Kyle McMartin
Cc: Benjamin Herrenschmidt
Cc: Paul Mackerras
Cc: "David S. Miller"
Cc: Paul Mundt ,
Cc: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
21 Mar, 2006
2 commits
-
The checks performed by scripts/reference_* has been moved to modpost.
Remove the files and their reference in top-level Makefile.Signed-off-by: Sam Ravnborg
-
FORCE was not defined => error.
Use kbuild infrastructure to call down to the relevant
Makefile. This enables us to use the FORCE definition from kbuild.Signed-off-by: Sam Ravnborg
20 Mar, 2006
1 commit
13 Mar, 2006
1 commit
-
I don't see any use case for the CONFIG_CC_ALIGN_* options:
- they are only available if EMBEDDED
- people using EMBEDDED will most likely also enable
CC_OPTIMIZE_FOR_SIZE
- the default for -Os is to disable alignmentIn case someone is doing performance comparisons and discovers that the
default settings gcc chooses aren't good, the only sane thing is to discuss
whether it makes sense to change this, not through offering options to change
this locally.Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: Sam Ravnborg
12 Mar, 2006
1 commit
-
Gaah. Delayed. But all the better for it!
11 Mar, 2006
1 commit
-
Rebuilding a previously built tree while using make's -j option 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
Signed-off-by: Sam Ravnborg
Signed-off-by: Linus Torvalds
09 Mar, 2006
1 commit
-
.PHONY: does not take patterns so use FORCE to achive same effect.
Thanks to "Paul D. Smith" for noticing this.Signed-off-by: Sam Ravnborg
06 Mar, 2006
1 commit
-
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
Signed-off-by: Sam Ravnborg
05 Mar, 2006
1 commit
-
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 -> splatSigned-off-by: Sam Ravnborg
27 Feb, 2006
1 commit