mirror of
https://github.com/torvalds/linux.git
synced 2024-12-31 23:31:29 +00:00
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:
commit
c6906a2cb7
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
1
Makefile
1
Makefile
@ -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
1
firmware/.gitignore
vendored
@ -3,4 +3,3 @@
|
|||||||
*.bin
|
*.bin
|
||||||
*.csp
|
*.csp
|
||||||
*.dsp
|
*.dsp
|
||||||
ihex2fw
|
|
||||||
|
@ -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
|
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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
1
scripts/.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Generated files
|
# Generated files
|
||||||
#
|
#
|
||||||
|
ihex2fw
|
||||||
conmakehash
|
conmakehash
|
||||||
kallsyms
|
kallsyms
|
||||||
pnmtologo
|
pnmtologo
|
||||||
|
@ -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
|
||||||
|
@ -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
150
scripts/config
Executable 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
|
||||||
|
|
@ -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()
|
||||||
|
Loading…
Reference in New Issue
Block a user