Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
  kbuild: fix typos (s/bin_shipped/bin.o_shipped/) in Documentation
  kbuild: add a symlink to the source for separate objdirs
  kconfig: add script to manipulate .config files on the command line
  kbuild: reintroduce ALLSOURCE_ARCHS support for tags/cscope
  bootchart: improve output based on Dave Jones' feedback
  fix modules_install via NFS
  qnx: include <linux/types.h> for definitions of __[us]{8,16,32,64} types
This commit is contained in:
Linus Torvalds 2009-01-07 13:11:28 -08:00
commit c6906a2cb7
13 changed files with 194 additions and 26 deletions

View file

@ -124,3 +124,10 @@ KBUILD_EXTRA_SYMBOLS
-------------------------------------------------- --------------------------------------------------
For modules use symbols from another modules. For modules use symbols from another modules.
See more details in modules.txt. See more details in modules.txt.
ALLSOURCE_ARCHS
--------------------------------------------------
For tags/TAGS/cscope targets, you can specify more than one archs
to be included in the databases, separated by blankspace. e.g.
$ make ALLSOURCE_ARCHS="x86 mips arm" tags

View file

@ -253,7 +253,7 @@ following files:
# Module specific targets # Module specific targets
genbin: genbin:
echo "X" > 8123_bin_shipped echo "X" > 8123_bin.o_shipped
In example 2, we are down to two fairly simple files and for simple In example 2, we are down to two fairly simple files and for simple
@ -279,7 +279,7 @@ following files:
# Module specific targets # Module specific targets
genbin: genbin:
echo "X" > 8123_bin_shipped echo "X" > 8123_bin.o_shipped
endif endif

View file

@ -965,6 +965,7 @@ ifneq ($(KBUILD_SRC),)
mkdir -p include2; \ mkdir -p include2; \
ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \ ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
fi fi
ln -fsn $(srctree) source
endif endif
# prepare2 creates a makefile if using a separate output directory # prepare2 creates a makefile if using a separate output directory

1
firmware/.gitignore vendored
View file

@ -3,4 +3,3 @@
*.bin *.bin
*.csp *.csp
*.dsp *.dsp
ihex2fw

View file

@ -99,10 +99,10 @@ quiet_cmd_ihex = IHEX $@
cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@
quiet_cmd_ihex2fw = IHEX2FW $@ quiet_cmd_ihex2fw = IHEX2FW $@
cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@ cmd_ihex2fw = $(objtree)/scripts/ihex2fw $< $@
quiet_cmd_h16tofw = H16TOFW $@ quiet_cmd_h16tofw = H16TOFW $@
cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@ cmd_h16tofw = $(objtree)/scripts/ihex2fw -w $< $@
quiet_cmd_fwbin = MK_FW $@ quiet_cmd_fwbin = MK_FW $@
cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \
@ -165,11 +165,11 @@ $(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
# is actually meaningful, because the firmware has to be loaded in a certain # is actually meaningful, because the firmware has to be loaded in a certain
# order rather than as a single binary blob. Thus, we convert them into our # order rather than as a single binary blob. Thus, we convert them into our
# more compact binary representation of ihex records (<linux/ihex.h>) # more compact binary representation of ihex records (<linux/ihex.h>)
$(obj)/%.fw: $(obj)/%.HEX $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) $(obj)/%.fw: $(obj)/%.HEX | $(objtree)/$(obj)/$$(dir %)
$(call cmd,ihex2fw) $(call cmd,ihex2fw)
# .H16 is our own modified form of Intel HEX, with 16-bit length for records. # .H16 is our own modified form of Intel HEX, with 16-bit length for records.
$(obj)/%.fw: $(obj)/%.H16 $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) $(obj)/%.fw: $(obj)/%.H16 | $(objtree)/$(obj)/$$(dir %)
$(call cmd,h16tofw) $(call cmd,h16tofw)
$(firmware-dirs): $(firmware-dirs):
@ -186,5 +186,3 @@ targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \
# Without this, built-in.o won't be created when it's empty, and the # Without this, built-in.o won't be created when it's empty, and the
# final vmlinux link will fail. # final vmlinux link will fail.
obj-n := dummy obj-n := dummy
hostprogs-y := ihex2fw

View file

@ -2,14 +2,12 @@
* Name : qnx4_fs.h * Name : qnx4_fs.h
* Author : Richard Frowijn * Author : Richard Frowijn
* Function : qnx4 global filesystem definitions * Function : qnx4 global filesystem definitions
* Version : 1.0.2
* Last modified : 2000-01-31
*
* History : 23-03-1998 created * History : 23-03-1998 created
*/ */
#ifndef _LINUX_QNX4_FS_H #ifndef _LINUX_QNX4_FS_H
#define _LINUX_QNX4_FS_H #define _LINUX_QNX4_FS_H
#include <linux/types.h>
#include <linux/qnxtypes.h> #include <linux/qnxtypes.h>
#include <linux/magic.h> #include <linux/magic.h>

View file

