kbuild failed to locate Makefile for external modules.
This brought to my attention how the variables for directories
have different values in different usage scenarios.
Different kbuild usage scenarios:
make - plain make in same directory where kernel source lives
make O= - kbuild is told to store output files in another directory
make M= - building an external module
make O= M= - building an external module with kernel output seperate from src
Value assigned to the different variables:
|$(src) |$(obj) |$(srctree) |$(objtree)
make |reldir to k src |as src |abs path to k src |abs path to k src
make O= |reldir to k src |as src |abs path to k src |abs path to output dir
make M= |abs path to src |as src |abs path to k src |abs path to k src
make O= M= |abs path to src |as src |abs path to k src |abs path to k output
path to kbuild file:
make | $(srctree)/$(src), $(src)
make O= | $(srctree)/$(src)
make M= | $(src)
make O= M= | $(src)
From the table above it can be seen that the only good way to find the
home directory of the kbuild file is to locate the one of the two variants
that is an absolute path. If $(src) is an absolute path (starts with /)
then use it, otherwise prefix $(src) with $(srctree).
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
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>
---
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>
---
Defining clean before including the kbuild file give us knowledge when
the kbuild file is included for cleaning. This is rarey usefull - but in
a corner case in klibc this proved necessary.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
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>
---
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>
---
-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>
---
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>
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>
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>
From: Ryan Anderson <ryan@michonline.com>
When running "make O=something deb-pkg", I get a failure that claims I
haven't configured my kernel (I have). Running it a second time tells
me to run "make mrproper" (include/linux/version.h got built on the
first run)
Original patch from:
From: Ajay Patel <patela@gmail.com>
With modifications from:
Signed-off-By: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
From: Ryan Anderson <ryan@michonline.com>
This pulls the description from the Debian user-mode-linux package, and
puts $version back in the appropriate places for both descriptions.
Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
From: Ryan Anderson <ryan@michonline.com>
Make the deb-pkg build target understand the "um" arch and set up the
package and directory structure to match a mainline-Debian style
user-mode-linux package.
This is primarily so that it stops matching, exactly, the naming
convention used by normal, non-UML kernels generated by this command.
Installing "linux-2.6.11" and "linux-2.6.11", where one is a UML kernel
doesn't do the right thing. This fixes that.
Signed-off-by: Ryan Anderson <ryan@michonline.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
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>
From: Randy Dunlap <rddunlap@osdl.org>
I should not have added init.text test here;
it's more than useless, it actually degrades the output.
Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
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>
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>
Several reports on inconsistent kallsyms data has been caused by the aliased symbols
__sched_text_start and __down to shift places in the output of nm.
The root cause was that on second pass ld aligned __sched_text_start to a 4 byte boundary
which is the function alignment on i386.
sched.text and spinlock.text is now aligned to an 8 byte boundary to make sure they
are aligned to a function alignemnt on most (all?) archs.
Tested by: Paulo Marques <pmarques@grupopie.com>
Tested by: Alexander Stohr <Alexander.Stohr@gmx.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
From: Randy Dunlap <rddunlap@osdl.org>
Reduce noise in 'make buildcheck' that is caused by CONFIG_DEBUG_INFO=y.
Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
From: Matthew Wilcox <matthew@wil.cx>
I inadvertently built a tree as root and then rebuilt it as a user. I
got a lot of prompts ...
mv: overwrite `drivers/char/drm/drm_auth.o', overriding mode 0644?
Using mv -f fixes that.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Current kernel-doc (perl) script generates this warning:
Use of uninitialized value in concatenation (.) or string at scripts/kernel-doc line 1668.
So explicitly check for SRCTREE in the ENV before using it,
and then if it is set, append a '/' to the end of it, otherwise
the SRCTREE + filename can (will) be missing the intermediate '/'.
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
When I recently submitted a Lindent patch, it turned out that my .indent.pro
options were also applied to the tree. This patch directs indent(1) to ignore
the .indent.pro directives and only use options specified on the command
line.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This patch fixes the output of "make help" to fit in a 80 column
screen. Please push upstream as part of your other patches.
Signed-off-by: Yum Rayan <yum.rayan@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Single-file HOSTCC calls added the libraries from $(HOSTLOADLIBES),
but not from $(HOSTLOADLIBES_programname). Multi-file HOSTCC calls do
both.
This patch fixes that inconsistency.
Signed-Off-By: Matthias Urlichs <smurf@debian.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
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>
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>
On ia64, only the EFI (fat) partition is available to boot from. The rpm
needs to install the kernel under /boot/efi to be useable on ia64.
Signed-off-by: Greg Edwards <edwardsg@sgi.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Recently a change in the glibc elf.h header has been introduced causing
modpost to spawn tons of warnings (like the one below) building the kernel
on sparc:
[SNIP]
*** Warning: "current_thread_info_reg" [net/sunrpc/auth_gss/auth_rpcgss.ko] undefined!
*** Warning: "" [net/sunrpc/auth_gss/auth_rpcgss.ko] undefined!
*** Warning: "" [net/sunrpc/auth_gss/auth_rpcgss.ko] undefined!
[SNIP]
Ben Collins discovered that the STT_REGISTERED definition in glibc did change
and that this change needs to be propagated to modpost.
glibc change:
-#define STT_REGISTER 13 /* Global register reserved to app. */
+#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */
I did and tested this simple patch to maintain compatibility with newer (>= 2.3.4)
and older (<= 2.3.2) glibc.
Signed-off-by: Fabio M. Di Nitto <fabbione@fabbione.net>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
It adds tarball packaging, which I prefer for distribution.
Also one of the two blanks after @echo is removed. One seems to be enough :)
Signed-off-by: Jan-Benedict Glaw <jbglaw@lug-owl.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Current assign_irq_vector() will panic if interrupt vectors is running
out. But I think how to handle the case of lack of interrupt vectors
should be handled by the caller of this function. For example, some
PCI devices can raise the interrupt signal via both MSI and I/O
APIC. So even if the driver for these device fails to allocate a
vector for MSI, the driver still has a chance to use I/O APIC based
interrupt. But currently there is no chance for these driver to use
I/O APIC based interrupt because kernel will panic when
assign_irq_vector() fails to allocate interrupt vector.
The following patch changes assign_irq_vector() for ia64 to return
-ENOSPC on error instead of panic (as i386 and x86_64 versions do).
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Description: Replace schedule_timeout() with msleep_interruptible() to
guarantee the task delays as expected.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Acked-by: Dean Nelson <dcn@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
changing CONFIG_LOCALVERSION rebuilds too much, for no appearent reason.
Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Also fix a bug in 32-bit syscall tracing. We forgot to update
this code when we moved over to the convention that all 32-bit
syscall arguments are zero extended by default.
Signed-off-by: David S. Miller <davem@davemloft.net>