Merge branch 'master' into next
This commit is contained in:
@@ -100,7 +100,7 @@ as-option = $(call try-run,\
|
||||
# Usage: cflags-y += $(call as-instr,instr,option1,option2)
|
||||
|
||||
as-instr = $(call try-run,\
|
||||
echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
/bin/echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
|
||||
# cc-option
|
||||
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
|
||||
@@ -208,7 +208,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
|
||||
|
||||
# Bzip2 and LZMA do not include size in file... so we have to fake that;
|
||||
# append the size as a 32-bit littleendian number as gzip does.
|
||||
size_append = echo -ne $(shell \
|
||||
size_append = /bin/echo -ne $(shell \
|
||||
dec_size=0; \
|
||||
for F in $1; do \
|
||||
fsize=$$(stat -c "%s" $$F); \
|
||||
|
||||
@@ -9,7 +9,7 @@ paths="$@"
|
||||
# Doing this once at the beginning saves a lot of time, on a cache-hot tree.
|
||||
Kconfigs="`find . -name 'Kconfig' -o -name 'Kconfig*[^~]'`"
|
||||
|
||||
echo -e "File list \tundefined symbol used"
|
||||
/bin/echo -e "File list \tundefined symbol used"
|
||||
find $paths -name '*.[chS]' -o -name 'Makefile' -o -name 'Makefile*[^~]'| while read i
|
||||
do
|
||||
# Output the bare Kconfig variable and the filename; the _MODULE part at
|
||||
@@ -54,6 +54,6 @@ while read symb files; do
|
||||
# beyond the purpose of this script.
|
||||
symb_bare=`echo $symb | sed -e 's/_MODULE//'`
|
||||
if ! grep -q "\<$symb_bare\>" $Kconfigs; then
|
||||
echo -e "$files: \t$symb"
|
||||
/bin/echo -e "$files: \t$symb"
|
||||
fi
|
||||
done|sort
|
||||
|
||||
+61
-23
@@ -2,7 +2,7 @@
|
||||
# (c) 2001, Dave Jones. <davej@redhat.com> (the file handling bit)
|
||||
# (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit)
|
||||
# (c) 2007,2008, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite)
|
||||
# (c) 2008, Andy Whitcroft <apw@canonical.com>
|
||||
# (c) 2008,2009, Andy Whitcroft <apw@canonical.com>
|
||||
# Licensed under the terms of the GNU GPL License version 2
|
||||
|
||||
use strict;
|
||||
@@ -10,7 +10,7 @@ use strict;
|
||||
my $P = $0;
|
||||
$P =~ s@.*/@@g;
|
||||
|
||||
my $V = '0.29';
|
||||
my $V = '0.30';
|
||||
|
||||
use Getopt::Long qw(:config no_auto_abbrev);
|
||||
|
||||
@@ -130,7 +130,10 @@ if ($tree) {
|
||||
|
||||
my $emitted_corrupt = 0;
|
||||
|
||||
our $Ident = qr{[A-Za-z_][A-Za-z\d_]*};
|
||||
our $Ident = qr{
|
||||
[A-Za-z_][A-Za-z\d_]*
|
||||
(?:\s*\#\#\s*[A-Za-z_][A-Za-z\d_]*)*
|
||||
}x;
|
||||
our $Storage = qr{extern|static|asmlinkage};
|
||||
our $Sparse = qr{
|
||||
__user|
|
||||
@@ -997,23 +1000,25 @@ sub annotate_values {
|
||||
|
||||
sub possible {
|
||||
my ($possible, $line) = @_;
|
||||
|
||||
print "CHECK<$possible> ($line)\n" if ($dbg_possible > 2);
|
||||
if ($possible !~ /(?:
|
||||
my $notPermitted = qr{(?:
|
||||
^(?:
|
||||
$Modifier|
|
||||
$Storage|
|
||||
$Type|
|
||||
DEFINE_\S+|
|
||||
DEFINE_\S+
|
||||
)$|
|
||||
^(?:
|
||||
goto|
|
||||
return|
|
||||
case|
|
||||
else|
|
||||
asm|__asm__|
|
||||
do
|
||||
)$|
|
||||
)(?:\s|$)|
|
||||
^(?:typedef|struct|enum)\b
|
||||
)/x) {
|
||||
)}x;
|
||||
warn "CHECK<$possible> ($line)\n" if ($dbg_possible > 2);
|
||||
if ($possible !~ $notPermitted) {
|
||||
# Check for modifiers.
|
||||
$possible =~ s/\s*$Storage\s*//g;
|
||||
$possible =~ s/\s*$Sparse\s*//g;
|
||||
@@ -1022,8 +1027,10 @@ sub possible {
|
||||
} elsif ($possible =~ /\s/) {
|
||||
$possible =~ s/\s*$Type\s*//g;
|
||||
for my $modifier (split(' ', $possible)) {
|
||||
warn "MODIFIER: $modifier ($possible) ($line)\n" if ($dbg_possible);
|
||||
push(@modifierList, $modifier);
|
||||
if ($modifier !~ $notPermitted) {
|
||||
warn "MODIFIER: $modifier ($possible) ($line)\n" if ($dbg_possible);
|
||||
push(@modifierList, $modifier);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -1138,6 +1145,7 @@ sub process {
|
||||
# suppression flags
|
||||
my %suppress_ifbraces;
|
||||
my %suppress_whiletrailers;
|
||||
my %suppress_export;
|
||||
|
||||
# Pre-scan the patch sanitizing the lines.
|
||||
# Pre-scan the patch looking for any __setup documentation.
|
||||
@@ -1230,7 +1238,6 @@ sub process {
|
||||
$linenr++;
|
||||
|
||||
my $rawline = $rawlines[$linenr - 1];
|
||||
my $hunk_line = ($realcnt != 0);
|
||||
|
||||
#extract the line range in the file after the patch is applied
|
||||
if ($line=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
|
||||
@@ -1247,6 +1254,7 @@ sub process {
|
||||
|
||||
%suppress_ifbraces = ();
|
||||
%suppress_whiletrailers = ();
|
||||
%suppress_export = ();
|
||||
next;
|
||||
|
||||
# track the line number as we move through the hunk, note that
|
||||
@@ -1270,6 +1278,8 @@ sub process {
|
||||
$realcnt--;
|
||||
}
|
||||
|
||||
my $hunk_line = ($realcnt != 0);
|
||||
|
||||
#make up the handle for any error we report on this line
|
||||
$prefix = "$filename:$realline: " if ($emacs && $file);
|
||||
$prefix = "$filename:$linenr: " if ($emacs && !$file);
|
||||
@@ -1420,13 +1430,22 @@ sub process {
|
||||
}
|
||||
|
||||
# Check for potential 'bare' types
|
||||
my ($stat, $cond, $line_nr_next, $remain_next, $off_next);
|
||||
my ($stat, $cond, $line_nr_next, $remain_next, $off_next,
|
||||
$realline_next);
|
||||
if ($realcnt && $line =~ /.\s*\S/) {
|
||||
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
|
||||
ctx_statement_block($linenr, $realcnt, 0);
|
||||
$stat =~ s/\n./\n /g;
|
||||
$cond =~ s/\n./\n /g;
|
||||
|
||||
# Find the real next line.
|
||||
$realline_next = $line_nr_next;
|
||||
if (defined $realline_next &&
|
||||
(!defined $lines[$realline_next - 1] ||
|
||||
substr($lines[$realline_next - 1], $off_next) =~ /^\s*$/)) {
|
||||
$realline_next++;
|
||||
}
|
||||
|
||||
my $s = $stat;
|
||||
$s =~ s/{.*$//s;
|
||||
|
||||
@@ -1661,8 +1680,8 @@ sub process {
|
||||
}
|
||||
|
||||
# check for initialisation to aggregates open brace on the next line
|
||||
if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ &&
|
||||
$line =~ /^.\s*{/) {
|
||||
if ($line =~ /^.\s*{/ &&
|
||||
$prevline =~ /(?:^|[^=])=\s*$/) {
|
||||
ERROR("that open brace { should be on the previous line\n" . $hereprev);
|
||||
}
|
||||
|
||||
@@ -1687,21 +1706,40 @@ sub process {
|
||||
$line =~ s@//.*@@;
|
||||
$opline =~ s@//.*@@;
|
||||
|
||||
#EXPORT_SYMBOL should immediately follow its function closing }.
|
||||
if (($line =~ /EXPORT_SYMBOL.*\((.*)\)/) ||
|
||||
($line =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
# EXPORT_SYMBOL should immediately follow the thing it is exporting, consider
|
||||
# the whole statement.
|
||||
#print "APW <$lines[$realline_next - 1]>\n";
|
||||
if (defined $realline_next &&
|
||||
exists $lines[$realline_next - 1] &&
|
||||
!defined $suppress_export{$realline_next} &&
|
||||
($lines[$realline_next - 1] =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
||||
$lines[$realline_next - 1] =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
my $name = $1;
|
||||
if ($prevline !~ /(?:
|
||||
^.}|
|
||||
if ($stat !~ /(?:
|
||||
\n.}\s*$|
|
||||
^.DEFINE_$Ident\(\Q$name\E\)|
|
||||
^.DECLARE_$Ident\(\Q$name\E\)|
|
||||
^.LIST_HEAD\(\Q$name\E\)|
|
||||
^.$Type\s*\(\s*\*\s*\Q$name\E\s*\)\s*\(|
|
||||
\b\Q$name\E(?:\s+$Attribute)?\s*(?:;|=|\[)
|
||||
^.(?:$Storage\s+)?$Type\s*\(\s*\*\s*\Q$name\E\s*\)\s*\(|
|
||||
\b\Q$name\E(?:\s+$Attribute)*\s*(?:;|=|\[|\()
|
||||
)/x) {
|
||||
WARN("EXPORT_SYMBOL(foo); should immediately follow its function/variable\n" . $herecurr);
|
||||
#print "FOO A<$lines[$realline_next - 1]> stat<$stat> name<$name>\n";
|
||||
$suppress_export{$realline_next} = 2;
|
||||
} else {
|
||||
$suppress_export{$realline_next} = 1;
|
||||
}
|
||||
}
|
||||
if (!defined $suppress_export{$linenr} &&
|
||||
$prevline =~ /^.\s*$/ &&
|
||||
($line =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
||||
$line =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
#print "FOO B <$lines[$linenr - 1]>\n";
|
||||
$suppress_export{$linenr} = 2;
|
||||
}
|
||||
if (defined $suppress_export{$linenr} &&
|
||||
$suppress_export{$linenr} == 2) {
|
||||
WARN("EXPORT_SYMBOL(foo); should immediately follow its function/variable\n" . $herecurr);
|
||||
}
|
||||
|
||||
# check for external initialisers.
|
||||
if ($line =~ /^.$Type\s*$Ident\s*(?:\s+$Modifier)*\s*=\s*(0|NULL|false)\s*;/) {
|
||||
|
||||
+1
-1
@@ -217,7 +217,7 @@ struct data data_insert_at_marker(struct data d, struct marker *m,
|
||||
return d;
|
||||
}
|
||||
|
||||
struct data data_append_markers(struct data d, struct marker *m)
|
||||
static struct data data_append_markers(struct data d, struct marker *m)
|
||||
{
|
||||
struct marker **mp = &d.markers;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* USA
|
||||
*/
|
||||
|
||||
%option noyywrap nounput yylineno
|
||||
%option noyywrap noinput nounput yylineno
|
||||
|
||||
%x INCLUDE
|
||||
%x BYTESTRING
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
#define YY_FLEX_SUBMINOR_VERSION 34
|
||||
#define YY_FLEX_SUBMINOR_VERSION 35
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
@@ -54,7 +54,6 @@ typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@@ -85,6 +84,8 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -141,7 +142,15 @@ typedef unsigned int flex_uint32_t;
|
||||
|
||||
/* Size of default input buffer. */
|
||||
#ifndef YY_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k.
|
||||
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
||||
* Ditto for the __ia64__ case accordingly.
|
||||
*/
|
||||
#define YY_BUF_SIZE 32768
|
||||
#else
|
||||
#define YY_BUF_SIZE 16384
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* The state buf must be large enough to hold one state per character in the main buffer.
|
||||
@@ -192,13 +201,6 @@ extern FILE *yyin, *yyout;
|
||||
|
||||
#define unput(c) yyunput( c, (yytext_ptr) )
|
||||
|
||||
/* The following is because we cannot portably get our hands on size_t
|
||||
* (without autoconf's help, which isn't available because we want
|
||||
* flex-generated scanners to compile on their own).
|
||||
* Given that the standard has decreed that size_t exists since 1989,
|
||||
* I guess we can afford to depend on it. Manoj.
|
||||
*/
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
@@ -604,6 +606,7 @@ char *yytext;
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*/
|
||||
#define YY_NO_INPUT 1
|
||||
|
||||
|
||||
|
||||
@@ -634,7 +637,7 @@ static int dts_version; /* = 0 */
|
||||
|
||||
static void push_input_file(const char *filename);
|
||||
static int pop_input_file(void);
|
||||
#line 638 "dtc-lexer.lex.c"
|
||||
#line 641 "dtc-lexer.lex.c"
|
||||
|
||||
#define INITIAL 0
|
||||
#define INCLUDE 1
|
||||
@@ -656,6 +659,35 @@ static int pop_input_file(void);
|
||||
|
||||
static int yy_init_globals (void );
|
||||
|
||||
/* Accessor methods to globals.
|
||||
These are made visible to non-reentrant scanners for convenience. */
|
||||
|
||||
int yylex_destroy (void );
|
||||
|
||||
int yyget_debug (void );
|
||||
|
||||
void yyset_debug (int debug_flag );
|
||||
|
||||
YY_EXTRA_TYPE yyget_extra (void );
|
||||
|
||||
void yyset_extra (YY_EXTRA_TYPE user_defined );
|
||||
|
||||
FILE *yyget_in (void );
|
||||
|
||||
void yyset_in (FILE * in_str );
|
||||
|
||||
FILE *yyget_out (void );
|
||||
|
||||
void yyset_out (FILE * out_str );
|
||||
|
||||
int yyget_leng (void );
|
||||
|
||||
char *yyget_text (void );
|
||||
|
||||
int yyget_lineno (void );
|
||||
|
||||
void yyset_lineno (int line_number );
|
||||
|
||||
/* Macros after this point can all be overridden by user definitions in
|
||||
* section 1.
|
||||
*/
|
||||
@@ -688,7 +720,12 @@ static int input (void );
|
||||
|
||||
/* Amount of stuff to slurp up with each read. */
|
||||
#ifndef YY_READ_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k */
|
||||
#define YY_READ_BUF_SIZE 16384
|
||||
#else
|
||||
#define YY_READ_BUF_SIZE 8192
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* Copy whatever the last rule matched to the standard output. */
|
||||
@@ -696,7 +733,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
||||
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -707,7 +744,7 @@ static int input (void );
|
||||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
||||
{ \
|
||||
int c = '*'; \
|
||||
int n; \
|
||||
size_t n; \
|
||||
for ( n = 0; n < max_size && \
|
||||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
||||
buf[n] = (char) c; \
|
||||
@@ -791,7 +828,7 @@ YY_DECL
|
||||
|
||||
#line 64 "dtc-lexer.l"
|
||||
|
||||
#line 795 "dtc-lexer.lex.c"
|
||||
#line 832 "dtc-lexer.lex.c"
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
@@ -1116,7 +1153,7 @@ YY_RULE_SETUP
|
||||
#line 222 "dtc-lexer.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1120 "dtc-lexer.lex.c"
|
||||
#line 1157 "dtc-lexer.lex.c"
|
||||
|
||||
case YY_END_OF_BUFFER:
|
||||
{
|
||||
@@ -1840,8 +1877,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
|
||||
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
|
||||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
|
||||
@@ -411,7 +411,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
|
||||
&phandle, sizeof(phandle));
|
||||
}
|
||||
|
||||
int _stringlist_contains(const char *strlist, int listlen, const char *str)
|
||||
static int _stringlist_contains(const char *strlist, int listlen, const char *str)
|
||||
{
|
||||
int len = strlen(str);
|
||||
const char *p;
|
||||
|
||||
@@ -52,7 +52,7 @@ static void write_prefix(FILE *f, int level)
|
||||
fputc('\t', f);
|
||||
}
|
||||
|
||||
int isstring(char c)
|
||||
static int isstring(char c)
|
||||
{
|
||||
return (isprint(c)
|
||||
|| (c == '\0')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* ANSI-C code produced by gperf version 3.0.2 */
|
||||
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
|
||||
|
||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||
@@ -30,7 +30,9 @@
|
||||
|
||||
#line 1 "scripts/genksyms/keywords.gperf"
|
||||
|
||||
#line 3 "scripts/genksyms/keywords.gperf"
|
||||
struct resword;
|
||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
||||
#line 5 "scripts/genksyms/keywords.gperf"
|
||||
struct resword { const char *name; int token; };
|
||||
/* maximum key range = 62, duplicates = 0 */
|
||||
|
||||
@@ -78,6 +80,9 @@ is_reserved_hash (register const char *str, register unsigned int len)
|
||||
|
||||
#ifdef __GNUC__
|
||||
__inline
|
||||
#ifdef __GNUC_STDC_INLINE__
|
||||
__attribute__ ((__gnu_inline__))
|
||||
#endif
|
||||
#endif
|
||||
const struct resword *
|
||||
is_reserved_word (register const char *str, register unsigned int len)
|
||||
@@ -94,105 +99,105 @@ is_reserved_word (register const char *str, register unsigned int len)
|
||||
static const struct resword wordlist[] =
|
||||
{
|
||||
{""}, {""}, {""},
|
||||
#line 26 "scripts/genksyms/keywords.gperf"
|
||||
#line 28 "scripts/genksyms/keywords.gperf"
|
||||
{"asm", ASM_KEYW},
|
||||
{""},
|
||||
#line 8 "scripts/genksyms/keywords.gperf"
|
||||
#line 10 "scripts/genksyms/keywords.gperf"
|
||||
{"__asm", ASM_KEYW},
|
||||
{""},
|
||||
#line 9 "scripts/genksyms/keywords.gperf"
|
||||
#line 11 "scripts/genksyms/keywords.gperf"
|
||||
{"__asm__", ASM_KEYW},
|
||||
{""}, {""},
|
||||
#line 52 "scripts/genksyms/keywords.gperf"
|
||||
#line 54 "scripts/genksyms/keywords.gperf"
|
||||
{"__typeof__", TYPEOF_KEYW},
|
||||
{""},
|
||||
#line 12 "scripts/genksyms/keywords.gperf"
|
||||
#line 14 "scripts/genksyms/keywords.gperf"
|
||||
{"__const", CONST_KEYW},
|
||||
#line 11 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute__", ATTRIBUTE_KEYW},
|
||||
#line 13 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute__", ATTRIBUTE_KEYW},
|
||||
#line 15 "scripts/genksyms/keywords.gperf"
|
||||
{"__const__", CONST_KEYW},
|
||||
#line 18 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed__", SIGNED_KEYW},
|
||||
#line 44 "scripts/genksyms/keywords.gperf"
|
||||
{"static", STATIC_KEYW},
|
||||
#line 20 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed__", SIGNED_KEYW},
|
||||
#line 46 "scripts/genksyms/keywords.gperf"
|
||||
{"static", STATIC_KEYW},
|
||||
#line 22 "scripts/genksyms/keywords.gperf"
|
||||
{"__volatile__", VOLATILE_KEYW},
|
||||
#line 39 "scripts/genksyms/keywords.gperf"
|
||||
#line 41 "scripts/genksyms/keywords.gperf"
|
||||
{"int", INT_KEYW},
|
||||
#line 32 "scripts/genksyms/keywords.gperf"
|
||||
#line 34 "scripts/genksyms/keywords.gperf"
|
||||
{"char", CHAR_KEYW},
|
||||
#line 33 "scripts/genksyms/keywords.gperf"
|
||||
#line 35 "scripts/genksyms/keywords.gperf"
|
||||
{"const", CONST_KEYW},
|
||||
#line 45 "scripts/genksyms/keywords.gperf"
|
||||
#line 47 "scripts/genksyms/keywords.gperf"
|
||||
{"struct", STRUCT_KEYW},
|
||||
#line 24 "scripts/genksyms/keywords.gperf"
|
||||
#line 26 "scripts/genksyms/keywords.gperf"
|
||||
{"__restrict__", RESTRICT_KEYW},
|
||||
#line 25 "scripts/genksyms/keywords.gperf"
|
||||
#line 27 "scripts/genksyms/keywords.gperf"
|
||||
{"restrict", RESTRICT_KEYW},
|
||||
#line 23 "scripts/genksyms/keywords.gperf"
|
||||
#line 25 "scripts/genksyms/keywords.gperf"
|
||||
{"_restrict", RESTRICT_KEYW},
|
||||
#line 16 "scripts/genksyms/keywords.gperf"
|
||||
#line 18 "scripts/genksyms/keywords.gperf"
|
||||
{"__inline__", INLINE_KEYW},
|
||||
#line 10 "scripts/genksyms/keywords.gperf"
|
||||
#line 12 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute", ATTRIBUTE_KEYW},
|
||||
{""},
|
||||
#line 14 "scripts/genksyms/keywords.gperf"
|
||||
#line 16 "scripts/genksyms/keywords.gperf"
|
||||
{"__extension__", EXTENSION_KEYW},
|
||||
#line 35 "scripts/genksyms/keywords.gperf"
|
||||
#line 37 "scripts/genksyms/keywords.gperf"
|
||||
{"enum", ENUM_KEYW},
|
||||
#line 19 "scripts/genksyms/keywords.gperf"
|
||||
#line 21 "scripts/genksyms/keywords.gperf"
|
||||
{"__volatile", VOLATILE_KEYW},
|
||||
#line 36 "scripts/genksyms/keywords.gperf"
|
||||
#line 38 "scripts/genksyms/keywords.gperf"
|
||||
{"extern", EXTERN_KEYW},
|
||||
{""},
|
||||
#line 17 "scripts/genksyms/keywords.gperf"
|
||||
#line 19 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed", SIGNED_KEYW},
|
||||
#line 7 "scripts/genksyms/keywords.gperf"
|
||||
#line 9 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
|
||||
{""},
|
||||
#line 51 "scripts/genksyms/keywords.gperf"
|
||||
#line 53 "scripts/genksyms/keywords.gperf"
|
||||
{"typeof", TYPEOF_KEYW},
|
||||
#line 46 "scripts/genksyms/keywords.gperf"
|
||||
#line 48 "scripts/genksyms/keywords.gperf"
|
||||
{"typedef", TYPEDEF_KEYW},
|
||||
#line 15 "scripts/genksyms/keywords.gperf"
|
||||
#line 17 "scripts/genksyms/keywords.gperf"
|
||||
{"__inline", INLINE_KEYW},
|
||||
#line 31 "scripts/genksyms/keywords.gperf"
|
||||
#line 33 "scripts/genksyms/keywords.gperf"
|
||||
{"auto", AUTO_KEYW},
|
||||
#line 47 "scripts/genksyms/keywords.gperf"
|
||||
#line 49 "scripts/genksyms/keywords.gperf"
|
||||
{"union", UNION_KEYW},
|
||||
{""}, {""},
|
||||
#line 48 "scripts/genksyms/keywords.gperf"
|
||||
#line 50 "scripts/genksyms/keywords.gperf"
|
||||
{"unsigned", UNSIGNED_KEYW},
|
||||
#line 49 "scripts/genksyms/keywords.gperf"
|
||||
#line 51 "scripts/genksyms/keywords.gperf"
|
||||
{"void", VOID_KEYW},
|
||||
#line 42 "scripts/genksyms/keywords.gperf"
|
||||
#line 44 "scripts/genksyms/keywords.gperf"
|
||||
{"short", SHORT_KEYW},
|
||||
{""}, {""},
|
||||
#line 50 "scripts/genksyms/keywords.gperf"
|
||||
#line 52 "scripts/genksyms/keywords.gperf"
|
||||
{"volatile", VOLATILE_KEYW},
|
||||
{""},
|
||||
#line 37 "scripts/genksyms/keywords.gperf"
|
||||
#line 39 "scripts/genksyms/keywords.gperf"
|
||||
{"float", FLOAT_KEYW},
|
||||
#line 34 "scripts/genksyms/keywords.gperf"
|
||||
#line 36 "scripts/genksyms/keywords.gperf"
|
||||
{"double", DOUBLE_KEYW},
|
||||
{""},
|
||||
#line 5 "scripts/genksyms/keywords.gperf"
|
||||
#line 7 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
|
||||
{""}, {""},
|
||||
#line 38 "scripts/genksyms/keywords.gperf"
|
||||
#line 40 "scripts/genksyms/keywords.gperf"
|
||||
{"inline", INLINE_KEYW},
|
||||
#line 6 "scripts/genksyms/keywords.gperf"
|
||||
#line 8 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
|
||||
#line 41 "scripts/genksyms/keywords.gperf"
|
||||
#line 43 "scripts/genksyms/keywords.gperf"
|
||||
{"register", REGISTER_KEYW},
|
||||
{""},
|
||||
#line 22 "scripts/genksyms/keywords.gperf"
|
||||
#line 24 "scripts/genksyms/keywords.gperf"
|
||||
{"_Bool", BOOL_KEYW},
|
||||
#line 43 "scripts/genksyms/keywords.gperf"
|
||||
#line 45 "scripts/genksyms/keywords.gperf"
|
||||
{"signed", SIGNED_KEYW},
|
||||
{""}, {""},
|
||||
#line 40 "scripts/genksyms/keywords.gperf"
|
||||
#line 42 "scripts/genksyms/keywords.gperf"
|
||||
{"long", LONG_KEYW}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
%{
|
||||
struct resword;
|
||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
||||
%}
|
||||
struct resword { const char *name; int token; }
|
||||
%%
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
# Print selected MAINTAINERS information for
|
||||
# the files modified in a patch or for a file
|
||||
#
|
||||
# usage: perl scripts/get_maintainers.pl [OPTIONS] <patch>
|
||||
# perl scripts/get_maintainers.pl [OPTIONS] -f <file>
|
||||
# usage: perl scripts/get_maintainer.pl [OPTIONS] <patch>
|
||||
# perl scripts/get_maintainer.pl [OPTIONS] -f <file>
|
||||
#
|
||||
# Licensed under the terms of the GNU GPL License version 2
|
||||
|
||||
use strict;
|
||||
|
||||
my $P = $0;
|
||||
my $V = '0.20';
|
||||
my $V = '0.21';
|
||||
|
||||
use Getopt::Long qw(:config no_auto_abbrev);
|
||||
|
||||
@@ -37,6 +37,7 @@ my $scm = 0;
|
||||
my $web = 0;
|
||||
my $subsystem = 0;
|
||||
my $status = 0;
|
||||
my $keywords = 1;
|
||||
my $from_filename = 0;
|
||||
my $pattern_depth = 0;
|
||||
my $version = 0;
|
||||
@@ -84,6 +85,7 @@ if (!GetOptions(
|
||||
'scm!' => \$scm,
|
||||
'web!' => \$web,
|
||||
'pattern-depth=i' => \$pattern_depth,
|
||||
'k|keywords!' => \$keywords,
|
||||
'f|file' => \$from_filename,
|
||||
'v|version' => \$version,
|
||||
'h|help' => \$help,
|
||||
@@ -132,6 +134,8 @@ if (!top_of_kernel_tree($lk_path)) {
|
||||
## Read MAINTAINERS for type/value pairs
|
||||
|
||||
my @typevalue = ();
|
||||
my %keyword_hash;
|
||||
|
||||
open(MAINT, "<${lk_path}MAINTAINERS") || die "$P: Can't open MAINTAINERS\n";
|
||||
while (<MAINT>) {
|
||||
my $line = $_;
|
||||
@@ -149,6 +153,8 @@ while (<MAINT>) {
|
||||
if ((-d $value)) {
|
||||
$value =~ s@([^/])$@$1/@;
|
||||
}
|
||||
} elsif ($type eq "K") {
|
||||
$keyword_hash{@typevalue} = $value;
|
||||
}
|
||||
push(@typevalue, "$type:$value");
|
||||
} elsif (!/^(\s)*$/) {
|
||||
@@ -188,6 +194,7 @@ if ($email_remove_duplicates) {
|
||||
|
||||
my @files = ();
|
||||
my @range = ();
|
||||
my @keyword_tvi = ();
|
||||
|
||||
foreach my $file (@ARGV) {
|
||||
##if $file is a directory and it lacks a trailing slash, add one
|
||||
@@ -198,11 +205,24 @@ foreach my $file (@ARGV) {
|
||||
}
|
||||
if ($from_filename) {
|
||||
push(@files, $file);
|
||||
if (-f $file && $keywords) {
|
||||
open(FILE, "<$file") or die "$P: Can't open ${file}\n";
|
||||
while (<FILE>) {
|
||||
my $patch_line = $_;
|
||||
foreach my $line (keys %keyword_hash) {
|
||||
if ($patch_line =~ m/^.*$keyword_hash{$line}/x) {
|
||||
push(@keyword_tvi, $line);
|
||||
}
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
}
|
||||
} else {
|
||||
my $file_cnt = @files;
|
||||
my $lastfile;
|
||||
open(PATCH, "<$file") or die "$P: Can't open ${file}\n";
|
||||
while (<PATCH>) {
|
||||
my $patch_line = $_;
|
||||
if (m/^\+\+\+\s+(\S+)/) {
|
||||
my $filename = $1;
|
||||
$filename =~ s@^[^/]*/@@;
|
||||
@@ -213,6 +233,12 @@ foreach my $file (@ARGV) {
|
||||
if ($email_git_blame) {
|
||||
push(@range, "$lastfile:$1:$2");
|
||||
}
|
||||
} elsif ($keywords) {
|
||||
foreach my $line (keys %keyword_hash) {
|
||||
if ($patch_line =~ m/^[+-].*$keyword_hash{$line}/x) {
|
||||
push(@keyword_tvi, $line);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
close(PATCH);
|
||||
@@ -286,6 +312,13 @@ foreach my $file (@files) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($keywords) {
|
||||
@keyword_tvi = sort_and_uniq(@keyword_tvi);
|
||||
foreach my $line (@keyword_tvi) {
|
||||
add_categories($line);
|
||||
}
|
||||
}
|
||||
|
||||
if ($email) {
|
||||
foreach my $chief (@penguin_chief) {
|
||||
if ($chief =~ m/^(.*):(.*)/) {
|
||||
@@ -384,6 +417,7 @@ Output type options:
|
||||
|
||||
Other options:
|
||||
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
|
||||
--keywords => scan patch for keywords (default: 1 (on))
|
||||
--version => show version
|
||||
--help => show this help information
|
||||
|
||||
@@ -486,7 +520,6 @@ sub format_email {
|
||||
}
|
||||
|
||||
sub find_starting_index {
|
||||
|
||||
my ($index) = @_;
|
||||
|
||||
while ($index > 0) {
|
||||
|
||||
@@ -20,7 +20,7 @@ use strict;
|
||||
|
||||
my ($readdir, $installdir, $arch, @files) = @ARGV;
|
||||
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__";
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__";
|
||||
|
||||
foreach my $file (@files) {
|
||||
local *INFILE;
|
||||
|
||||
@@ -30,7 +30,7 @@ silentoldconfig: $(obj)/conf
|
||||
$< -s $(Kconfig)
|
||||
|
||||
localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)perl $< $(Kconfig) > .tmp.config
|
||||
$(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
|
||||
$(Q)if [ -f .config ]; then \
|
||||
cmp -s .tmp.config .config || \
|
||||
(mv -f .config .config.old.1; \
|
||||
@@ -44,7 +44,7 @@ localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)rm -f .tmp.config
|
||||
|
||||
localyesconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)perl $< $(Kconfig) > .tmp.config
|
||||
$(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
|
||||
$(Q)sed -i s/=m/=y/ .tmp.config
|
||||
$(Q)if [ -f .config ]; then \
|
||||
cmp -s .tmp.config .config || \
|
||||
|
||||
@@ -160,7 +160,15 @@ typedef unsigned int flex_uint32_t;
|
||||
|
||||
/* Size of default input buffer. */
|
||||
#ifndef YY_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k.
|
||||
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
||||
* Ditto for the __ia64__ case accordingly.
|
||||
*/
|
||||
#define YY_BUF_SIZE 32768
|
||||
#else
|
||||
#define YY_BUF_SIZE 16384
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* The state buf must be large enough to hold one state per character in the main buffer.
|
||||
@@ -802,7 +810,7 @@ static int last_ts, first_ts;
|
||||
static void zconf_endhelp(void);
|
||||
static void zconf_endfile(void);
|
||||
|
||||
void new_string(void)
|
||||
static void new_string(void)
|
||||
{
|
||||
text = malloc(START_STRSIZE);
|
||||
text_asize = START_STRSIZE;
|
||||
@@ -810,7 +818,7 @@ void new_string(void)
|
||||
*text = 0;
|
||||
}
|
||||
|
||||
void append_string(const char *str, int size)
|
||||
static void append_string(const char *str, int size)
|
||||
{
|
||||
int new_size = text_size + size + 1;
|
||||
if (new_size > text_asize) {
|
||||
@@ -824,7 +832,7 @@ void append_string(const char *str, int size)
|
||||
text[text_size] = 0;
|
||||
}
|
||||
|
||||
void alloc_string(const char *str, int size)
|
||||
static void alloc_string(const char *str, int size)
|
||||
{
|
||||
text = malloc(size + 1);
|
||||
memcpy(text, str, size);
|
||||
@@ -914,7 +922,12 @@ static int input (void );
|
||||
|
||||
/* Amount of stuff to slurp up with each read. */
|
||||
#ifndef YY_READ_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k */
|
||||
#define YY_READ_BUF_SIZE 16384
|
||||
#else
|
||||
#define YY_READ_BUF_SIZE 8192
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* Copy whatever the last rule matched to the standard output. */
|
||||
@@ -922,7 +935,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
|
||||
#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0)
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -2060,8 +2073,8 @@ YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
|
||||
|
||||
/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
|
||||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
# make oldconfig
|
||||
#
|
||||
my $config = ".config";
|
||||
my $linuxpath = ".";
|
||||
|
||||
my $uname = `uname -r`;
|
||||
chomp $uname;
|
||||
@@ -111,7 +110,11 @@ sub find_config {
|
||||
|
||||
find_config;
|
||||
|
||||
my @makefiles = `find $linuxpath -name Makefile`;
|
||||
# Get the build source and top level Kconfig file (passed in)
|
||||
my $ksource = $ARGV[0];
|
||||
my $kconfig = $ARGV[1];
|
||||
|
||||
my @makefiles = `find $ksource -name Makefile`;
|
||||
my %depends;
|
||||
my %selects;
|
||||
my %prompts;
|
||||
@@ -119,9 +122,6 @@ my %objects;
|
||||
my $var;
|
||||
my $cont = 0;
|
||||
|
||||
# Get the top level Kconfig file (passed in)
|
||||
my $kconfig = $ARGV[0];
|
||||
|
||||
# prevent recursion
|
||||
my %read_kconfigs;
|
||||
|
||||
@@ -132,7 +132,7 @@ sub read_kconfig {
|
||||
my $config;
|
||||
my @kconfigs;
|
||||
|
||||
open(KIN, $kconfig) || die "Can't open $kconfig";
|
||||
open(KIN, "$ksource/$kconfig") || die "Can't open $kconfig";
|
||||
while (<KIN>) {
|
||||
chomp;
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
struct kconf_id;
|
||||
|
||||
static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
|
||||
|
||||
%%
|
||||
mainmenu, T_MAINMENU, TF_COMMAND
|
||||
menu, T_MENU, TF_COMMAND
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#endif
|
||||
|
||||
struct kconf_id;
|
||||
|
||||
static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
|
||||
/* maximum key range = 47, duplicates = 0 */
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
@@ -39,7 +39,7 @@ static int last_ts, first_ts;
|
||||
static void zconf_endhelp(void);
|
||||
static void zconf_endfile(void);
|
||||
|
||||
void new_string(void)
|
||||
static void new_string(void)
|
||||
{
|
||||
text = malloc(START_STRSIZE);
|
||||
text_asize = START_STRSIZE;
|
||||
@@ -47,7 +47,7 @@ void new_string(void)
|
||||
*text = 0;
|
||||
}
|
||||
|
||||
void append_string(const char *str, int size)
|
||||
static void append_string(const char *str, int size)
|
||||
{
|
||||
int new_size = text_size + size + 1;
|
||||
if (new_size > text_asize) {
|
||||
@@ -61,7 +61,7 @@ void append_string(const char *str, int size)
|
||||
text[text_size] = 0;
|
||||
}
|
||||
|
||||
void alloc_string(const char *str, int size)
|
||||
static void alloc_string(const char *str, int size)
|
||||
{
|
||||
text = malloc(size + 1);
|
||||
memcpy(text, str, size);
|
||||
|
||||
+190
-225
@@ -1,24 +1,23 @@
|
||||
/* A Bison parser, made by GNU Bison 2.3. */
|
||||
|
||||
/* A Bison parser, made by GNU Bison 2.4.1. */
|
||||
|
||||
/* Skeleton implementation for Bison's Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
@@ -29,7 +28,7 @@
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
@@ -47,7 +46,7 @@
|
||||
#define YYBISON 1
|
||||
|
||||
/* Bison version. */
|
||||
#define YYBISON_VERSION "2.3"
|
||||
#define YYBISON_VERSION "2.4.1"
|
||||
|
||||
/* Skeleton name. */
|
||||
#define YYSKELETON_NAME "yacc.c"
|
||||
@@ -55,17 +54,84 @@
|
||||
/* Pure parsers. */
|
||||
#define YYPURE 0
|
||||
|
||||
/* Push parsers. */
|
||||
#define YYPUSH 0
|
||||
|
||||
/* Pull parsers. */
|
||||
#define YYPULL 1
|
||||
|
||||
/* Using locations. */
|
||||
#define YYLSP_NEEDED 0
|
||||
|
||||
/* Substitute the variable and function names. */
|
||||
#define yyparse zconfparse
|
||||
#define yylex zconflex
|
||||
#define yyerror zconferror
|
||||
#define yylval zconflval
|
||||
#define yychar zconfchar
|
||||
#define yydebug zconfdebug
|
||||
#define yynerrs zconfnerrs
|
||||
#define yyparse zconfparse
|
||||
#define yylex zconflex
|
||||
#define yyerror zconferror
|
||||
#define yylval zconflval
|
||||
#define yychar zconfchar
|
||||
#define yydebug zconfdebug
|
||||
#define yynerrs zconfnerrs
|
||||
|
||||
|
||||
/* Copy the first part of user declarations. */
|
||||
|
||||
|
||||
/*
|
||||
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
|
||||
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
|
||||
|
||||
#define PRINTD 0x0001
|
||||
#define DEBUG_PARSE 0x0002
|
||||
|
||||
int cdebug = PRINTD;
|
||||
|
||||
extern int zconflex(void);
|
||||
static void zconfprint(const char *err, ...);
|
||||
static void zconf_error(const char *err, ...);
|
||||
static void zconferror(const char *err);
|
||||
static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
|
||||
|
||||
struct symbol *symbol_hash[257];
|
||||
|
||||
static struct menu *current_menu, *current_entry;
|
||||
|
||||
#define YYDEBUG 0
|
||||
#if YYDEBUG
|
||||
#define YYERROR_VERBOSE
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Enabling traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
#endif
|
||||
|
||||
/* Enabling verbose error messages. */
|
||||
#ifdef YYERROR_VERBOSE
|
||||
# undef YYERROR_VERBOSE
|
||||
# define YYERROR_VERBOSE 1
|
||||
#else
|
||||
# define YYERROR_VERBOSE 0
|
||||
#endif
|
||||
|
||||
/* Enabling the token table. */
|
||||
#ifndef YYTOKEN_TABLE
|
||||
# define YYTOKEN_TABLE 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Tokens. */
|
||||
@@ -108,129 +174,36 @@
|
||||
T_NOT = 289
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
#define T_MAINMENU 258
|
||||
#define T_MENU 259
|
||||
#define T_ENDMENU 260
|
||||
#define T_SOURCE 261
|
||||
#define T_CHOICE 262
|
||||
#define T_ENDCHOICE 263
|
||||
#define T_COMMENT 264
|
||||
#define T_CONFIG 265
|
||||
#define T_MENUCONFIG 266
|
||||
#define T_HELP 267
|
||||
#define T_HELPTEXT 268
|
||||
#define T_IF 269
|
||||
#define T_ENDIF 270
|
||||
#define T_DEPENDS 271
|
||||
#define T_OPTIONAL 272
|
||||
#define T_PROMPT 273
|
||||
#define T_TYPE 274
|
||||
#define T_DEFAULT 275
|
||||
#define T_SELECT 276
|
||||
#define T_RANGE 277
|
||||
#define T_OPTION 278
|
||||
#define T_ON 279
|
||||
#define T_WORD 280
|
||||
#define T_WORD_QUOTE 281
|
||||
#define T_UNEQUAL 282
|
||||
#define T_CLOSE_PAREN 283
|
||||
#define T_OPEN_PAREN 284
|
||||
#define T_EOL 285
|
||||
#define T_OR 286
|
||||
#define T_AND 287
|
||||
#define T_EQUAL 288
|
||||
#define T_NOT 289
|
||||
|
||||
|
||||
|
||||
|
||||
/* Copy the first part of user declarations. */
|
||||
|
||||
|
||||
/*
|
||||
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
|
||||
#include "zconf.hash.c"
|
||||
|
||||
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
|
||||
|
||||
#define PRINTD 0x0001
|
||||
#define DEBUG_PARSE 0x0002
|
||||
|
||||
int cdebug = PRINTD;
|
||||
|
||||
extern int zconflex(void);
|
||||
static void zconfprint(const char *err, ...);
|
||||
static void zconf_error(const char *err, ...);
|
||||
static void zconferror(const char *err);
|
||||
static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
|
||||
|
||||
struct symbol *symbol_hash[257];
|
||||
|
||||
static struct menu *current_menu, *current_entry;
|
||||
|
||||
#define YYDEBUG 0
|
||||
#if YYDEBUG
|
||||
#define YYERROR_VERBOSE
|
||||
#endif
|
||||
|
||||
|
||||
/* Enabling traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
#endif
|
||||
|
||||
/* Enabling verbose error messages. */
|
||||
#ifdef YYERROR_VERBOSE
|
||||
# undef YYERROR_VERBOSE
|
||||
# define YYERROR_VERBOSE 1
|
||||
#else
|
||||
# define YYERROR_VERBOSE 0
|
||||
#endif
|
||||
|
||||
/* Enabling the token table. */
|
||||
#ifndef YYTOKEN_TABLE
|
||||
# define YYTOKEN_TABLE 0
|
||||
#endif
|
||||
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef union YYSTYPE
|
||||
|
||||
{
|
||||
|
||||
|
||||
char *string;
|
||||
struct file *file;
|
||||
struct symbol *symbol;
|
||||
struct expr *expr;
|
||||
struct menu *menu;
|
||||
struct kconf_id *id;
|
||||
}
|
||||
/* Line 187 of yacc.c. */
|
||||
|
||||
YYSTYPE;
|
||||
|
||||
|
||||
} YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Copy the second part of user declarations. */
|
||||
|
||||
|
||||
/* Line 216 of yacc.c. */
|
||||
/* Include zconf.hash.c here so it can see the token constants. */
|
||||
#include "zconf.hash.c"
|
||||
|
||||
|
||||
|
||||
#ifdef short
|
||||
@@ -306,14 +279,14 @@ typedef short int yytype_int16;
|
||||
#if (defined __STDC__ || defined __C99__FUNC__ \
|
||||
|| defined __cplusplus || defined _MSC_VER)
|
||||
static int
|
||||
YYID (int i)
|
||||
YYID (int yyi)
|
||||
#else
|
||||
static int
|
||||
YYID (i)
|
||||
int i;
|
||||
YYID (yyi)
|
||||
int yyi;
|
||||
#endif
|
||||
{
|
||||
return i;
|
||||
return yyi;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -394,9 +367,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
|
||||
/* A type that is properly aligned for any stack member. */
|
||||
union yyalloc
|
||||
{
|
||||
yytype_int16 yyss;
|
||||
YYSTYPE yyvs;
|
||||
};
|
||||
yytype_int16 yyss_alloc;
|
||||
YYSTYPE yyvs_alloc;
|
||||
};
|
||||
|
||||
/* The size of the maximum gap between one aligned stack and the next. */
|
||||
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
|
||||
@@ -430,12 +403,12 @@ union yyalloc
|
||||
elements in the stack, and YYPTR gives the new location of the
|
||||
stack. Advance YYPTR to a properly aligned location for the next
|
||||
stack. */
|
||||
# define YYSTACK_RELOCATE(Stack) \
|
||||
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
|
||||
do \
|
||||
{ \
|
||||
YYSIZE_T yynewbytes; \
|
||||
YYCOPY (&yyptr->Stack, Stack, yysize); \
|
||||
Stack = &yyptr->Stack; \
|
||||
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
|
||||
Stack = &yyptr->Stack_alloc; \
|
||||
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
|
||||
yyptr += yynewbytes / sizeof (*yyptr); \
|
||||
} \
|
||||
@@ -558,18 +531,18 @@ static const yytype_int8 yyrhs[] =
|
||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||
static const yytype_uint16 yyrline[] =
|
||||
{
|
||||
0, 104, 104, 106, 108, 109, 110, 111, 112, 113,
|
||||
114, 118, 122, 122, 122, 122, 122, 122, 122, 126,
|
||||
127, 128, 129, 130, 131, 135, 136, 142, 150, 156,
|
||||
164, 174, 176, 177, 178, 179, 180, 181, 184, 192,
|
||||
198, 208, 214, 220, 223, 225, 236, 237, 242, 251,
|
||||
256, 264, 267, 269, 270, 271, 272, 273, 276, 282,
|
||||
293, 299, 309, 311, 316, 324, 332, 335, 337, 338,
|
||||
339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
|
||||
382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
|
||||
426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
|
||||
449, 450, 451, 452, 453, 454, 455, 458, 459, 462,
|
||||
463
|
||||
0, 107, 107, 109, 111, 112, 113, 114, 115, 116,
|
||||
117, 121, 125, 125, 125, 125, 125, 125, 125, 129,
|
||||
130, 131, 132, 133, 134, 138, 139, 145, 153, 159,
|
||||
167, 177, 179, 180, 181, 182, 183, 184, 187, 195,
|
||||
201, 211, 217, 223, 226, 228, 239, 240, 245, 254,
|
||||
259, 267, 270, 272, 273, 274, 275, 276, 279, 285,
|
||||
296, 302, 312, 314, 319, 327, 335, 338, 340, 341,
|
||||
342, 347, 354, 359, 367, 370, 372, 373, 374, 377,
|
||||
385, 392, 399, 405, 412, 414, 415, 416, 419, 427,
|
||||
429, 434, 435, 438, 439, 440, 444, 445, 448, 449,
|
||||
452, 453, 454, 455, 456, 457, 458, 461, 462, 465,
|
||||
466
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -985,17 +958,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
|
||||
#if (defined __STDC__ || defined __C99__FUNC__ \
|
||||
|| defined __cplusplus || defined _MSC_VER)
|
||||
static void
|
||||
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
|
||||
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
|
||||
#else
|
||||
static void
|
||||
yy_stack_print (bottom, top)
|
||||
yytype_int16 *bottom;
|
||||
yytype_int16 *top;
|
||||
yy_stack_print (yybottom, yytop)
|
||||
yytype_int16 *yybottom;
|
||||
yytype_int16 *yytop;
|
||||
#endif
|
||||
{
|
||||
YYFPRINTF (stderr, "Stack now");
|
||||
for (; bottom <= top; ++bottom)
|
||||
YYFPRINTF (stderr, " %d", *bottom);
|
||||
for (; yybottom <= yytop; yybottom++)
|
||||
{
|
||||
int yybot = *yybottom;
|
||||
YYFPRINTF (stderr, " %d", yybot);
|
||||
}
|
||||
YYFPRINTF (stderr, "\n");
|
||||
}
|
||||
|
||||
@@ -1029,11 +1005,11 @@ yy_reduce_print (yyvsp, yyrule)
|
||||
/* The symbols being reduced. */
|
||||
for (yyi = 0; yyi < yynrhs; yyi++)
|
||||
{
|
||||
fprintf (stderr, " $%d = ", yyi + 1);
|
||||
YYFPRINTF (stderr, " $%d = ", yyi + 1);
|
||||
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
|
||||
&(yyvsp[(yyi + 1) - (yynrhs)])
|
||||
);
|
||||
fprintf (stderr, "\n");
|
||||
YYFPRINTF (stderr, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1343,10 +1319,8 @@ yydestruct (yymsg, yytype, yyvaluep)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Prevent warnings from -Wmissing-prototypes. */
|
||||
|
||||
#ifdef YYPARSE_PARAM
|
||||
#if defined __STDC__ || defined __cplusplus
|
||||
int yyparse (void *YYPARSE_PARAM);
|
||||
@@ -1362,11 +1336,10 @@ int yyparse ();
|
||||
#endif /* ! YYPARSE_PARAM */
|
||||
|
||||
|
||||
|
||||
/* The look-ahead symbol. */
|
||||
/* The lookahead symbol. */
|
||||
int yychar;
|
||||
|
||||
/* The semantic value of the look-ahead symbol. */
|
||||
/* The semantic value of the lookahead symbol. */
|
||||
YYSTYPE yylval;
|
||||
|
||||
/* Number of syntax errors so far. */
|
||||
@@ -1374,9 +1347,9 @@ int yynerrs;
|
||||
|
||||
|
||||
|
||||
/*----------.
|
||||
| yyparse. |
|
||||
`----------*/
|
||||
/*-------------------------.
|
||||
| yyparse or yypush_parse. |
|
||||
`-------------------------*/
|
||||
|
||||
#ifdef YYPARSE_PARAM
|
||||
#if (defined __STDC__ || defined __C99__FUNC__ \
|
||||
@@ -1400,14 +1373,39 @@ yyparse ()
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
|
||||
int yystate;
|
||||
|
||||
|
||||
int yystate;
|
||||
/* Number of tokens to shift before error messages enabled. */
|
||||
int yyerrstatus;
|
||||
|
||||
/* The stacks and their tools:
|
||||
`yyss': related to states.
|
||||
`yyvs': related to semantic values.
|
||||
|
||||
Refer to the stacks thru separate pointers, to allow yyoverflow
|
||||
to reallocate them elsewhere. */
|
||||
|
||||
/* The state stack. */
|
||||
yytype_int16 yyssa[YYINITDEPTH];
|
||||
yytype_int16 *yyss;
|
||||
yytype_int16 *yyssp;
|
||||
|
||||
/* The semantic value stack. */
|
||||
YYSTYPE yyvsa[YYINITDEPTH];
|
||||
YYSTYPE *yyvs;
|
||||
YYSTYPE *yyvsp;
|
||||
|
||||
YYSIZE_T yystacksize;
|
||||
|
||||
int yyn;
|
||||
int yyresult;
|
||||
/* Number of tokens to shift before error messages enabled. */
|
||||
int yyerrstatus;
|
||||
/* Look-ahead token as an internal (translated) token number. */
|
||||
int yytoken = 0;
|
||||
/* Lookahead token as an internal (translated) token number. */
|
||||
int yytoken;
|
||||
/* The variables used to return semantic value and location from the
|
||||
action routines. */
|
||||
YYSTYPE yyval;
|
||||
|
||||
#if YYERROR_VERBOSE
|
||||
/* Buffer for error messages, and its allocated size. */
|
||||
char yymsgbuf[128];
|
||||
@@ -1415,51 +1413,28 @@ yyparse ()
|
||||
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
|
||||
#endif
|
||||
|
||||
/* Three stacks and their tools:
|
||||
`yyss': related to states,
|
||||
`yyvs': related to semantic values,
|
||||
`yyls': related to locations.
|
||||
|
||||
Refer to the stacks thru separate pointers, to allow yyoverflow
|
||||
to reallocate them elsewhere. */
|
||||
|
||||
/* The state stack. */
|
||||
yytype_int16 yyssa[YYINITDEPTH];
|
||||
yytype_int16 *yyss = yyssa;
|
||||
yytype_int16 *yyssp;
|
||||
|
||||
/* The semantic value stack. */
|
||||
YYSTYPE yyvsa[YYINITDEPTH];
|
||||
YYSTYPE *yyvs = yyvsa;
|
||||
YYSTYPE *yyvsp;
|
||||
|
||||
|
||||
|
||||
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
|
||||
|
||||
YYSIZE_T yystacksize = YYINITDEPTH;
|
||||
|
||||
/* The variables used to return semantic value and location from the
|
||||
action routines. */
|
||||
YYSTYPE yyval;
|
||||
|
||||
|
||||
/* The number of symbols on the RHS of the reduced rule.
|
||||
Keep to zero when no symbol should be popped. */
|
||||
int yylen = 0;
|
||||
|
||||
yytoken = 0;
|
||||
yyss = yyssa;
|
||||
yyvs = yyvsa;
|
||||
yystacksize = YYINITDEPTH;
|
||||
|
||||
YYDPRINTF ((stderr, "Starting parse\n"));
|
||||
|
||||
yystate = 0;
|
||||
yyerrstatus = 0;
|
||||
yynerrs = 0;
|
||||
yychar = YYEMPTY; /* Cause a token to be read. */
|
||||
yychar = YYEMPTY; /* Cause a token to be read. */
|
||||
|
||||
/* Initialize stack pointers.
|
||||
Waste one element of value and location stack
|
||||
so that they stay on the same level as the state stack.
|
||||
The wasted elements are never initialized. */
|
||||
|
||||
yyssp = yyss;
|
||||
yyvsp = yyvs;
|
||||
|
||||
@@ -1489,7 +1464,6 @@ yyparse ()
|
||||
YYSTYPE *yyvs1 = yyvs;
|
||||
yytype_int16 *yyss1 = yyss;
|
||||
|
||||
|
||||
/* Each stack pointer address is followed by the size of the
|
||||
data in use in that stack, in bytes. This used to be a
|
||||
conditional around just the two extra args, but that might
|
||||
@@ -1497,7 +1471,6 @@ yyparse ()
|
||||
yyoverflow (YY_("memory exhausted"),
|
||||
&yyss1, yysize * sizeof (*yyssp),
|
||||
&yyvs1, yysize * sizeof (*yyvsp),
|
||||
|
||||
&yystacksize);
|
||||
|
||||
yyss = yyss1;
|
||||
@@ -1520,9 +1493,8 @@ yyparse ()
|
||||
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
||||
if (! yyptr)
|
||||
goto yyexhaustedlab;
|
||||
YYSTACK_RELOCATE (yyss);
|
||||
YYSTACK_RELOCATE (yyvs);
|
||||
|
||||
YYSTACK_RELOCATE (yyss_alloc, yyss);
|
||||
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
|
||||
# undef YYSTACK_RELOCATE
|
||||
if (yyss1 != yyssa)
|
||||
YYSTACK_FREE (yyss1);
|
||||
@@ -1533,7 +1505,6 @@ yyparse ()
|
||||
yyssp = yyss + yysize - 1;
|
||||
yyvsp = yyvs + yysize - 1;
|
||||
|
||||
|
||||
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
||||
(unsigned long int) yystacksize));
|
||||
|
||||
@@ -1543,6 +1514,9 @@ yyparse ()
|
||||
|
||||
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
||||
|
||||
if (yystate == YYFINAL)
|
||||
YYACCEPT;
|
||||
|
||||
goto yybackup;
|
||||
|
||||
/*-----------.
|
||||
@@ -1551,16 +1525,16 @@ yyparse ()
|
||||
yybackup:
|
||||
|
||||
/* Do appropriate processing given the current state. Read a
|
||||
look-ahead token if we need one and don't already have one. */
|
||||
lookahead token if we need one and don't already have one. */
|
||||
|
||||
/* First try to decide what to do without reference to look-ahead token. */
|
||||
/* First try to decide what to do without reference to lookahead token. */
|
||||
yyn = yypact[yystate];
|
||||
if (yyn == YYPACT_NINF)
|
||||
goto yydefault;
|
||||
|
||||
/* Not known => get a look-ahead token if don't already have one. */
|
||||
/* Not known => get a lookahead token if don't already have one. */
|
||||
|
||||
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
|
||||
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
|
||||
if (yychar == YYEMPTY)
|
||||
{
|
||||
YYDPRINTF ((stderr, "Reading a token: "));
|
||||
@@ -1592,20 +1566,16 @@ yybackup:
|
||||
goto yyreduce;
|
||||
}
|
||||
|
||||
if (yyn == YYFINAL)
|
||||
YYACCEPT;
|
||||
|
||||
/* Count tokens shifted since error; after three, turn off error
|
||||
status. */
|
||||
if (yyerrstatus)
|
||||
yyerrstatus--;
|
||||
|
||||
/* Shift the look-ahead token. */
|
||||
/* Shift the lookahead token. */
|
||||
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
|
||||
|
||||
/* Discard the shifted token unless it is eof. */
|
||||
if (yychar != YYEOF)
|
||||
yychar = YYEMPTY;
|
||||
/* Discard the shifted token. */
|
||||
yychar = YYEMPTY;
|
||||
|
||||
yystate = yyn;
|
||||
*++yyvsp = yylval;
|
||||
@@ -2029,7 +1999,6 @@ yyreduce:
|
||||
break;
|
||||
|
||||
|
||||
/* Line 1267 of yacc.c. */
|
||||
|
||||
default: break;
|
||||
}
|
||||
@@ -2041,7 +2010,6 @@ yyreduce:
|
||||
|
||||
*++yyvsp = yyval;
|
||||
|
||||
|
||||
/* Now `shift' the result of the reduction. Determine what state
|
||||
that goes to, based on the state we popped back to and the rule
|
||||
number reduced by. */
|
||||
@@ -2106,7 +2074,7 @@ yyerrlab:
|
||||
|
||||
if (yyerrstatus == 3)
|
||||
{
|
||||
/* If just tried and failed to reuse look-ahead token after an
|
||||
/* If just tried and failed to reuse lookahead token after an
|
||||
error, discard it. */
|
||||
|
||||
if (yychar <= YYEOF)
|
||||
@@ -2123,7 +2091,7 @@ yyerrlab:
|
||||
}
|
||||
}
|
||||
|
||||
/* Else will try to reuse look-ahead token after shifting the error
|
||||
/* Else will try to reuse lookahead token after shifting the error
|
||||
token. */
|
||||
goto yyerrlab1;
|
||||
|
||||
@@ -2180,9 +2148,6 @@ yyerrlab1:
|
||||
YY_STACK_PRINT (yyss, yyssp);
|
||||
}
|
||||
|
||||
if (yyn == YYFINAL)
|
||||
YYACCEPT;
|
||||
|
||||
*++yyvsp = yylval;
|
||||
|
||||
|
||||
@@ -2207,7 +2172,7 @@ yyabortlab:
|
||||
yyresult = 1;
|
||||
goto yyreturn;
|
||||
|
||||
#ifndef yyoverflow
|
||||
#if !defined(yyoverflow) || YYERROR_VERBOSE
|
||||
/*-------------------------------------------------.
|
||||
| yyexhaustedlab -- memory exhaustion comes here. |
|
||||
`-------------------------------------------------*/
|
||||
@@ -2218,7 +2183,7 @@ yyexhaustedlab:
|
||||
#endif
|
||||
|
||||
yyreturn:
|
||||
if (yychar != YYEOF && yychar != YYEMPTY)
|
||||
if (yychar != YYEMPTY)
|
||||
yydestruct ("Cleanup: discarding lookahead",
|
||||
yytoken, &yylval);
|
||||
/* Do not reclaim the symbols of the rule which action triggered
|
||||
@@ -2284,7 +2249,7 @@ void conf_parse(const char *name)
|
||||
sym_set_change_count(1);
|
||||
}
|
||||
|
||||
const char *zconf_tokenname(int token)
|
||||
static const char *zconf_tokenname(int token)
|
||||
{
|
||||
switch (token) {
|
||||
case T_MENU: return "menu";
|
||||
@@ -2348,7 +2313,7 @@ static void zconferror(const char *err)
|
||||
#endif
|
||||
}
|
||||
|
||||
void print_quoted_string(FILE *out, const char *str)
|
||||
static void print_quoted_string(FILE *out, const char *str)
|
||||
{
|
||||
const char *p;
|
||||
int len;
|
||||
@@ -2365,7 +2330,7 @@ void print_quoted_string(FILE *out, const char *str)
|
||||
putc('"', out);
|
||||
}
|
||||
|
||||
void print_symbol(FILE *out, struct menu *menu)
|
||||
static void print_symbol(FILE *out, struct menu *menu)
|
||||
{
|
||||
struct symbol *sym = menu->sym;
|
||||
struct property *prop;
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
|
||||
#include "zconf.hash.c"
|
||||
|
||||
#define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
|
||||
|
||||
#define PRINTD 0x0001
|
||||
@@ -100,6 +98,11 @@ static struct menu *current_menu, *current_entry;
|
||||
menu_end_menu();
|
||||
} if_entry menu_entry choice_entry
|
||||
|
||||
%{
|
||||
/* Include zconf.hash.c here so it can see the token constants. */
|
||||
#include "zconf.hash.c"
|
||||
%}
|
||||
|
||||
%%
|
||||
input: stmt_list;
|
||||
|
||||
@@ -501,7 +504,7 @@ void conf_parse(const char *name)
|
||||
sym_set_change_count(1);
|
||||
}
|
||||
|
||||
const char *zconf_tokenname(int token)
|
||||
static const char *zconf_tokenname(int token)
|
||||
{
|
||||
switch (token) {
|
||||
case T_MENU: return "menu";
|
||||
@@ -565,7 +568,7 @@ static void zconferror(const char *err)
|
||||
#endif
|
||||
}
|
||||
|
||||
void print_quoted_string(FILE *out, const char *str)
|
||||
static void print_quoted_string(FILE *out, const char *str)
|
||||
{
|
||||
const char *p;
|
||||
int len;
|
||||
@@ -582,7 +585,7 @@ void print_quoted_string(FILE *out, const char *str)
|
||||
putc('"', out);
|
||||
}
|
||||
|
||||
void print_symbol(FILE *out, struct menu *menu)
|
||||
static void print_symbol(FILE *out, struct menu *menu)
|
||||
{
|
||||
struct symbol *sym = menu->sym;
|
||||
struct property *prop;
|
||||
|
||||
+9
-3
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
TARGET=$1
|
||||
ARCH=$2
|
||||
SMP=$3
|
||||
@@ -50,7 +52,7 @@ UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
|
||||
# Truncate to maximum length
|
||||
|
||||
UTS_LEN=64
|
||||
UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
|
||||
UTS_TRUNCATE="cut -b -$UTS_LEN"
|
||||
|
||||
# Generate a temporary compile.h
|
||||
|
||||
@@ -66,9 +68,13 @@ UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
|
||||
echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
|
||||
|
||||
if [ -x /bin/dnsdomainname ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname | $UTS_TRUNCATE`\"
|
||||
domain=`dnsdomainname 2> /dev/null`
|
||||
elif [ -x /bin/domainname ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`domainname | $UTS_TRUNCATE`\"
|
||||
domain=`domainname 2> /dev/null`
|
||||
fi
|
||||
|
||||
if [ -n "$domain" ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`echo $domain | $UTS_TRUNCATE`\"
|
||||
else
|
||||
echo \#define LINUX_COMPILE_DOMAIN
|
||||
fi
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
# e) generate the rpm files, based on kernel.spec
|
||||
# - Use /. to avoid tar packing just the symlink
|
||||
|
||||
# Note that the rpm-pkg target cannot be used with KBUILD_OUTPUT,
|
||||
# but the binrpm-pkg target can; for some reason O= gets ignored.
|
||||
|
||||
# Do we have rpmbuild, otherwise fall back to the older rpm
|
||||
RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
|
||||
else echo rpm; fi)
|
||||
@@ -33,6 +36,12 @@ $(objtree)/kernel.spec: $(MKSPEC) $(srctree)/Makefile
|
||||
$(CONFIG_SHELL) $(MKSPEC) > $@
|
||||
|
||||
rpm-pkg rpm: $(objtree)/kernel.spec FORCE
|
||||
@if test -n "$(KBUILD_OUTPUT)"; then \
|
||||
echo "Building source + binary RPM is not possible outside the"; \
|
||||
echo "kernel source tree. Don't set KBUILD_OUTPUT, or use the"; \
|
||||
echo "binrpm-pkg target instead."; \
|
||||
false; \
|
||||
fi
|
||||
$(MAKE) clean
|
||||
$(PREV) ln -sf $(srctree) $(KERNELPATH)
|
||||
$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion > $(objtree)/.scmversion
|
||||
@@ -61,7 +70,7 @@ binrpm-pkg: $(objtree)/binkernel.spec FORCE
|
||||
set -e; \
|
||||
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
||||
|
||||
$(RPM) $(RPMOPTS) --define "_builddir $(srctree)" --target \
|
||||
$(RPM) $(RPMOPTS) --define "_builddir $(objtree)" --target \
|
||||
$(UTS_MACHINE) -bb $<
|
||||
|
||||
clean-files += $(objtree)/binkernel.spec
|
||||
|
||||
@@ -70,7 +70,7 @@ echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
|
||||
echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware'
|
||||
echo "%endif"
|
||||
|
||||
echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{_smp_mflags} modules_install'
|
||||
echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{_smp_mflags} KBUILD_SRC= modules_install'
|
||||
echo "%ifarch ia64"
|
||||
echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
|
||||
echo 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
|
||||
|
||||
Reference in New Issue
Block a user