@ -2,9 +2,6 @@
* Name : qnxtypes.h * Name : qnxtypes.h
* Author : Richard Frowijn * Author : Richard Frowijn
* Function : standard qnx types * Function : standard qnx types
* Version : 1.0.2
* Last modified : 2000-01-06
*
* History : 22-03-1998 created * History : 22-03-1998 created
* *
*/ */
@ -12,6 +9,8 @@
#ifndef _QNX4TYPES_H #ifndef _QNX4TYPES_H
#define _QNX4TYPES_H #define _QNX4TYPES_H
#include <linux/types.h>
typedef __le16 qnx4_nxtnt_t; typedef __le16 qnx4_nxtnt_t;
typedef __u8 qnx4_ftype_t; typedef __u8 qnx4_ftype_t;

1
scripts/.gitignore vendored
View file

@ -1,6 +1,7 @@
# #
# Generated files # Generated files
# #
ihex2fw
conmakehash conmakehash
kallsyms kallsyms
pnmtologo pnmtologo

View file

@ -2,11 +2,12 @@
# scripts contains sources for various helper programs used throughout # scripts contains sources for various helper programs used throughout
# the kernel for the build process. # the kernel for the build process.
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# ihex2fw: Parser/loader for IHEX formatted data
# kallsyms: Find all symbols in vmlinux # kallsyms: Find all symbols in vmlinux
# pnmttologo: Convert pnm files to logo files # pnmttologo: Convert pnm files to logo files
# conmakehash: Create chartable
# conmakehash: Create arrays for initializing the kernel console tables # conmakehash: Create arrays for initializing the kernel console tables
hostprogs-y := ihex2fw
hostprogs-$(CONFIG_KALLSYMS) += kallsyms hostprogs-$(CONFIG_KALLSYMS) += kallsyms
hostprogs-$(CONFIG_LOGO) += pnmtologo hostprogs-$(CONFIG_LOGO) += pnmtologo
hostprogs-$(CONFIG_VT) += conmakehash hostprogs-$(CONFIG_VT) += conmakehash

View file

@ -88,7 +88,7 @@ END
} }
print "<?xml version=\"1.0\" standalone=\"no\"?> \n"; print "<?xml version=\"1.0\" standalone=\"no\"?> \n";
print "<svg width=\"1000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n"; print "<svg width=\"2000\" height=\"100%\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n";
my @styles; my @styles;
@ -105,8 +105,9 @@ $styles[9] = "fill:rgb(255,255,128);fill-opacity:0.5;stroke-width:1;stroke:rgb(0
$styles[10] = "fill:rgb(255,128,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; $styles[10] = "fill:rgb(255,128,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)";
$styles[11] = "fill:rgb(128,255,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)"; $styles[11] = "fill:rgb(128,255,255);fill-opacity:0.5;stroke-width:1;stroke:rgb(0,0,0)";
my $mult = 950.0 / ($maxtime - $firsttime); my $mult = 1950.0 / ($maxtime - $firsttime);
my $threshold = ($maxtime - $firsttime) / 60.0; my $threshold2 = ($maxtime - $firsttime) / 120.0;
my $threshold = $threshold2/10;
my $stylecounter = 0; my $stylecounter = 0;
my %rows; my %rows;
my $rowscount = 1; my $rowscount = 1;
@ -116,7 +117,7 @@ foreach my $key (@initcalls) {
my $duration = $end{$key} - $start{$key}; my $duration = $end{$key} - $start{$key};
if ($duration >= $threshold) { if ($duration >= $threshold) {
my ($s, $s2, $e, $w, $y, $y2, $style); my ($s, $s2, $s3, $e, $w, $y, $y2, $style);
my $pid = $pids{$key}; my $pid = $pids{$key};
if (!defined($rows{$pid})) { if (!defined($rows{$pid})) {
@ -125,6 +126,7 @@ foreach my $key (@initcalls) {
} }
$s = ($start{$key} - $firsttime) * $mult; $s = ($start{$key} - $firsttime) * $mult;
$s2 = $s + 6; $s2 = $s + 6;
$s3 = $s + 1;
$e = ($end{$key} - $firsttime) * $mult; $e = ($end{$key} - $firsttime) * $mult;
$w = $e - $s; $w = $e - $s;
@ -138,7 +140,11 @@ foreach my $key (@initcalls) {
}; };
print "<rect x=\"$s\" width=\"$w\" y=\"$y\" height=\"145\" style=\"$style\"/>\n"; print "<rect x=\"$s\" width=\"$w\" y=\"$y\" height=\"145\" style=\"$style\"/>\n";
print "<text transform=\"translate($s2,$y2) rotate(90)\">$key</text>\n"; if ($duration >= $threshold2) {
print "<text transform=\"translate($s2,$y2) rotate(90)\">$key</text>\n";
} else {
print "<text transform=\"translate($s3,$y2) rotate(90)\" font-size=\"3pt\">$key</text>\n";
}
} }
} }

150
scripts/config Executable file
View file

