mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
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
|
||||
*.s
|
||||
*.ko
|
||||
*.so
|
||||
*.mod.c
|
||||
|
||||
#
|
||||
|
@ -18,6 +18,7 @@ In this document you will find information about:
|
||||
=== 5. Include files
|
||||
--- 5.1 How to include files from the kernel include dir
|
||||
--- 5.2 External modules using an include/ dir
|
||||
--- 5.3 External modules using several directories
|
||||
=== 6. Module installation
|
||||
--- 6.1 INSTALL_MOD_PATH
|
||||
--- 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.
|
||||
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
|
||||
|
||||
|
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...) \
|
||||
do { \
|
||||
if ((debug & level)) { \
|
||||
printk("%s: %s(): ", __stringify(KBUILD_MODNAME), \
|
||||
printk("%s: %s(): ", KBUILD_MODNAME, \
|
||||
__FUNCTION__); \
|
||||
printk(args); } \
|
||||
} while (0)
|
||||
|
@ -19,7 +19,7 @@ extern int budget_debug;
|
||||
#endif
|
||||
|
||||
#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 {
|
||||
char *name;
|
||||
|
@ -34,7 +34,7 @@ static int debug = 0; /* insmod parameter */
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||
#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 LEVEL_ADJUST 0x02
|
||||
|
@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||
#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_OUTPUTS 6
|
||||
|
@ -36,7 +36,7 @@ static int debug = 0; /* insmod parameter */
|
||||
module_param(debug, int, 0644);
|
||||
MODULE_PARM_DESC(debug, "Turn on/off device debugging (default:off).");
|
||||
#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) */
|
||||
static unsigned short normal_i2c[] = { I2C_TEA6420_1, I2C_TEA6420_2, I2C_CLIENT_END };
|
||||
|
@ -10,7 +10,7 @@
|
||||
#ifdef MODULE
|
||||
#define MODULE_PARAM_PREFIX /* empty */
|
||||
#else
|
||||
#define MODULE_PARAM_PREFIX __stringify(KBUILD_MODNAME) "."
|
||||
#define MODULE_PARAM_PREFIX KBUILD_MODNAME "."
|
||||
#endif
|
||||
|
||||
#ifdef MODULE
|
||||
|
@ -21,14 +21,14 @@
|
||||
|
||||
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
|
||||
#define DEBUG_VARIABLE saa7146_debug
|
||||
#endif
|
||||
|
||||
#define DEBUG_PROLOG printk("%s: %s(): ",__stringify(KBUILD_MODNAME),__FUNCTION__)
|
||||
#define INFO(x) { printk("%s: ",__stringify(KBUILD_MODNAME)); printk x; }
|
||||
#define DEBUG_PROLOG printk("%s: %s(): ",KBUILD_MODNAME,__FUNCTION__)
|
||||
#define INFO(x) { printk("%s: ",KBUILD_MODNAME); 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. */
|
||||
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");
|
||||
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. */
|
||||
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");
|
||||
return 0;
|
||||
}
|
||||
|
@ -133,8 +133,8 @@ HOSTCFLAGS_zconf.tab.o := -I$(src)
|
||||
HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
|
||||
HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
|
||||
|
||||
HOSTLOADLIBES_gconf = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs`
|
||||
HOSTCFLAGS_gconf.o = `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` \
|
||||
HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
|
||||
HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
|
||||
-D LKC_DIRECT_LINK
|
||||
|
||||
$(obj)/qconf.o: $(obj)/.tmp_qtcheck
|
||||
@ -193,8 +193,8 @@ ifeq ($(gconf-target),1)
|
||||
|
||||
# GTK needs some extra effort, too...
|
||||
$(obj)/.tmp_gtkcheck:
|
||||
@if `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --exists`; then \
|
||||
if `pkg-config gtk+-2.0 --atleast-version=2.0.0`; then \
|
||||
@if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \
|
||||
if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
|
||||
touch $@; \
|
||||
else \
|
||||
echo "*"; \
|
||||
|
@ -1,56 +1,22 @@
|
||||
#!/usr/bin/perl
|
||||
# Copyright 2004 - Ryan Anderson <ryan@michonline.com> GPL v2
|
||||
#!/bin/sh
|
||||
# Print additional version information for non-release trees.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Digest::MD5;
|
||||
require 5.006;
|
||||
|
||||
if (@ARGV != 1) {
|
||||
print <<EOT;
|
||||
Usage: setlocalversion <srctree>
|
||||
EOT
|
||||
exit(1);
|
||||
usage() {
|
||||
echo "Usage: $0 [srctree]" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
my ($srctree) = @ARGV;
|
||||
chdir($srctree);
|
||||
cd "${1:-.}" || usage
|
||||
|
||||
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
|
||||
# repository is at a Version boundary (i.e, 2.6.10 vs 2.6.10 + some patches) We
|
||||
# currently assume that all meaningful version boundaries are marked by a tag.
|
||||
# We don't care what the tag is, just that something exists.
|
||||
|
||||
# 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);
|
||||
# Are there uncommitted changes?
|
||||
if git diff-files | read dummy; then
|
||||
printf '%s' -git_dirty
|
||||
fi
|
||||
fi
|
||||
|
@ -49,8 +49,6 @@ static struct security_operations capability_ops = {
|
||||
.vm_enough_memory = cap_vm_enough_memory,
|
||||
};
|
||||
|
||||
#define MY_NAME __stringify(KBUILD_MODNAME)
|
||||
|
||||
/* flag to keep track of how we were registered */
|
||||
static int secondary;
|
||||
|
||||
@ -67,7 +65,7 @@ static int __init capability_init (void)
|
||||
/* register ourselves with the security framework */
|
||||
if (register_security (&capability_ops)) {
|
||||
/* 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 "
|
||||
"with primary security module.\n");
|
||||
return -EINVAL;
|
||||
@ -85,7 +83,7 @@ static void __exit capability_exit (void)
|
||||
return;
|
||||
/* remove ourselves from the security framework */
|
||||
if (secondary) {
|
||||
if (mod_unreg_security (MY_NAME, &capability_ops))
|
||||
if (mod_unreg_security (KBUILD_MODNAME, &capability_ops))
|
||||
printk (KERN_INFO "Failure unregistering capabilities "
|
||||
"with primary module.\n");
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user