Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
* 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: Kbuild: append missing-syscalls to the default target list genksyms: Regenerate lexer and parser genksyms: Do not expand internal types genksyms: Minor parser cleanup Makefile: remove a duplicated line fixdep: fix extraneous dependencies scripts/Makefile.build: do not reference EXTRA_CFLAGS as CFLAGS replacement kbuild: prevent make from deleting _shipped files kbuild: Do not delete empty files in make distclean
This commit is contained in:
@@ -46,7 +46,7 @@ include $(kbuild-file)
|
||||
# If the save-* variables changed error out
|
||||
ifeq ($(KBUILD_NOPEDANTIC),)
|
||||
ifneq ("$(save-cflags)","$(CFLAGS)")
|
||||
$(error CFLAGS was changed in "$(kbuild-file)". Fix it to use EXTRA_CFLAGS)
|
||||
$(error CFLAGS was changed in "$(kbuild-file)". Fix it to use ccflags-y)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@@ -167,6 +167,7 @@ ifdef REGENERATE_PARSERS
|
||||
quiet_cmd_gperf = GPERF $@
|
||||
cmd_gperf = gperf -t --output-file $@ -a -C -E -g -k 1,3,$$ -p -t $<
|
||||
|
||||
.PRECIOUS: $(src)/%.hash.c_shipped
|
||||
$(src)/%.hash.c_shipped: $(src)/%.gperf
|
||||
$(call cmd,gperf)
|
||||
|
||||
@@ -177,6 +178,7 @@ LEX_PREFIX = $(if $(LEX_PREFIX_${baseprereq}),$(LEX_PREFIX_${baseprereq}),yy)
|
||||
quiet_cmd_flex = LEX $@
|
||||
cmd_flex = flex -o$@ -L -P $(LEX_PREFIX) $<
|
||||
|
||||
.PRECIOUS: $(src)/%.lex.c_shipped
|
||||
$(src)/%.lex.c_shipped: $(src)/%.l
|
||||
$(call cmd,flex)
|
||||
|
||||
@@ -187,12 +189,14 @@ YACC_PREFIX = $(if $(YACC_PREFIX_${baseprereq}),$(YACC_PREFIX_${baseprereq}),yy)
|
||||
quiet_cmd_bison = YACC $@
|
||||
cmd_bison = bison -o$@ -t -l -p $(YACC_PREFIX) $<
|
||||
|
||||
.PRECIOUS: $(src)/%.tab.c_shipped
|
||||
$(src)/%.tab.c_shipped: $(src)/%.y
|
||||
$(call cmd,bison)
|
||||
|
||||
quiet_cmd_bison_h = YACC $@
|
||||
cmd_bison_h = bison -o/dev/null --defines=$@ -t -l -p $(YACC_PREFIX) $<
|
||||
|
||||
.PRECIOUS: $(src)/%.tab.h_shipped
|
||||
$(src)/%.tab.h_shipped: $(src)/%.y
|
||||
$(call cmd,bison_h)
|
||||
|
||||
|
@@ -345,6 +345,7 @@ static void parse_dep_file(void *map, size_t len)
|
||||
memcpy(s, m, p-m); s[p-m] = 0;
|
||||
if (strrcmp(s, "include/generated/autoconf.h") &&
|
||||
strrcmp(s, "arch/um/include/uml-config.h") &&
|
||||
strrcmp(s, "include/linux/kconfig.h") &&
|
||||
strrcmp(s, ".ver")) {
|
||||
/*
|
||||
* Do not list the source file as dependency, so that
|
||||
|
@@ -40,7 +40,8 @@ static struct symbol *symtab[HASH_BUCKETS];
|
||||
static FILE *debugfile;
|
||||
|
||||
int cur_line = 1;
|
||||
char *cur_filename;
|
||||
char *cur_filename, *source_file;
|
||||
int in_source_file;
|
||||
|
||||
static int flag_debug, flag_dump_defs, flag_reference, flag_dump_types,
|
||||
flag_preserve, flag_warnings;
|
||||
|
@@ -37,6 +37,7 @@ enum symbol_status {
|
||||
struct string_list {
|
||||
struct string_list *next;
|
||||
enum symbol_type tag;
|
||||
int in_source_file;
|
||||
char *string;
|
||||
};
|
||||
|
||||
@@ -57,7 +58,8 @@ typedef struct string_list **yystype;
|
||||
#define YYSTYPE yystype
|
||||
|
||||
extern int cur_line;
|
||||
extern char *cur_filename;
|
||||
extern char *cur_filename, *source_file;
|
||||
extern int in_source_file;
|
||||
|
||||
struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact);
|
||||
struct symbol *add_symbol(const char *name, enum symbol_type type,
|
||||
|
@@ -116,6 +116,7 @@ MC_TOKEN ([~%^&*+=|<>/-]=)|(&&)|("||")|(->)|(<<)|(>>)
|
||||
cur_node->tag = \
|
||||
find_symbol(cur_node->string, SYM_ENUM_CONST, 1)?\
|
||||
SYM_ENUM_CONST : SYM_NORMAL ; \
|
||||
cur_node->in_source_file = in_source_file; \
|
||||
} while (0)
|
||||
|
||||
#define APP _APP(yytext, yyleng)
|
||||
@@ -166,6 +167,13 @@ repeat:
|
||||
cur_filename = memcpy(xmalloc(e-file+1), file, e-file+1);
|
||||
cur_line = atoi(yytext+2);
|
||||
|
||||
if (!source_file) {
|
||||
source_file = xstrdup(cur_filename);
|
||||
in_source_file = 1;
|
||||
} else {
|
||||
in_source_file = (strcmp(cur_filename, source_file) == 0);
|
||||
}
|
||||
|
||||
goto repeat;
|
||||
}
|
||||
|
||||
|
@@ -660,7 +660,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 do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
|
||||
#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -671,7 +671,7 @@ static int input (void );
|
||||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
||||
{ \
|
||||
int c = '*'; \
|
||||
unsigned n; \
|
||||
int n; \
|
||||
for ( n = 0; n < max_size && \
|
||||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
||||
buf[n] = (char) c; \
|
||||
@@ -1926,6 +1926,7 @@ void yyfree (void * ptr )
|
||||
cur_node->tag = \
|
||||
find_symbol(cur_node->string, SYM_ENUM_CONST, 1)?\
|
||||
SYM_ENUM_CONST : SYM_NORMAL ; \
|
||||
cur_node->in_source_file = in_source_file; \
|
||||
} while (0)
|
||||
|
||||
#define APP _APP(yytext, yyleng)
|
||||
@@ -1975,6 +1976,13 @@ repeat:
|
||||
cur_filename = memcpy(xmalloc(e-file+1), file, e-file+1);
|
||||
cur_line = atoi(yytext+2);
|
||||
|
||||
if (!source_file) {
|
||||
source_file = xstrdup(cur_filename);
|
||||
in_source_file = 1;
|
||||
} else {
|
||||
in_source_file = (strcmp(cur_filename, source_file) == 0);
|
||||
}
|
||||
|
||||
goto repeat;
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,8 @@
|
||||
/* A Bison parser, made by GNU Bison 2.4.3. */
|
||||
/* A Bison parser, made by GNU Bison 2.5. */
|
||||
|
||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
2009, 2010 Free Software Foundation, Inc.
|
||||
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
|
@@ -51,6 +51,25 @@ remove_list(struct string_list **pb, struct string_list **pe)
|
||||
free_list(b, e);
|
||||
}
|
||||
|
||||
/* Record definition of a struct/union/enum */
|
||||
static void record_compound(struct string_list **keyw,
|
||||
struct string_list **ident,
|
||||
struct string_list **body,
|
||||
enum symbol_type type)
|
||||
{
|
||||
struct string_list *b = *body, *i = *ident, *r;
|
||||
|
||||
if (i->in_source_file) {
|
||||
remove_node(keyw);
|
||||
(*ident)->tag = type;
|
||||
remove_list(body, ident);
|
||||
return;
|
||||
}
|
||||
r = copy_node(i); r->tag = type;
|
||||
r->next = (*keyw)->next; *body = r; (*keyw)->next = NULL;
|
||||
add_symbol(i->string, type, b, is_extern);
|
||||
}
|
||||
|
||||
%}
|
||||
|
||||
%token ASM_KEYW
|
||||
@@ -215,26 +234,11 @@ type_specifier:
|
||||
|
||||
/* Full definitions of an s/u/e. Record it. */
|
||||
| STRUCT_KEYW IDENT class_body
|
||||
{ struct string_list *s = *$3, *i = *$2, *r;
|
||||
r = copy_node(i); r->tag = SYM_STRUCT;
|
||||
r->next = (*$1)->next; *$3 = r; (*$1)->next = NULL;
|
||||
add_symbol(i->string, SYM_STRUCT, s, is_extern);
|
||||
$$ = $3;
|
||||
}
|
||||
{ record_compound($1, $2, $3, SYM_STRUCT); $$ = $3; }
|
||||
| UNION_KEYW IDENT class_body
|
||||
{ struct string_list *s = *$3, *i = *$2, *r;
|
||||
r = copy_node(i); r->tag = SYM_UNION;
|
||||
r->next = (*$1)->next; *$3 = r; (*$1)->next = NULL;
|
||||
add_symbol(i->string, SYM_UNION, s, is_extern);
|
||||
$$ = $3;
|
||||
}
|
||||
{ record_compound($1, $2, $3, SYM_UNION); $$ = $3; }
|
||||
| ENUM_KEYW IDENT enum_body
|
||||
{ struct string_list *s = *$3, *i = *$2, *r;
|
||||
r = copy_node(i); r->tag = SYM_ENUM;
|
||||
r->next = (*$1)->next; *$3 = r; (*$1)->next = NULL;
|
||||
add_symbol(i->string, SYM_ENUM, s, is_extern);
|
||||
$$ = $3;
|
||||
}
|
||||
{ record_compound($1, $2, $3, SYM_ENUM); $$ = $3; }
|
||||
/*
|
||||
* Anonymous enum definition. Tell add_symbol() to restart its counter.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user