Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
This commit is contained in:
commit
57d1c91fa6
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -10,6 +10,7 @@
|
||||||
*.a
|
*.a
|
||||||
*.s
|
*.s
|
||||||
*.ko
|
*.ko
|
||||||
|
*.so
|
||||||
*.mod.c
|
*.mod.c
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -18,6 +18,7 @@ In this document you will find information about:
|
||||||
=== 5. Include files
|
=== 5. Include files
|
||||||
--- 5.1 How to include files from the kernel include dir
|
--- 5.1 How to include files from the kernel include dir
|
||||||
--- 5.2 External modules using an include/ dir
|
--- 5.2 External modules using an include/ dir
|
||||||
|
--- 5.3 External modules using several directories
|
||||||
=== 6. Module installation
|
=== 6. Module installation
|
||||||
--- 6.1 INSTALL_MOD_PATH
|
--- 6.1 INSTALL_MOD_PATH
|
||||||
--- 6.2 INSTALL_MOD_DIR
|
--- 6.2 INSTALL_MOD_DIR
|
||||||
|
@ -344,6 +345,45 @@ directory and therefore needs to deal with this in their kbuild file.
|
||||||
Note that in the assignment there is no space between -I and the path.
|
Note that in the assignment there is no space between -I and the path.
|
||||||
This is a kbuild limitation: there must be no space present.
|
This is a kbuild limitation: there must be no space present.
|
||||||
|
|
||||||
|
--- 5.3 External modules using several directories
|
||||||
|
|
||||||
|
If an external module does not follow the usual kernel style but
|
||||||
|
decide to spread files over several directories then kbuild can
|
||||||
|
support this too.
|
||||||
|
|
||||||
|
Consider the following example:
|
||||||
|
|
||||||
|
|
|
||||||
|
+- src/complex_main.c
|
||||||
|
| +- hal/hardwareif.c
|
||||||
|
| +- hal/include/hardwareif.h
|
||||||
|
+- include/complex.h
|
||||||
|
|
||||||
|
To build a single module named complex.ko we then need the following
|
||||||
|
kbuild file:
|
||||||
|
|
||||||
|
Kbuild:
|
||||||
|
obj-m := complex.o
|
||||||
|
complex-y := src/complex_main.o
|
||||||
|
complex-y += src/hal/hardwareif.o
|
||||||
|
|
||||||
|
EXTRA_CFLAGS := -I$(src)/include
|
||||||
|
EXTRA_CFLAGS += -I$(src)src/hal/include
|
||||||
|
|
||||||
|
|
||||||
|
kbuild knows how to handle .o files located in another directory -
|
||||||
|
although this is NOT reccommended practice. The syntax is to specify
|
||||||
|
the directory relative to the directory where the Kbuild file is
|
||||||
|
located.
|
||||||
|
|
||||||
|
To find the .h files we have to explicitly tell kbuild where to look
|
||||||
|
for the .h files. When kbuild executes current directory is always
|
||||||
|
the root of the kernel tree (argument to -C) and therefore we have to
|
||||||
|
tell kbuild how to find the .h files using absolute paths.
|
||||||
|
$(src) will specify the absolute path to the directory where the
|
||||||
|
Kbuild file are located when being build as an external module.
|
||||||
|
Therefore -I$(src)/ is used to point out the directory of the Kbuild
|
||||||
|
file and any additional path are just appended.
|
||||||
|
|
||||||
=== 6. Module installation
|
=== 6. Module installation
|
||||||
|
|
||||||
|
|
1
arch/x86_64/ia32/.gitignore
vendored
1
arch/x86_64/ia32/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
vsyscall*.so
|
|
|
@ -60,7 +60,7 @@ MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off).");
|
||||||
#define dprintk(level, args...) \
|
#define dprintk(level, args...) \
|
||||||
do { \
|
do { \
|
||||||
if ((debug & level)) { \
|
if ((debug & level)) { \
|
||||||
printk("%s: %s(): ", __stringify(KBUILD_MODNAME), \
|
printk("%s: %s(): ", KBUILD_MODNAME, \
|
||||||
__FUNCTION__); \
|
__FUNCTION__); \
|
||||||
printk(args); } \
|
printk(args); } \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
|
@ -19,7 +19,7 @@ extern int budget_debug;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define dprintk(level,args...) \
|
#define dprintk(level,args...) \
|
||||||
do { if ((budget_debug & level)) { printk("%s: %s(): ",__stringify(KBUILD_MODNAME), __FUNCTION__); printk(args); } } while (0)
|
do { if ((budget_debug & level)) { printk("%s: %s(): ", KBUILD_MODNAME, __FUNCTION__); printk(args); } } while (0)
|
||||||
|
|
||||||
struct budget_info {
|
struct budget_info {
|
||||||
char *name;
|
char *name;
|
||||||
|
|
|
@ -34,7 +34,7 @@ static int debug = 0; /* insmod parameter */
|
||||||
module_param(debug, int, 0644);
|
module_param(debug, int, 0644);
|
||||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||||
#define dprintk(args...) \
|
#define dprintk(args...) \
|
||||||
do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0)
|
do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0)
|
||||||
|
|
||||||
#define SWITCH 0x00
|
#define SWITCH 0x00
|
||||||
#define LEVEL_ADJUST 0x02
|
#define LEVEL_ADJUST 0x02
|
||||||
|
|
|
@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */
|
||||||
module_param(debug, int, 0644);
|
module_param(debug, int, 0644);
|
||||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||||
#define dprintk(args...) \
|
#define dprintk(args...) \
|
||||||
do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0)
|
do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0)
|
||||||
|
|
||||||
#define TEA6415C_NUM_INPUTS 8
|
#define TEA6415C_NUM_INPUTS 8
|
||||||
#define TEA6415C_NUM_OUTPUTS 6
|
#define TEA6415C_NUM_OUTPUTS 6
|
||||||
|
|
|
@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */
|
||||||
module_param(debug, int, 0644);
|
module_param(debug, int, 0644);
|
||||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||||
#define dprintk(args...) \
|
#define dprintk(args...) \
|
||||||
do { if (debug) { printk("%s: %s()[%d]: ",__stringify(KBUILD_MODNAME), __FUNCTION__, __LINE__); printk(args); } } while (0)
|
do { if (debug) { printk("%s: %s()[%d]: ", KBUILD_MODNAME, __FUNCTION__, __LINE__); printk(args); } } while (0)
|
||||||
|
|
||||||
/* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */
|
/* addresses to scan, found only at 0x4c and/or 0x4d (7-Bit) */
|
||||||
static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END };
|
static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END };
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#ifdef MODULE
|
#ifdef MODULE
|
||||||
#define MODULE_PARAM_PREFIX /* empty */
|
#define MODULE_PARAM_PREFIX /* empty */
|
||||||
#else
|
#else
|
||||||
#define MODULE_PARAM_PREFIX __stringify(KBUILD_MODNAME) "."
|
#define MODULE_PARAM_PREFIX KBUILD_MODNAME "."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MODULE
|
#ifdef MODULE
|
||||||
|
|
|
@ -21,14 +21,14 @@
|
||||||
|
|
||||||
extern unsigned int saa7146_debug;
|
extern unsigned int saa7146_debug;
|
||||||
|
|
||||||
//#define DEBUG_PROLOG printk("(0x%08x)(0x%08x) %s: %s(): ",(dev==0?-1:(dev->mem==0?-1:saa7146_read(dev,RPS_ADDR0))),(dev==0?-1:(dev->mem==0?-1:saa7146_read(dev,IER))),__stringify(KBUILD_MODNAME),__FUNCTION__)
|
//#define DEBUG_PROLOG printk("(0x%08x)(0x%08x) %s: %s(): ",(dev==0?-1:(dev->mem==0?-1:saa7146_read(dev,RPS_ADDR0))),(dev==0?-1:(dev->mem==0?-1:saa7146_read(dev,IER))),KBUILD_MODNAME,__FUNCTION__)
|
||||||
|
|
||||||
#ifndef DEBUG_VARIABLE
|
#ifndef DEBUG_VARIABLE
|
||||||
#define DEBUG_VARIABLE saa7146_debug
|
#define DEBUG_VARIABLE saa7146_debug
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEBUG_PROLOG printk("%s: %s(): ",__stringify(KBUILD_MODNAME),__FUNCTION__)
|
#define DEBUG_PROLOG printk("%s: %s(): ",KBUILD_MODNAME,__FUNCTION__)
|
||||||
#define INFO(x) { printk("%s: ",__stringify(KBUILD_MODNAME)); printk x; }
|
#define INFO(x) { printk("%s: ",KBUILD_MODNAME); printk x; }
|
||||||
|
|
||||||
#define ERR(x) { DEBUG_PROLOG; printk x; }
|
#define ERR(x) { DEBUG_PROLOG; printk x; }
|
||||||
|
|
||||||
|
|
|
@ -171,7 +171,7 @@ static int __init init(void)
|
||||||
/* Prior to 2.6.11, we had a ports param. No longer, but don't break users. */
|
/* Prior to 2.6.11, we had a ports param. No longer, but don't break users. */
|
||||||
static int warn_set(const char *val, struct kernel_param *kp)
|
static int warn_set(const char *val, struct kernel_param *kp)
|
||||||
{
|
{
|
||||||
printk(KERN_INFO __stringify(KBUILD_MODNAME)
|
printk(KERN_INFO KBUILD_MODNAME
|
||||||
": kernel >= 2.6.10 only uses 'ports' for conntrack modules\n");
|
": kernel >= 2.6.10 only uses 'ports' for conntrack modules\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ static int __init init(void)
|
||||||
/* Prior to 2.6.11, we had a ports param. No longer, but don't break users. */
|
/* Prior to 2.6.11, we had a ports param. No longer, but don't break users. */
|
||||||
static int warn_set(const char *val, struct kernel_param *kp)
|
static int warn_set(const char *val, struct kernel_param *kp)
|
||||||
{
|
{
|
||||||
printk(KERN_INFO __stringify(KBUILD_MODNAME)
|
printk(KERN_INFO KBUILD_MODNAME
|
||||||
": kernel >= 2.6.10 only uses 'ports' for conntrack modules\n");
|
": kernel >= 2.6.10 only uses 'ports' for conntrack modules\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,8 +133,8 @@ HOSTCFLAGS_zconf.tab.o := -I$(src)
|
||||||
HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
|
HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
|
||||||
HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
|
HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
|
||||||
|
|
||||||
HOSTLOADLIBES_gconf = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs`
|
HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
|
||||||
HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \
|
HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
|
||||||
-D LKC_DIRECT_LINK
|
-D LKC_DIRECT_LINK
|
||||||
|
|
||||||
$(obj)/qconf.o: $(obj)/.tmp_qtcheck
|
$(obj)/qconf.o: $(obj)/.tmp_qtcheck
|
||||||
|
@ -193,8 +193,8 @@ ifeq ($(gconf-target),1)
|
||||||
|
|
||||||
# GTK needs some extra effort, too...
|
# GTK needs some extra effort, too...
|
||||||
$(obj)/.tmp_gtkcheck:
|
$(obj)/.tmp_gtkcheck:
|
||||||
@if `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --exists`; then \
|
@if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \
|
||||||
if `pkg-config gtk+-2.0 --atleast-version=2.0.0`; then \
|
if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
|
||||||
touch $@; \
|
touch $@; \
|
||||||
else \
|
else \
|
||||||
echo "*"; \
|
echo "*"; \
|
||||||
|
|
|
@ -1,56 +1,22 @@
|
||||||
#!/usr/bin/perl
|
#!/bin/sh
|
||||||
# Copyright 2004 - Ryan Anderson <ryan@michonline.com> GPL v2
|
# Print additional version information for non-release trees.
|
||||||
|
|
||||||
use strict;
|
usage() {
|
||||||
use warnings;
|
echo "Usage: $0 [srctree]" >&2
|
||||||
use Digest::MD5;
|
exit 1
|
||||||
require 5.006;
|
|
||||||
|
|
||||||
if (@ARGV != 1) {
|
|
||||||
print <<EOT;
|
|
||||||
Usage: setlocalversion <srctree>
|
|
||||||
EOT
|
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my ($srctree) = @ARGV;
|
cd "${1:-.}" || usage
|
||||||
chdir($srctree);
|
|
||||||
|
|
||||||
my @LOCALVERSIONS = ();
|
# Check for git and a git repo.
|
||||||
|
if head=`git rev-parse --verify HEAD 2>/dev/null`; then
|
||||||
|
# Do we have an untagged version?
|
||||||
|
if [ "`git name-rev --tags HEAD`" = "HEAD undefined" ]; then
|
||||||
|
printf '%s%s' -g `echo "$head" | cut -c1-8`
|
||||||
|
fi
|
||||||
|
|
||||||
# We are going to use the following commands to try and determine if this
|
# Are there uncommitted changes?
|
||||||
# repository is at a Version boundary (i.e, 2.6.10 vs 2.6.10 + some patches) We
|
if git diff-files | read dummy; then
|
||||||
# currently assume that all meaningful version boundaries are marked by a tag.
|
printf '%s' -git_dirty
|
||||||
# We don't care what the tag is, just that something exists.
|
fi
|
||||||
|
fi
|
||||||
# Git/Cogito store the top-of-tree "commit" in .git/HEAD
|
|
||||||
# A list of known tags sits in .git/refs/tags/
|
|
||||||
#
|
|
||||||
# The simple trick here is to just compare the two of these, and if we get a
|
|
||||||
# match, return nothing, otherwise, return a subset of the SHA-1 hash in
|
|
||||||
# .git/HEAD
|
|
||||||
|
|
||||||
sub do_git_checks {
|
|
||||||
open(H,"<.git/HEAD") or return;
|
|
||||||
my $head = <H>;
|
|
||||||
chomp $head;
|
|
||||||
close(H);
|
|
||||||
|
|
||||||
opendir(D,".git/refs/tags") or return;
|
|
||||||
foreach my $tagfile (grep !/^\.{1,2}$/, readdir(D)) {
|
|
||||||
open(F,"<.git/refs/tags/" . $tagfile) or return;
|
|
||||||
my $tag = <F>;
|
|
||||||
chomp $tag;
|
|
||||||
close(F);
|
|
||||||
return if ($tag eq $head);
|
|
||||||
}
|
|
||||||
closedir(D);
|
|
||||||
|
|
||||||
push @LOCALVERSIONS, "g" . substr($head,0,8);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( -d ".git") {
|
|
||||||
do_git_checks();
|
|
||||||
}
|
|
||||||
|
|
||||||
printf "-%s\n", join("-",@LOCALVERSIONS) if (scalar @LOCALVERSIONS > 0);
|
|
||||||
|
|
|
@ -49,8 +49,6 @@ static struct security_operations capability_ops = {
|
||||||
.vm_enough_memory = cap_vm_enough_memory,
|
.vm_enough_memory = cap_vm_enough_memory,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MY_NAME __stringify(KBUILD_MODNAME)
|
|
||||||
|
|
||||||
/* flag to keep track of how we were registered */
|
/* flag to keep track of how we were registered */
|
||||||
static int secondary;
|
static int secondary;
|
||||||
|
|
||||||
|
@ -67,7 +65,7 @@ static int __init capability_init (void)
|
||||||
/* register ourselves with the security framework */
|
/* register ourselves with the security framework */
|
||||||
if (register_security (&capability_ops)) {
|
if (register_security (&capability_ops)) {
|
||||||
/* try registering with primary module */
|
/* try registering with primary module */
|
||||||
if (mod_reg_security (MY_NAME, &capability_ops)) {
|
if (mod_reg_security (KBUILD_MODNAME, &capability_ops)) {
|
||||||
printk (KERN_INFO "Failure registering capabilities "
|
printk (KERN_INFO "Failure registering capabilities "
|
||||||
"with primary security module.\n");
|
"with primary security module.\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@ -85,7 +83,7 @@ static void __exit capability_exit (void)
|
||||||
return;
|
return;
|
||||||
/* remove ourselves from the security framework */
|
/* remove ourselves from the security framework */
|
||||||
if (secondary) {
|
if (secondary) {
|
||||||
if (mod_unreg_security (MY_NAME, &capability_ops))
|
if (mod_unreg_security (KBUILD_MODNAME, &capability_ops))
|
||||||
printk (KERN_INFO "Failure unregistering capabilities "
|
printk (KERN_INFO "Failure unregistering capabilities "
|
||||||
"with primary module.\n");
|
"with primary module.\n");
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue