Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull kbuild misc updates from Michal Marek: "This is the non-critical part of kbuild for v3.16-rc1: - make deb-pkg can do s390x and arm64 - new patterns in scripts/tags.sh - scripts/tags.sh skips userspace tools' sources (which sometimes have copies of kernel structures) and symlinks - improvements to the objdiff tool - two new coccinelle patches - other minor fixes" * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: scripts: objdiff: support directories for the augument of record command scripts: objdiff: fix a comment scripts: objdiff: change the extension of disassembly from .o to .dis scripts: objdiff: improve path flexibility for record command scripts: objdiff: remove unnecessary code scripts: objdiff: direct error messages to stderr scripts: objdiff: get the path to .tmp_objdiff more simply deb-pkg: Add automatic support for s390x architecture coccicheck: Add unneeded return variable test kbuild: Fix a typo in documentation kbuild: trivial - use tabs for code indent where possible kbuild: trivial - remove trailing empty lines coccinelle: Check for missing NULL terminators in of_device_id tables scripts/tags.sh: ignore symlink'ed source files scripts/tags.sh: add regular expression replacement pattern for memcg builddeb: add arm64 in the supported architectures builddeb: use $OBJCOPY variable instead of objcopy scripts/tags.sh: ignore code of user space tools scripts/tags.sh: add pattern for DEFINE_HASHTABLE .gitignore: ignore Module.symvers in all directories
This commit is contained in:
commit
c1fdb2d338
|
@ -22,7 +22,6 @@
|
||||||
*.lst
|
*.lst
|
||||||
*.symtypes
|
*.symtypes
|
||||||
*.order
|
*.order
|
||||||
modules.builtin
|
|
||||||
*.elf
|
*.elf
|
||||||
*.bin
|
*.bin
|
||||||
*.gz
|
*.gz
|
||||||
|
@ -33,6 +32,8 @@ modules.builtin
|
||||||
*.lzo
|
*.lzo
|
||||||
*.patch
|
*.patch
|
||||||
*.gcno
|
*.gcno
|
||||||
|
modules.builtin
|
||||||
|
Module.symvers
|
||||||
|
|
||||||
#
|
#
|
||||||
# Top-level generic files
|
# Top-level generic files
|
||||||
|
@ -44,7 +45,6 @@ modules.builtin
|
||||||
/vmlinuz
|
/vmlinuz
|
||||||
/System.map
|
/System.map
|
||||||
/Module.markers
|
/Module.markers
|
||||||
/Module.symvers
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Debian directory (make deb-pkg)
|
# Debian directory (make deb-pkg)
|
||||||
|
|
|
@ -470,7 +470,7 @@ build.
|
||||||
|
|
||||||
Sometimes, an external module uses exported symbols from
|
Sometimes, an external module uses exported symbols from
|
||||||
another external module. kbuild needs to have full knowledge of
|
another external module. kbuild needs to have full knowledge of
|
||||||
all symbols to avoid spliitting out warnings about undefined
|
all symbols to avoid spitting out warnings about undefined
|
||||||
symbols. Three solutions exist for this situation.
|
symbols. Three solutions exist for this situation.
|
||||||
|
|
||||||
NOTE: The method with a top-level kbuild file is recommended
|
NOTE: The method with a top-level kbuild file is recommended
|
||||||
|
|
|
@ -21,4 +21,3 @@ all: $(patsubst %, $(obj)/%, $(generic-y))
|
||||||
|
|
||||||
$(obj)/%.h:
|
$(obj)/%.h:
|
||||||
$(call cmd,wrap)
|
$(call cmd,wrap)
|
||||||
|
|
||||||
|
|
|
@ -167,4 +167,3 @@ $(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
|
||||||
|
|
||||||
targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
|
targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
|
||||||
$(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs)
|
$(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs)
|
||||||
|
|
||||||
|
|
|
@ -409,10 +409,10 @@ static void print_deps(void)
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
if (fstat(fd, &st) < 0) {
|
if (fstat(fd, &st) < 0) {
|
||||||
fprintf(stderr, "fixdep: error fstat'ing depfile: ");
|
fprintf(stderr, "fixdep: error fstat'ing depfile: ");
|
||||||
perror(depfile);
|
perror(depfile);
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
if (st.st_size == 0) {
|
if (st.st_size == 0) {
|
||||||
fprintf(stderr,"fixdep: %s is empty\n",depfile);
|
fprintf(stderr,"fixdep: %s is empty\n",depfile);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
|
@ -173,4 +173,3 @@ while (my $line = <STDIN>) {
|
||||||
|
|
||||||
# Sort output by size (last field)
|
# Sort output by size (last field)
|
||||||
print sort { ($b =~ /:\t*(\d+)$/)[0] <=> ($a =~ /:\t*(\d+)$/)[0] } @stack;
|
print sort { ($b =~ /:\t*(\d+)$/)[0] <=> ($a =~ /:\t*(\d+)$/)[0] } @stack;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
/// Make sure of_device_id tables are NULL terminated
|
||||||
|
//
|
||||||
|
// Keywords: of_table
|
||||||
|
// Confidence: Medium
|
||||||
|
// Options: --include-headers
|
||||||
|
|
||||||
|
virtual patch
|
||||||
|
virtual context
|
||||||
|
virtual org
|
||||||
|
virtual report
|
||||||
|
|
||||||
|
@depends on context@
|
||||||
|
identifier var, arr;
|
||||||
|
expression E;
|
||||||
|
@@
|
||||||
|
struct of_device_id arr[] = {
|
||||||
|
...,
|
||||||
|
{
|
||||||
|
.var = E,
|
||||||
|
* }
|
||||||
|
};
|
||||||
|
|
||||||
|
@depends on patch@
|
||||||
|
identifier var, arr;
|
||||||
|
expression E;
|
||||||
|
@@
|
||||||
|
struct of_device_id arr[] = {
|
||||||
|
...,
|
||||||
|
{
|
||||||
|
.var = E,
|
||||||
|
- }
|
||||||
|
+ },
|
||||||
|
+ { }
|
||||||
|
};
|
||||||
|
|
||||||
|
@r depends on org || report@
|
||||||
|
position p1;
|
||||||
|
identifier var, arr;
|
||||||
|
expression E;
|
||||||
|
@@
|
||||||
|
struct of_device_id arr[] = {
|
||||||
|
...,
|
||||||
|
{
|
||||||
|
.var = E,
|
||||||
|
}
|
||||||
|
@p1
|
||||||
|
};
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p1 << r.p1;
|
||||||
|
arr << r.arr;
|
||||||
|
@@
|
||||||
|
|
||||||
|
cocci.print_main(arr,p1)
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r.p1;
|
||||||
|
arr << r.arr;
|
||||||
|
@@
|
||||||
|
|
||||||
|
msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
|
||||||
|
coccilib.report.print_report(p1[0],msg)
|
|
@ -0,0 +1,66 @@
|
||||||
|
///
|
||||||
|
/// Removes unneeded variable used to store return value.
|
||||||
|
///
|
||||||
|
// Confidence: Moderate
|
||||||
|
// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2.
|
||||||
|
// URL: http://coccinelle.lip6.fr/
|
||||||
|
// Comments: Comments on code can be deleted if near code that is removed.
|
||||||
|
// "when strict" can be removed to get more hits, but adds false
|
||||||
|
// positives
|
||||||
|
// Options: --no-includes --include-headers
|
||||||
|
|
||||||
|
virtual patch
|
||||||
|
virtual report
|
||||||
|
virtual context
|
||||||
|
virtual org
|
||||||
|
|
||||||
|
@depends on patch@
|
||||||
|
type T;
|
||||||
|
constant C;
|
||||||
|
identifier ret;
|
||||||
|
@@
|
||||||
|
- T ret = C;
|
||||||
|
... when != ret
|
||||||
|
when strict
|
||||||
|
return
|
||||||
|
- ret
|
||||||
|
+ C
|
||||||
|
;
|
||||||
|
|
||||||
|
@depends on context@
|
||||||
|
type T;
|
||||||
|
constant C;
|
||||||
|
identifier ret;
|
||||||
|
@@
|
||||||
|
* T ret = C;
|
||||||
|
... when != ret
|
||||||
|
when strict
|
||||||
|
* return ret;
|
||||||
|
|
||||||
|
@r1 depends on report || org@
|
||||||
|
type T;
|
||||||
|
constant C;
|
||||||
|
identifier ret;
|
||||||
|
position p1, p2;
|
||||||
|
@@
|
||||||
|
T ret@p1 = C;
|
||||||
|
... when != ret
|
||||||
|
when strict
|
||||||
|
return ret@p2;
|
||||||
|
|
||||||
|
@script:python depends on report@
|
||||||
|
p1 << r1.p1;
|
||||||
|
p2 << r1.p2;
|
||||||
|
C << r1.C;
|
||||||
|
ret << r1.ret;
|
||||||
|
@@
|
||||||
|
coccilib.report.print_report(p1[0], "Unneeded variable: \"" + ret + "\". Return \"" + C + "\" on line " + p2[0].line)
|
||||||
|
|
||||||
|
@script:python depends on org@
|
||||||
|
p1 << r1.p1;
|
||||||
|
p2 << r1.p2;
|
||||||
|
C << r1.C;
|
||||||
|
ret << r1.ret;
|
||||||
|
@@
|
||||||
|
cocci.print_main("unneeded \"" + ret + "\" variable", p1)
|
||||||
|
cocci.print_sec("return " + C + " here", p2)
|
|
@ -223,4 +223,3 @@ while [ "$1" != "" ] ; do
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -154,7 +154,7 @@ int symfilecnt = 0;
|
||||||
static void add_new_symbol(struct symfile *sym, char * symname)
|
static void add_new_symbol(struct symfile *sym, char * symname)
|
||||||
{
|
{
|
||||||
sym->symbollist =
|
sym->symbollist =
|
||||||
realloc(sym->symbollist, (sym->symbolcnt + 1) * sizeof(char *));
|
realloc(sym->symbollist, (sym->symbolcnt + 1) * sizeof(char *));
|
||||||
sym->symbollist[sym->symbolcnt++].name = strdup(symname);
|
sym->symbollist[sym->symbolcnt++].name = strdup(symname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ static void find_export_symbols(char * filename)
|
||||||
char *p;
|
char *p;
|
||||||
char *e;
|
char *e;
|
||||||
if (((p = strstr(line, "EXPORT_SYMBOL_GPL")) != NULL) ||
|
if (((p = strstr(line, "EXPORT_SYMBOL_GPL")) != NULL) ||
|
||||||
((p = strstr(line, "EXPORT_SYMBOL")) != NULL)) {
|
((p = strstr(line, "EXPORT_SYMBOL")) != NULL)) {
|
||||||
/* Skip EXPORT_SYMBOL{_GPL} */
|
/* Skip EXPORT_SYMBOL{_GPL} */
|
||||||
while (isalnum(*p) || *p == '_')
|
while (isalnum(*p) || *p == '_')
|
||||||
p++;
|
p++;
|
||||||
|
@ -291,28 +291,28 @@ static void extfunc(char * filename) { docfunctions(filename, FUNCTION); }
|
||||||
static void singfunc(char * filename, char * line)
|
static void singfunc(char * filename, char * line)
|
||||||
{
|
{
|
||||||
char *vec[200]; /* Enough for specific functions */
|
char *vec[200]; /* Enough for specific functions */
|
||||||
int i, idx = 0;
|
int i, idx = 0;
|
||||||
int startofsym = 1;
|
int startofsym = 1;
|
||||||
vec[idx++] = KERNELDOC;
|
vec[idx++] = KERNELDOC;
|
||||||
vec[idx++] = DOCBOOK;
|
vec[idx++] = DOCBOOK;
|
||||||
vec[idx++] = SHOWNOTFOUND;
|
vec[idx++] = SHOWNOTFOUND;
|
||||||
|
|
||||||
/* Split line up in individual parameters preceded by FUNCTION */
|
/* Split line up in individual parameters preceded by FUNCTION */
|
||||||
for (i=0; line[i]; i++) {
|
for (i=0; line[i]; i++) {
|
||||||
if (isspace(line[i])) {
|
if (isspace(line[i])) {
|
||||||
line[i] = '\0';
|
line[i] = '\0';
|
||||||
startofsym = 1;
|
startofsym = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (startofsym) {
|
if (startofsym) {
|
||||||
startofsym = 0;
|
startofsym = 0;
|
||||||
vec[idx++] = FUNCTION;
|
vec[idx++] = FUNCTION;
|
||||||
vec[idx++] = &line[i];
|
vec[idx++] = &line[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < idx; i++) {
|
for (i = 0; i < idx; i++) {
|
||||||
if (strcmp(vec[i], FUNCTION))
|
if (strcmp(vec[i], FUNCTION))
|
||||||
continue;
|
continue;
|
||||||
consume_symbol(vec[i + 1]);
|
consume_symbol(vec[i + 1]);
|
||||||
}
|
}
|
||||||
vec[idx++] = filename;
|
vec[idx++] = filename;
|
||||||
|
@ -460,14 +460,14 @@ static void parse_file(FILE *infile)
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
while (*s && !isspace(*s)) s++;
|
while (*s && !isspace(*s)) s++;
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
symbolsonly(line+2);
|
symbolsonly(line+2);
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
/* filename */
|
/* filename */
|
||||||
while (*s && !isspace(*s)) s++;
|
while (*s && !isspace(*s)) s++;
|
||||||
*s++ = '\0';
|
*s++ = '\0';
|
||||||
/* function names */
|
/* function names */
|
||||||
while (isspace(*s))
|
while (isspace(*s))
|
||||||
s++;
|
s++;
|
||||||
singlefunctions(line +2, s);
|
singlefunctions(line +2, s);
|
||||||
|
@ -515,11 +515,11 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
/* Open file, exit on error */
|
/* Open file, exit on error */
|
||||||
infile = fopen(argv[2], "r");
|
infile = fopen(argv[2], "r");
|
||||||
if (infile == NULL) {
|
if (infile == NULL) {
|
||||||
fprintf(stderr, "docproc: ");
|
fprintf(stderr, "docproc: ");
|
||||||
perror(argv[2]);
|
perror(argv[2]);
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp("doc", argv[1]) == 0) {
|
if (strcmp("doc", argv[1]) == 0) {
|
||||||
/* Need to do this in two passes.
|
/* Need to do this in two passes.
|
||||||
|
|
|
@ -2,4 +2,3 @@ dtc
|
||||||
dtc-lexer.lex.c
|
dtc-lexer.lex.c
|
||||||
dtc-parser.tab.c
|
dtc-parser.tab.c
|
||||||
dtc-parser.tab.h
|
dtc-parser.tab.h
|
||||||
|
|
||||||
|
|
|
@ -88,4 +88,3 @@ struct boot_info *dt_from_fs(const char *dirname)
|
||||||
|
|
||||||
return build_boot_info(NULL, tree, guess_boot_cpuid(tree));
|
return build_boot_info(NULL, tree, guess_boot_cpuid(tree));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,4 +81,3 @@ int fdt_create_empty_tree(void *buf, int bufsize)
|
||||||
|
|
||||||
return fdt_open_into(buf, buf, bufsize);
|
return fdt_open_into(buf, buf, bufsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -281,4 +281,3 @@ void dt_to_source(FILE *f, struct boot_info *bi)
|
||||||
|
|
||||||
write_tree_source_node(f, bi->dt, 0);
|
write_tree_source_node(f, bi->dt, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,5 +28,3 @@ for arch in ${archs}; do
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ static int read_symbol(FILE *in, struct sym_entry *s)
|
||||||
}
|
}
|
||||||
if (strlen(str) > KSYM_NAME_LEN) {
|
if (strlen(str) > KSYM_NAME_LEN) {
|
||||||
fprintf(stderr, "Symbol %s too long for kallsyms (%zu vs %d).\n"
|
fprintf(stderr, "Symbol %s too long for kallsyms (%zu vs %d).\n"
|
||||||
"Please increase KSYM_NAME_LEN both in kernel and kallsyms.c\n",
|
"Please increase KSYM_NAME_LEN both in kernel and kallsyms.c\n",
|
||||||
str, strlen(str), KSYM_NAME_LEN);
|
str, strlen(str), KSYM_NAME_LEN);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,4 +319,3 @@ $(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck
|
||||||
$(obj)/gconf.glade.h: $(obj)/gconf.glade
|
$(obj)/gconf.glade.h: $(obj)/gconf.glade
|
||||||
$(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
|
$(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
|
||||||
$(obj)/gconf.glade
|
$(obj)/gconf.glade
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,3 @@ EOF
|
||||||
if [ ! "$?" -eq "0" ]; then
|
if [ ! "$?" -eq "0" ]; then
|
||||||
echo -DKBUILD_NO_NLS;
|
echo -DKBUILD_NO_NLS;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -696,7 +696,7 @@ int main(int ac, char **av)
|
||||||
} else if (input_mode == savedefconfig) {
|
} else if (input_mode == savedefconfig) {
|
||||||
if (conf_write_defconfig(defconfig_file)) {
|
if (conf_write_defconfig(defconfig_file)) {
|
||||||
fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"),
|
fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"),
|
||||||
defconfig_file);
|
defconfig_file);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
} else if (input_mode != listnewconfig) {
|
} else if (input_mode != listnewconfig) {
|
||||||
|
|
|
@ -1404,7 +1404,7 @@ static void display_tree(struct menu *menu)
|
||||||
&& (tree == tree2))
|
&& (tree == tree2))
|
||||||
continue;
|
continue;
|
||||||
/*
|
/*
|
||||||
if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
|
if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
|
||||||
|| (view_mode == FULL_VIEW)
|
|| (view_mode == FULL_VIEW)
|
||||||
|| (view_mode == SPLIT_VIEW))*/
|
|| (view_mode == SPLIT_VIEW))*/
|
||||||
|
|
||||||
|
|
|
@ -168,13 +168,13 @@ do_resize:
|
||||||
|
|
||||||
/* create new window for the list */
|
/* create new window for the list */
|
||||||
list = subwin(dialog, list_height, list_width, y + box_y + 1,
|
list = subwin(dialog, list_height, list_width, y + box_y + 1,
|
||||||
x + box_x + 1);
|
x + box_x + 1);
|
||||||
|
|
||||||
keypad(list, TRUE);
|
keypad(list, TRUE);
|
||||||
|
|
||||||
/* draw a box around the list items */
|
/* draw a box around the list items */
|
||||||
draw_box(dialog, box_y, box_x, list_height + 2, list_width + 2,
|
draw_box(dialog, box_y, box_x, list_height + 2, list_width + 2,
|
||||||
dlg.menubox_border.atr, dlg.menubox.atr);
|
dlg.menubox_border.atr, dlg.menubox.atr);
|
||||||
|
|
||||||
/* Find length of longest item in order to center checklist */
|
/* Find length of longest item in order to center checklist */
|
||||||
check_x = 0;
|
check_x = 0;
|
||||||
|
|
|
@ -42,7 +42,7 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
|
||||||
* Display a dialog box for inputing a string
|
* Display a dialog box for inputing a string
|
||||||
*/
|
*/
|
||||||
int dialog_inputbox(const char *title, const char *prompt, int height, int width,
|
int dialog_inputbox(const char *title, const char *prompt, int height, int width,
|
||||||
const char *init)
|
const char *init)
|
||||||
{
|
{
|
||||||
int i, x, y, box_y, box_x, box_width;
|
int i, x, y, box_y, box_x, box_width;
|
||||||
int input_x = 0, key = 0, button = -1;
|
int input_x = 0, key = 0, button = -1;
|
||||||
|
|
|
@ -64,7 +64,7 @@ static int menu_width, item_x;
|
||||||
* Print menu item
|
* Print menu item
|
||||||
*/
|
*/
|
||||||
static void do_print_item(WINDOW * win, const char *item, int line_y,
|
static void do_print_item(WINDOW * win, const char *item, int line_y,
|
||||||
int selected, int hotkey)
|
int selected, int hotkey)
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
char *menu_item = malloc(menu_width + 1);
|
char *menu_item = malloc(menu_width + 1);
|
||||||
|
@ -182,7 +182,7 @@ static void do_scroll(WINDOW *win, int *scroll, int n)
|
||||||
* Display a menu for choosing among a number of options
|
* Display a menu for choosing among a number of options
|
||||||
*/
|
*/
|
||||||
int dialog_menu(const char *title, const char *prompt,
|
int dialog_menu(const char *title, const char *prompt,
|
||||||
const void *selected, int *s_scroll)
|
const void *selected, int *s_scroll)
|
||||||
{
|
{
|
||||||
int i, j, x, y, box_x, box_y;
|
int i, j, x, y, box_x, box_y;
|
||||||
int height, width, menu_height;
|
int height, width, menu_height;
|
||||||
|
|
|
@ -623,7 +623,7 @@ void item_make(const char *fmt, ...)
|
||||||
void item_add_str(const char *fmt, ...)
|
void item_add_str(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
size_t avail;
|
size_t avail;
|
||||||
|
|
||||||
avail = sizeof(item_cur->node.str) - strlen(item_cur->node.str);
|
avail = sizeof(item_cur->node.str) - strlen(item_cur->node.str);
|
||||||
|
|
||||||
|
|
|
@ -299,7 +299,7 @@ static void set_config_filename(const char *config_filename)
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
size = snprintf(menu_backtitle, sizeof(menu_backtitle),
|
size = snprintf(menu_backtitle, sizeof(menu_backtitle),
|
||||||
"%s - %s", config_filename, rootmenu.prompt->text);
|
"%s - %s", config_filename, rootmenu.prompt->text);
|
||||||
if (size >= sizeof(menu_backtitle))
|
if (size >= sizeof(menu_backtitle))
|
||||||
menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
|
menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
|
||||||
set_dialog_backtitle(menu_backtitle);
|
set_dialog_backtitle(menu_backtitle);
|
||||||
|
@ -1034,4 +1034,3 @@ int main(int ac, char **av)
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -258,8 +258,8 @@ static void sym_check_prop(struct symbol *sym)
|
||||||
"config symbol '%s' uses select, but is "
|
"config symbol '%s' uses select, but is "
|
||||||
"not boolean or tristate", sym->name);
|
"not boolean or tristate", sym->name);
|
||||||
else if (sym2->type != S_UNKNOWN &&
|
else if (sym2->type != S_UNKNOWN &&
|
||||||
sym2->type != S_BOOLEAN &&
|
sym2->type != S_BOOLEAN &&
|
||||||
sym2->type != S_TRISTATE)
|
sym2->type != S_TRISTATE)
|
||||||
prop_warn(prop,
|
prop_warn(prop,
|
||||||
"'%s' has wrong type. 'select' only "
|
"'%s' has wrong type. 'select' only "
|
||||||
"accept arguments of boolean and "
|
"accept arguments of boolean and "
|
||||||
|
@ -268,7 +268,7 @@ static void sym_check_prop(struct symbol *sym)
|
||||||
case P_RANGE:
|
case P_RANGE:
|
||||||
if (sym->type != S_INT && sym->type != S_HEX)
|
if (sym->type != S_INT && sym->type != S_HEX)
|
||||||
prop_warn(prop, "range is only allowed "
|
prop_warn(prop, "range is only allowed "
|
||||||
"for int or hex symbols");
|
"for int or hex symbols");
|
||||||
if (!menu_validate_number(sym, prop->expr->left.sym) ||
|
if (!menu_validate_number(sym, prop->expr->left.sym) ||
|
||||||
!menu_validate_number(sym, prop->expr->right.sym))
|
!menu_validate_number(sym, prop->expr->right.sym))
|
||||||
prop_warn(prop, "range is invalid");
|
prop_warn(prop, "range is invalid");
|
||||||
|
|
|
@ -1554,4 +1554,3 @@ int main(int ac, char **av)
|
||||||
endwin();
|
endwin();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,5 +155,3 @@ void *xcalloc(size_t nmemb, size_t size)
|
||||||
fprintf(stderr, "Out of memory.\n");
|
fprintf(stderr, "Out of memory.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,8 @@ static char *text;
|
||||||
static int text_size, text_asize;
|
static int text_size, text_asize;
|
||||||
|
|
||||||
struct buffer {
|
struct buffer {
|
||||||
struct buffer *parent;
|
struct buffer *parent;
|
||||||
YY_BUFFER_STATE state;
|
YY_BUFFER_STATE state;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct buffer *current_buf;
|
struct buffer *current_buf;
|
||||||
|
|
|
@ -789,8 +789,8 @@ static char *text;
|
||||||
static int text_size, text_asize;
|
static int text_size, text_asize;
|
||||||
|
|
||||||
struct buffer {
|
struct buffer {
|
||||||
struct buffer *parent;
|
struct buffer *parent;
|
||||||
YY_BUFFER_STATE state;
|
YY_BUFFER_STATE state;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct buffer *current_buf;
|
struct buffer *current_buf;
|
||||||
|
|
|
@ -2314,7 +2314,7 @@ void conf_parse(const char *name)
|
||||||
for_all_symbols(i, sym) {
|
for_all_symbols(i, sym) {
|
||||||
if (sym_check_deps(sym))
|
if (sym_check_deps(sym))
|
||||||
zconfnerrs++;
|
zconfnerrs++;
|
||||||
}
|
}
|
||||||
if (zconfnerrs)
|
if (zconfnerrs)
|
||||||
exit(1);
|
exit(1);
|
||||||
sym_set_change_count(1);
|
sym_set_change_count(1);
|
||||||
|
|
|
@ -510,7 +510,7 @@ void conf_parse(const char *name)
|
||||||
for_all_symbols(i, sym) {
|
for_all_symbols(i, sym) {
|
||||||
if (sym_check_deps(sym))
|
if (sym_check_deps(sym))
|
||||||
zconfnerrs++;
|
zconfnerrs++;
|
||||||
}
|
}
|
||||||
if (zconfnerrs)
|
if (zconfnerrs)
|
||||||
exit(1);
|
exit(1);
|
||||||
sym_set_change_count(1);
|
sym_set_change_count(1);
|
||||||
|
|
|
@ -367,4 +367,3 @@ OPTION:
|
||||||
EOT
|
EOT
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,4 +42,3 @@
|
||||||
# (At least sparc64 has __crc_ in the middle).
|
# (At least sparc64 has __crc_ in the middle).
|
||||||
|
|
||||||
$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
|
$NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,3 @@ elfconfig.h
|
||||||
mk_elfconfig
|
mk_elfconfig
|
||||||
modpost
|
modpost
|
||||||
devicetable-offsets.h
|
devicetable-offsets.h
|
||||||
|
|
||||||
|
|
|
@ -644,28 +644,26 @@ ADD_TO_DEVTABLE("pcmcia", pcmcia_device_id, do_pcmcia_entry);
|
||||||
|
|
||||||
static int do_of_entry (const char *filename, void *symval, char *alias)
|
static int do_of_entry (const char *filename, void *symval, char *alias)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
DEF_FIELD_ADDR(symval, of_device_id, name);
|
DEF_FIELD_ADDR(symval, of_device_id, name);
|
||||||
DEF_FIELD_ADDR(symval, of_device_id, type);
|
DEF_FIELD_ADDR(symval, of_device_id, type);
|
||||||
DEF_FIELD_ADDR(symval, of_device_id, compatible);
|
DEF_FIELD_ADDR(symval, of_device_id, compatible);
|
||||||
|
|
||||||
len = sprintf (alias, "of:N%sT%s",
|
len = sprintf(alias, "of:N%sT%s", (*name)[0] ? *name : "*",
|
||||||
(*name)[0] ? *name : "*",
|
(*type)[0] ? *type : "*");
|
||||||
(*type)[0] ? *type : "*");
|
|
||||||
|
|
||||||
if (compatible[0])
|
if (compatible[0])
|
||||||
sprintf (&alias[len], "%sC%s",
|
sprintf(&alias[len], "%sC%s", (*type)[0] ? "*" : "",
|
||||||
(*type)[0] ? "*" : "",
|
*compatible);
|
||||||
*compatible);
|
|
||||||
|
|
||||||
/* Replace all whitespace with underscores */
|
/* Replace all whitespace with underscores */
|
||||||
for (tmp = alias; tmp && *tmp; tmp++)
|
for (tmp = alias; tmp && *tmp; tmp++)
|
||||||
if (isspace (*tmp))
|
if (isspace (*tmp))
|
||||||
*tmp = '_';
|
*tmp = '_';
|
||||||
|
|
||||||
add_wildcard(alias);
|
add_wildcard(alias);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
ADD_TO_DEVTABLE("of", of_device_id, do_of_entry);
|
ADD_TO_DEVTABLE("of", of_device_id, do_of_entry);
|
||||||
|
|
||||||
|
|
|
@ -54,4 +54,3 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -862,7 +862,7 @@ static const char *section_white_list[] =
|
||||||
* without "ax" / "aw".
|
* without "ax" / "aw".
|
||||||
*/
|
*/
|
||||||
static void check_section(const char *modname, struct elf_info *elf,
|
static void check_section(const char *modname, struct elf_info *elf,
|
||||||
Elf_Shdr *sechdr)
|
Elf_Shdr *sechdr)
|
||||||
{
|
{
|
||||||
const char *sec = sech_name(elf, sechdr);
|
const char *sec = sech_name(elf, sechdr);
|
||||||
|
|
||||||
|
@ -1296,12 +1296,12 @@ static void print_section_list(const char * const list[20])
|
||||||
*/
|
*/
|
||||||
static void report_sec_mismatch(const char *modname,
|
static void report_sec_mismatch(const char *modname,
|
||||||
const struct sectioncheck *mismatch,
|
const struct sectioncheck *mismatch,
|
||||||
const char *fromsec,
|
const char *fromsec,
|
||||||
unsigned long long fromaddr,
|
unsigned long long fromaddr,
|
||||||
const char *fromsym,
|
const char *fromsym,
|
||||||
int from_is_func,
|
int from_is_func,
|
||||||
const char *tosec, const char *tosym,
|
const char *tosec, const char *tosym,
|
||||||
int to_is_func)
|
int to_is_func)
|
||||||
{
|
{
|
||||||
const char *from, *from_p;
|
const char *from, *from_p;
|
||||||
const char *to, *to_p;
|
const char *to, *to_p;
|
||||||
|
@ -1441,7 +1441,7 @@ static void report_sec_mismatch(const char *modname,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_section_mismatch(const char *modname, struct elf_info *elf,
|
static void check_section_mismatch(const char *modname, struct elf_info *elf,
|
||||||
Elf_Rela *r, Elf_Sym *sym, const char *fromsec)
|
Elf_Rela *r, Elf_Sym *sym, const char *fromsec)
|
||||||
{
|
{
|
||||||
const char *tosec;
|
const char *tosec;
|
||||||
const struct sectioncheck *mismatch;
|
const struct sectioncheck *mismatch;
|
||||||
|
@ -1528,7 +1528,7 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
case R_ARM_ABS32:
|
case R_ARM_ABS32:
|
||||||
/* From ARM ABI: (S + A) | T */
|
/* From ARM ABI: (S + A) | T */
|
||||||
r->r_addend = (int)(long)
|
r->r_addend = (int)(long)
|
||||||
(elf->symtab_start + ELF_R_SYM(r->r_info));
|
(elf->symtab_start + ELF_R_SYM(r->r_info));
|
||||||
break;
|
break;
|
||||||
case R_ARM_PC24:
|
case R_ARM_PC24:
|
||||||
case R_ARM_CALL:
|
case R_ARM_CALL:
|
||||||
|
@ -1538,8 +1538,8 @@ static int addend_arm_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
case R_ARM_THM_JUMP19:
|
case R_ARM_THM_JUMP19:
|
||||||
/* From ARM ABI: ((S + A) | T) - P */
|
/* From ARM ABI: ((S + A) | T) - P */
|
||||||
r->r_addend = (int)(long)(elf->hdr +
|
r->r_addend = (int)(long)(elf->hdr +
|
||||||
sechdr->sh_offset +
|
sechdr->sh_offset +
|
||||||
(r->r_offset - sechdr->sh_addr));
|
(r->r_offset - sechdr->sh_addr));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1571,7 +1571,7 @@ static int addend_mips_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void section_rela(const char *modname, struct elf_info *elf,
|
static void section_rela(const char *modname, struct elf_info *elf,
|
||||||
Elf_Shdr *sechdr)
|
Elf_Shdr *sechdr)
|
||||||
{
|
{
|
||||||
Elf_Sym *sym;
|
Elf_Sym *sym;
|
||||||
Elf_Rela *rela;
|
Elf_Rela *rela;
|
||||||
|
@ -1615,7 +1615,7 @@ static void section_rela(const char *modname, struct elf_info *elf,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void section_rel(const char *modname, struct elf_info *elf,
|
static void section_rel(const char *modname, struct elf_info *elf,
|
||||||
Elf_Shdr *sechdr)
|
Elf_Shdr *sechdr)
|
||||||
{
|
{
|
||||||
Elf_Sym *sym;
|
Elf_Sym *sym;
|
||||||
Elf_Rel *rel;
|
Elf_Rel *rel;
|
||||||
|
@ -1685,7 +1685,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
|
||||||
* be discarded and warns about it.
|
* be discarded and warns about it.
|
||||||
**/
|
**/
|
||||||
static void check_sec_ref(struct module *mod, const char *modname,
|
static void check_sec_ref(struct module *mod, const char *modname,
|
||||||
struct elf_info *elf)
|
struct elf_info *elf)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Elf_Shdr *sechdrs = elf->sechdrs;
|
Elf_Shdr *sechdrs = elf->sechdrs;
|
||||||
|
@ -1945,7 +1945,7 @@ static int add_versions(struct buffer *b, struct module *mod)
|
||||||
s->name, mod->name);
|
s->name, mod->name);
|
||||||
} else {
|
} else {
|
||||||
merror("\"%s\" [%s.ko] undefined!\n",
|
merror("\"%s\" [%s.ko] undefined!\n",
|
||||||
s->name, mod->name);
|
s->name, mod->name);
|
||||||
err = 1;
|
err = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,7 +214,7 @@ static void md4_final_ascii(struct md4_ctx *mctx, char *out, unsigned int len)
|
||||||
mctx->block[14] = mctx->byte_count << 3;
|
mctx->block[14] = mctx->byte_count << 3;
|
||||||
mctx->block[15] = mctx->byte_count >> 29;
|
mctx->block[15] = mctx->byte_count >> 29;
|
||||||
le32_to_cpu_array(mctx->block, (sizeof(mctx->block) -
|
le32_to_cpu_array(mctx->block, (sizeof(mctx->block) -
|
||||||
sizeof(uint64_t)) / sizeof(uint32_t));
|
sizeof(uint64_t)) / sizeof(uint32_t));
|
||||||
md4_transform(mctx->hash, mctx->block);
|
md4_transform(mctx->hash, mctx->block);
|
||||||
cpu_to_le32_array(mctx->hash, sizeof(mctx->hash) / sizeof(uint32_t));
|
cpu_to_le32_array(mctx->hash, sizeof(mctx->hash) / sizeof(uint32_t));
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ static int parse_source_files(const char *objfile, struct md4_ctx *md)
|
||||||
break;
|
break;
|
||||||
/* Terminate line at first space, to get rid of final ' \' */
|
/* Terminate line at first space, to get rid of final ' \' */
|
||||||
while (*p) {
|
while (*p) {
|
||||||
if (isspace(*p)) {
|
if (isspace(*p)) {
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,25 +25,47 @@
|
||||||
#
|
#
|
||||||
# Note: 'make mrproper' will also remove .tmp_objdiff
|
# Note: 'make mrproper' will also remove .tmp_objdiff
|
||||||
|
|
||||||
GIT_DIR="`git rev-parse --git-dir`"
|
SRCTREE=$(cd $(git rev-parse --show-toplevel 2>/dev/null); pwd)
|
||||||
|
|
||||||
if [ -d "$GIT_DIR" ]; then
|
if [ -z "$SRCTREE" ]; then
|
||||||
TMPD="${GIT_DIR%git}tmp_objdiff"
|
echo >&2 "ERROR: Not a git repository."
|
||||||
|
|
||||||
[ -d "$TMPD" ] || mkdir "$TMPD"
|
|
||||||
else
|
|
||||||
echo "ERROR: git directory not found."
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
TMPD=$SRCTREE/.tmp_objdiff
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: $0 <command> <args>"
|
echo >&2 "Usage: $0 <command> <args>"
|
||||||
echo " record <list of object files>"
|
echo >&2 " record <list of object files or directories>"
|
||||||
echo " diff <commitA> <commitB>"
|
echo >&2 " diff <commitA> <commitB>"
|
||||||
echo " clean all | <commit>"
|
echo >&2 " clean all | <commit>"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_output_dir() {
|
||||||
|
dir=${1%/*}
|
||||||
|
|
||||||
|
if [ "$dir" = "$1" ]; then
|
||||||
|
dir=.
|
||||||
|
fi
|
||||||
|
|
||||||
|
dir=$(cd $dir; pwd)
|
||||||
|
|
||||||
|
echo $TMPD/$CMT${dir#$SRCTREE}
|
||||||
|
}
|
||||||
|
|
||||||
|
do_objdump() {
|
||||||
|
dir=$(get_output_dir $1)
|
||||||
|
base=${1##*/}
|
||||||
|
dis=$dir/${base%.o}.dis
|
||||||
|
|
||||||
|
[ ! -d "$dir" ] && mkdir -p $dir
|
||||||
|
|
||||||
|
# remove addresses for a cleaner diff
|
||||||
|
# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
|
||||||
|
$OBJDUMP -D $1 | sed "s/^[[:space:]]\+[0-9a-f]\+//" > $dis
|
||||||
|
}
|
||||||
|
|
||||||
dorecord() {
|
dorecord() {
|
||||||
[ $# -eq 0 ] && usage
|
[ $# -eq 0 ] && usage
|
||||||
|
|
||||||
|
@ -52,20 +74,16 @@ dorecord() {
|
||||||
CMT="`git rev-parse --short HEAD`"
|
CMT="`git rev-parse --short HEAD`"
|
||||||
|
|
||||||
OBJDUMP="${CROSS_COMPILE}objdump"
|
OBJDUMP="${CROSS_COMPILE}objdump"
|
||||||
OBJDIFFD="$TMPD/$CMT"
|
|
||||||
|
|
||||||
[ ! -d "$OBJDIFFD" ] && mkdir -p "$OBJDIFFD"
|
for d in $FILES; do
|
||||||
|
if [ -d "$d" ]; then
|
||||||
for f in $FILES; do
|
for f in $(find $d -name '*.o')
|
||||||
dn="${f%/*}"
|
do
|
||||||
bn="${f##*/}"
|
do_objdump $f
|
||||||
|
done
|
||||||
[ ! -d "$OBJDIFFD/$dn" ] && mkdir -p "$OBJDIFFD/$dn"
|
else
|
||||||
|
do_objdump $d
|
||||||
# remove addresses for a more clear diff
|
fi
|
||||||
# http://dummdida.tumblr.com/post/60924060451/binary-diff-between-libc-from-scientificlinux-and
|
|
||||||
$OBJDUMP -D "$f" | sed "s/^[[:space:]]\+[0-9a-f]\+//" \
|
|
||||||
>"$OBJDIFFD/$dn/$bn"
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,12 +108,12 @@ dodiff() {
|
||||||
DSTD="$TMPD/$DST"
|
DSTD="$TMPD/$DST"
|
||||||
|
|
||||||
if [ ! -d "$SRCD" ]; then
|
if [ ! -d "$SRCD" ]; then
|
||||||
echo "ERROR: $SRCD doesn't exist"
|
echo >&2 "ERROR: $SRCD doesn't exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$DSTD" ]; then
|
if [ ! -d "$DSTD" ]; then
|
||||||
echo "ERROR: $DSTD doesn't exist"
|
echo >&2 "ERROR: $DSTD doesn't exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -114,7 +132,7 @@ doclean() {
|
||||||
if [ -d "$TMPD/$CMT" ]; then
|
if [ -d "$TMPD/$CMT" ]; then
|
||||||
rm -rf $TMPD/$CMT
|
rm -rf $TMPD/$CMT
|
||||||
else
|
else
|
||||||
echo "$CMT not found"
|
echo >&2 "$CMT not found"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -135,7 +153,7 @@ case "$1" in
|
||||||
doclean $*
|
doclean $*
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unrecognized command '$1'"
|
echo >&2 "Unrecognized command '$1'"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -143,4 +143,3 @@ help: FORCE
|
||||||
@echo ' perf-targz-src-pkg - Build $(perf-tar).tar.gz source tarball'
|
@echo ' perf-targz-src-pkg - Build $(perf-tar).tar.gz source tarball'
|
||||||
@echo ' perf-tarbz2-src-pkg - Build $(perf-tar).tar.bz2 source tarball'
|
@echo ' perf-tarbz2-src-pkg - Build $(perf-tar).tar.bz2 source tarball'
|
||||||
@echo ' perf-tarxz-src-pkg - Build $(perf-tar).tar.xz source tarball'
|
@echo ' perf-tarxz-src-pkg - Build $(perf-tar).tar.xz source tarball'
|
||||||
|
|
||||||
|
|
|
@ -35,13 +35,15 @@ create_package() {
|
||||||
sparc*)
|
sparc*)
|
||||||
debarch=sparc ;;
|
debarch=sparc ;;
|
||||||
s390*)
|
s390*)
|
||||||
debarch=s390 ;;
|
debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
|
||||||
ppc*)
|
ppc*)
|
||||||
debarch=powerpc ;;
|
debarch=powerpc ;;
|
||||||
parisc*)
|
parisc*)
|
||||||
debarch=hppa ;;
|
debarch=hppa ;;
|
||||||
mips*)
|
mips*)
|
||||||
debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
|
debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
|
||||||
|
arm64)
|
||||||
|
debarch=arm64 ;;
|
||||||
arm*)
|
arm*)
|
||||||
debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;;
|
debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el || true) ;;
|
||||||
*)
|
*)
|
||||||
|
@ -155,11 +157,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
||||||
for module in $(find lib/modules/ -name *.ko); do
|
for module in $(find lib/modules/ -name *.ko); do
|
||||||
mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
|
mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
|
||||||
# only keep debug symbols in the debug file
|
# only keep debug symbols in the debug file
|
||||||
objcopy --only-keep-debug $module $dbg_dir/usr/lib/debug/$module
|
$OBJCOPY --only-keep-debug $module $dbg_dir/usr/lib/debug/$module
|
||||||
# strip original module from debug symbols
|
# strip original module from debug symbols
|
||||||
objcopy --strip-debug $module
|
$OBJCOPY --strip-debug $module
|
||||||
# then add a link to those
|
# then add a link to those
|
||||||
objcopy --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module
|
$OBJCOPY --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -136,4 +136,3 @@ esac
|
||||||
echo "Tarball successfully created in ${tarball}${file_ext}"
|
echo "Tarball successfully created in ${tarball}${file_ext}"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
|
@ -512,4 +512,3 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -487,5 +487,3 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
return !!n_error;
|
return !!n_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,4 +19,3 @@ testit t3-l2-pi.tst
|
||||||
testit t4-l2-pi-deboost.tst
|
testit t4-l2-pi-deboost.tst
|
||||||
testit t5-l4-pi-boost-deboost.tst
|
testit t5-l4-pi-boost-deboost.tst
|
||||||
testit t5-l4-pi-boost-deboost-setsched.tst
|
testit t5-l4-pi-boost-deboost-setsched.tst
|
||||||
|
|
||||||
|
|
|
@ -216,5 +216,3 @@ while 1:
|
||||||
# Normal exit pass
|
# Normal exit pass
|
||||||
print "Pass"
|
print "Pass"
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,4 +66,3 @@ if [ "eq$dodev" != "eq" ]; then
|
||||||
$SF file_contexts /dev
|
$SF file_contexts /dev
|
||||||
mount --move /mnt /dev
|
mount --move /mnt /dev
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -126,4 +126,3 @@ def main():
|
||||||
print (convert_line(line, base_time),)
|
print (convert_line(line, base_time),)
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,9 @@ else
|
||||||
tree=${srctree}/
|
tree=${srctree}/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ignore userspace tools
|
||||||
|
ignore="$ignore ( -path ${tree}tools ) -prune -o"
|
||||||
|
|
||||||
# Find all available archs
|
# Find all available archs
|
||||||
find_all_archs()
|
find_all_archs()
|
||||||
{
|
{
|
||||||
|
@ -47,7 +50,8 @@ find_arch_sources()
|
||||||
for i in $archincludedir; do
|
for i in $archincludedir; do
|
||||||
prune="$prune -wholename $i -prune -o"
|
prune="$prune -wholename $i -prune -o"
|
||||||
done
|
done
|
||||||
find ${tree}arch/$1 $ignore $subarchprune $prune -name "$2" -print;
|
find ${tree}arch/$1 $ignore $subarchprune $prune -name "$2" \
|
||||||
|
-not -type l -print;
|
||||||
}
|
}
|
||||||
|
|
||||||
# find sources in arch/$1/include
|
# find sources in arch/$1/include
|
||||||
|
@ -57,14 +61,15 @@ find_arch_include_sources()
|
||||||
-name include -type d -print);
|
-name include -type d -print);
|
||||||
if [ -n "$include" ]; then
|
if [ -n "$include" ]; then
|
||||||
archincludedir="$archincludedir $include"
|
archincludedir="$archincludedir $include"
|
||||||
find $include $ignore -name "$2" -print;
|
find $include $ignore -name "$2" -not -type l -print;
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# find sources in include/
|
# find sources in include/
|
||||||
find_include_sources()
|
find_include_sources()
|
||||||
{
|
{
|
||||||
find ${tree}include $ignore -name config -prune -o -name "$1" -print;
|
find ${tree}include $ignore -name config -prune -o -name "$1" \
|
||||||
|
-not -type l -print;
|
||||||
}
|
}
|
||||||
|
|
||||||
# find sources in rest of tree
|
# find sources in rest of tree
|
||||||
|
@ -73,7 +78,7 @@ find_other_sources()
|
||||||
{
|
{
|
||||||
find ${tree}* $ignore \
|
find ${tree}* $ignore \
|
||||||
\( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \
|
\( -name include -o -name arch -o -name '.tmp_*' \) -prune -o \
|
||||||
-name "$1" -print;
|
-name "$1" -not -type l -print;
|
||||||
}
|
}
|
||||||
|
|
||||||
find_sources()
|
find_sources()
|
||||||
|
@ -187,6 +192,10 @@ exuberant()
|
||||||
--regex-c++='/TESTCLEARFLAG_FALSE\(([^,)]*).*/TestClearPage\1/' \
|
--regex-c++='/TESTCLEARFLAG_FALSE\(([^,)]*).*/TestClearPage\1/' \
|
||||||
--regex-c++='/__TESTCLEARFLAG_FALSE\(([^,)]*).*/__TestClearPage\1/' \
|
--regex-c++='/__TESTCLEARFLAG_FALSE\(([^,)]*).*/__TestClearPage\1/' \
|
||||||
--regex-c++='/_PE\(([^,)]*).*/PEVENT_ERRNO__\1/' \
|
--regex-c++='/_PE\(([^,)]*).*/PEVENT_ERRNO__\1/' \
|
||||||
|
--regex-c++='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
|
||||||
|
--regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
|
||||||
|
--regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
|
||||||
|
--regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
|
||||||
--regex-c='/PCI_OP_READ\((\w*).*[1-4]\)/pci_bus_read_config_\1/' \
|
--regex-c='/PCI_OP_READ\((\w*).*[1-4]\)/pci_bus_read_config_\1/' \
|
||||||
--regex-c='/PCI_OP_WRITE\((\w*).*[1-4]\)/pci_bus_write_config_\1/' \
|
--regex-c='/PCI_OP_WRITE\((\w*).*[1-4]\)/pci_bus_write_config_\1/' \
|
||||||
--regex-c='/DEFINE_(MUTEX|SEMAPHORE|SPINLOCK)\((\w*)/\2/v/' \
|
--regex-c='/DEFINE_(MUTEX|SEMAPHORE|SPINLOCK)\((\w*)/\2/v/' \
|
||||||
|
@ -201,7 +210,8 @@ exuberant()
|
||||||
--regex-c='/DECLARE_(TASKLET|WORK|DELAYED_WORK)\((\w*)/\2/v/' \
|
--regex-c='/DECLARE_(TASKLET|WORK|DELAYED_WORK)\((\w*)/\2/v/' \
|
||||||
--regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/' \
|
--regex-c='/DEFINE_PCI_DEVICE_TABLE\((\w*)/\1/v/' \
|
||||||
--regex-c='/(^\s)OFFSET\((\w*)/\2/v/' \
|
--regex-c='/(^\s)OFFSET\((\w*)/\2/v/' \
|
||||||
--regex-c='/(^\s)DEFINE\((\w*)/\2/v/'
|
--regex-c='/(^\s)DEFINE\((\w*)/\2/v/' \
|
||||||
|
--regex-c='/DEFINE_HASHTABLE\((\w*)/\1/v/'
|
||||||
|
|
||||||
all_kconfigs | xargs $1 -a \
|
all_kconfigs | xargs $1 -a \
|
||||||
--langdef=kconfig --language-force=kconfig \
|
--langdef=kconfig --language-force=kconfig \
|
||||||
|
@ -244,9 +254,14 @@ emacs()
|
||||||
--regex='/__CLEARPAGEFLAG_NOOP(\([^,)]*\).*/__ClearPage\1/' \
|
--regex='/__CLEARPAGEFLAG_NOOP(\([^,)]*\).*/__ClearPage\1/' \
|
||||||
--regex='/TESTCLEARFLAG_FALSE(\([^,)]*\).*/TestClearPage\1/' \
|
--regex='/TESTCLEARFLAG_FALSE(\([^,)]*\).*/TestClearPage\1/' \
|
||||||
--regex='/__TESTCLEARFLAG_FALSE(\([^,)]*\).*/__TestClearPage\1/' \
|
--regex='/__TESTCLEARFLAG_FALSE(\([^,)]*\).*/__TestClearPage\1/' \
|
||||||
|
--regex='/TESTPCGFLAG\(([^,)]*).*/PageCgroup\1/' \
|
||||||
|
--regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
|
||||||
|
--regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
|
||||||
|
--regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
|
||||||
--regex='/_PE(\([^,)]*\).*/PEVENT_ERRNO__\1/' \
|
--regex='/_PE(\([^,)]*\).*/PEVENT_ERRNO__\1/' \
|
||||||
--regex='/PCI_OP_READ(\([a-z]*[a-z]\).*[1-4])/pci_bus_read_config_\1/' \
|
--regex='/PCI_OP_READ(\([a-z]*[a-z]\).*[1-4])/pci_bus_read_config_\1/' \
|
||||||
--regex='/PCI_OP_WRITE(\([a-z]*[a-z]\).*[1-4])/pci_bus_write_config_\1/'
|
--regex='/PCI_OP_WRITE(\([a-z]*[a-z]\).*[1-4])/pci_bus_write_config_\1/'\
|
||||||
|
--regex='/DEFINE_HASHTABLE\((\w*)/\1/v/'
|
||||||
|
|
||||||
all_kconfigs | xargs $1 -a \
|
all_kconfigs | xargs $1 -a \
|
||||||
--regex='/^[ \t]*\(\(menu\)*config\)[ \t]+\([a-zA-Z0-9_]+\)/\3/'
|
--regex='/^[ \t]*\(\(menu\)*config\)[ \t]+\([a-zA-Z0-9_]+\)/\3/'
|
||||||
|
@ -266,7 +281,7 @@ xtags()
|
||||||
emacs $1
|
emacs $1
|
||||||
else
|
else
|
||||||
all_target_sources | xargs $1 -a
|
all_target_sources | xargs $1 -a
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Support um (which uses SUBARCH)
|
# Support um (which uses SUBARCH)
|
||||||
|
|
Loading…
Reference in New Issue