@ -0,0 +1,150 @@
#!/bin/bash
# Manipulate options in a .config file from the command line
usage() {
cat >&2 <<EOL
Manipulate options in a .config file from the command line.
Usage:
config options command ...
commands:
--enable|-e option Enable option
--disable|-d option Disable option
--module|-m option Turn option into a module
--state|-s option Print state of option (n,y,m,undef)
--enable-after|-E beforeopt option
Enable option directly after other option
--disable-after|-D beforeopt option
Disable option directly after other option
--module-after|-M beforeopt option
Turn option into module directly after other option
commands can be repeated multiple times
options:
--file .config file to change (default .config)
config doesn't check the validity of the .config file. This is done at next
make time.
The options need to be already in the file before they can be changed,
but sometimes you can cheat with the --*-after options.
EOL
exit 1
}
checkarg() {
ARG="$1"
if [ "$ARG" = "" ] ; then
usage
fi
case "$ARG" in
CONFIG_*)
ARG="${ARG/CONFIG_/}"
;;
esac
ARG="`echo $ARG | tr a-z A-Z`"
}
replace() {
sed -i -e "$@" $FN
}
if [ "$1" = "--file" ]; then
FN="$2"
if [ "$FN" = "" ] ; then
usage
fi
shift
shift
else
FN=.config
fi
while [ "$1" != "" ] ; do
CMD="$1"
shift
case "$CMD" in
--enable|-e)
checkarg "$1"
replace "s/# CONFIG_$ARG is not set/CONFIG_$ARG=y/"
shift
;;
--disable|-d)
checkarg "$1"
replace "s/CONFIG_$ARG=[my]/# CONFIG_$ARG is not set/"
shift
;;
--module|-m)
checkarg "$1"
replace "s/CONFIG_$ARG=y/CONFIG_$ARG=m/" \
-e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=m/"
shift
;;
--state|-s)
checkarg "$1"
if grep -q "# CONFIG_$ARG is not set" $FN ; then
echo n
else
V="$(grep "^CONFIG_$ARG=" $FN)"
if [ $? != 0 ] ; then
echo undef
else
V="${V/CONFIG_$ARG=/}"
V="${V/\"/}"
echo "$V"
fi
fi
shift
;;
--enable-after|-E)
checkarg "$1"
A=$ARG
checkarg "$2"
B=$ARG
replace "/CONFIG_$A=[my]/aCONFIG_$B=y" \
-e "/# CONFIG_$ARG is not set/a/CONFIG_$ARG=y" \
-e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=y/"
shift
shift
;;
--disable-after|-D)
checkarg "$1"
A=$ARG
checkarg "$2"
B=$ARG
replace "/CONFIG_$A=[my]/a# CONFIG_$B is not set" \
-e "/# CONFIG_$ARG is not set/a/# CONFIG_$ARG is not set" \
-e "s/CONFIG_$ARG=[my]/# CONFIG_$ARG is not set/"
shift
shift
;;
--module-after|-M)
checkarg "$1"
A=$ARG
checkarg "$2"
B=$ARG
replace "/CONFIG_$A=[my]/aCONFIG_$B=m" \
-e "/# CONFIG_$ARG is not set/a/CONFIG_$ARG=m" \
-e "s/CONFIG_$ARG=y/CONFIG_$ARG=m/" \
-e "s/# CONFIG_$ARG is not set/CONFIG_$ARG=m/"
shift
shift
;;
# undocumented because it ignores --file (fixme)
--refresh)
yes "" | make oldconfig
;;
*)
usage
;;
esac
done

View file

@ -24,6 +24,11 @@ else
tree=${srctree}/ tree=${srctree}/
fi fi
# Detect if ALLSOURCE_ARCHS is set. If not, we assume SRCARCH
if [ "${ALLSOURCE_ARCHS}" = "" ]; then
ALLSOURCE_ARCHS=${SRCARCH}
fi
# find sources in arch/$ARCH # find sources in arch/$ARCH
find_arch_sources() find_arch_sources()
{ {
@ -54,26 +59,29 @@ find_other_sources()
find_sources() find_sources()
{ {
find_arch_sources $1 "$2" find_arch_sources $1 "$2"
find_include_sources "$2"
find_other_sources "$2"
} }
all_sources() all_sources()
{ {
find_sources $SRCARCH '*.[chS]' for arch in $ALLSOURCE_ARCHS
do
find_sources $arch '*.[chS]'
done
if [ ! -z "$archinclude" ]; then if [ ! -z "$archinclude" ]; then
find_arch_include_sources $archinclude '*.[chS]' find_arch_include_sources $archinclude '*.[chS]'
fi fi
find_include_sources '*.[chS]'
find_other_sources '*.[chS]'
} }
all_kconfigs() all_kconfigs()
{ {
find_sources $SRCARCH 'Kconfig*' find_sources $ALLSOURCE_ARCHS 'Kconfig*'
} }
all_defconfigs() all_defconfigs()
{ {
find_sources $SRCARCH "defconfig" find_sources $ALLSOURCE_ARCHS "defconfig"
} }
docscope() docscope()