Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
authorLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 23:23:56 +0000 (15:23 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 23:23:56 +0000 (15:23 -0800)
15 files changed:
.gitignore
Documentation/kbuild/modules.txt
arch/x86_64/ia32/.gitignore [deleted file]
drivers/media/dvb/cinergyT2/cinergyT2.c
drivers/media/dvb/ttpci/budget.h
drivers/media/video/tda9840.c
drivers/media/video/tea6415c.c
drivers/media/video/tea6420.c
include/linux/moduleparam.h
include/media/saa7146.h
net/ipv4/netfilter/ip_nat_ftp.c
net/ipv4/netfilter/ip_nat_irc.c
scripts/kconfig/Makefile
scripts/setlocalversion
security/capability.c

index a4b576eb9c00311392c203755663f9f4a29e8477..3f8fb686b59ce6d3c9439232d9ade24f108ea65d 100644 (file)
@@ -10,6 +10,7 @@
 *.a
 *.s
 *.ko
+*.so
 *.mod.c
 
 #
index 1c0db652b3661f01d36d8dffa53d9947e1e5c55b..7e77f93634ea507569e3554434fe7978767d7fba 100644 (file)
@@ -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
 
diff --git a/arch/x86_64/ia32/.gitignore b/arch/x86_64/ia32/.gitignore
deleted file mode 100644 (file)
index 48ab174..0000000
+++ /dev/null
@@ -1 +0,0 @@
-vsyscall*.so
index b996fb59b7e44bfbda4b448ade43995c870984fb..1d69bf031fb97efdce8c04c1e32520fa074a4bcc 100644 (file)
@@ -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)
index fdaa3318ad3aef2d773f7e0d9aa783b382c47a97..c8d48cfba277fc8817f910cd0585e01660010c40 100644 (file)
@@ -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;
index 1794686612c6dccac93431e3b5f22f1f1c62f9f1..0cb5c7e9a884904ae908f53b632446b14329028c 100644 (file)
@@ -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
index ee3688348b662bac1dc06dc7be1893cd537f185d..09149dad1b84a9dc150b39c34b1dfe0a2ba7b8ea 100644 (file)
@@ -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
index 17975c19da5ee376f08ba2b7e98b96d4469b519b..e908f917c8d2c18d97e311a11f116e6c84bf1f23 100644 (file)
@@ -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 };
index 368ec8e45bd0eebea148ff9c315e252a4a7141ea..b5c98c43779e4ada67ae76132ed0279967a48f9a 100644 (file)
@@ -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
index e5be2b9b846b9321bd5e3e316061ae57e29d9dd4..2bc634fcb7bbac85fe6de17b6e45769d3c867147 100644 (file)
 
 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; }
 
index d83757a70d9f647f2474952c79b424b148d5159a..b8daab3c64af65503c1b5c94e3fc91c8d5253d9e 100644 (file)
@@ -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;
 }
index de31942babe399e3fe9a58919505276662c04bf9..461c833eaca145bd7095225f6a6b84fa45a367c9 100644 (file)
@@ -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;
 }
index 3d7f1ac9e00ce89e881673142ef8ca517ca3010a..5760e057ecbac174679bedfe60de520645ec659a 100644 (file)
@@ -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 "*";                                                       \
index 7c805c8fccd26b7a839079ba9e5268046cb392e9..f54dac88cfd1d86b2cbcf7e35e8b3880f9fcfce0 100644 (file)
@@ -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);
-
-my @LOCALVERSIONS = ();
-
-# 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);
+cd "${1:-.}" || usage
 
-       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();
-}
+# 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
 
-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
index ec18d60756251ff8e562eb16e4c1a83c22b490a9..f9b35cc0b248f4ed49146651930fc49cad3b65d5 100644 (file)
@@ -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;