diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.lib | 11 | ||||
| -rw-r--r-- | scripts/basic/Makefile | 2 | ||||
| -rw-r--r-- | scripts/basic/hash.c | 64 | ||||
| -rw-r--r-- | scripts/gcc-goto.sh | 5 | 
4 files changed, 7 insertions, 75 deletions
| diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 54fd1b700131..7bfcf1a09ac5 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
| @@ -101,14 +101,6 @@ basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" | |||
| 101 | modname_flags = $(if $(filter 1,$(words $(modname))),\ | 101 | modname_flags = $(if $(filter 1,$(words $(modname))),\ | 
| 102 | -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") | 102 | -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") | 
| 103 | 103 | ||
| 104 | #hash values | ||
| 105 | ifdef CONFIG_DYNAMIC_DEBUG | ||
| 106 | debug_flags = -D"DEBUG_HASH=$(shell ./scripts/basic/hash djb2 $(@D)$(modname))"\ | ||
| 107 | -D"DEBUG_HASH2=$(shell ./scripts/basic/hash r5 $(@D)$(modname))" | ||
| 108 | else | ||
| 109 | debug_flags = | ||
| 110 | endif | ||
| 111 | |||
| 112 | orig_c_flags = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \ | 104 | orig_c_flags = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \ | 
| 113 | $(ccflags-y) $(CFLAGS_$(basetarget).o) | 105 | $(ccflags-y) $(CFLAGS_$(basetarget).o) | 
| 114 | _c_flags = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags)) | 106 | _c_flags = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags)) | 
| @@ -152,8 +144,7 @@ endif | |||
| 152 | 144 | ||
| 153 | c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ | 145 | c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ | 
| 154 | $(__c_flags) $(modkern_cflags) \ | 146 | $(__c_flags) $(modkern_cflags) \ | 
| 155 | -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) \ | 147 | -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) | 
| 156 | $(debug_flags) | ||
| 157 | 148 | ||
| 158 | a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ | 149 | a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ | 
| 159 | $(__a_flags) $(modkern_aflags) | 150 | $(__a_flags) $(modkern_aflags) | 
| diff --git a/scripts/basic/Makefile b/scripts/basic/Makefile index 09559951df12..4c324a1f1e0e 100644 --- a/scripts/basic/Makefile +++ b/scripts/basic/Makefile | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | # fixdep: Used to generate dependency information during build process | 9 | # fixdep: Used to generate dependency information during build process | 
| 10 | # docproc: Used in Documentation/DocBook | 10 | # docproc: Used in Documentation/DocBook | 
| 11 | 11 | ||
| 12 | hostprogs-y := fixdep docproc hash | 12 | hostprogs-y := fixdep docproc | 
| 13 | always := $(hostprogs-y) | 13 | always := $(hostprogs-y) | 
| 14 | 14 | ||
| 15 | # fixdep is needed to compile other host programs | 15 | # fixdep is needed to compile other host programs | 
| diff --git a/scripts/basic/hash.c b/scripts/basic/hash.c deleted file mode 100644 index 2ef5d3f666b8..000000000000 --- a/scripts/basic/hash.c +++ /dev/null | |||
| @@ -1,64 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2008 Red Hat, Inc., Jason Baron <jbaron@redhat.com> | ||
| 3 | * | ||
| 4 | */ | ||
| 5 | |||
| 6 | #include <stdio.h> | ||
| 7 | #include <stdlib.h> | ||
| 8 | #include <string.h> | ||
| 9 | |||
| 10 | #define DYNAMIC_DEBUG_HASH_BITS 6 | ||
| 11 | |||
| 12 | static const char *program; | ||
| 13 | |||
| 14 | static void usage(void) | ||
| 15 | { | ||
| 16 | printf("Usage: %s <djb2|r5> <modname>\n", program); | ||
| 17 | exit(1); | ||
| 18 | } | ||
| 19 | |||
| 20 | /* djb2 hashing algorithm by Dan Bernstein. From: | ||
| 21 | * http://www.cse.yorku.ca/~oz/hash.html | ||
| 22 | */ | ||
| 23 | |||
| 24 | static unsigned int djb2_hash(char *str) | ||
| 25 | { | ||
| 26 | unsigned long hash = 5381; | ||
| 27 | int c; | ||
| 28 | |||
| 29 | c = *str; | ||
| 30 | while (c) { | ||
| 31 | hash = ((hash << 5) + hash) + c; | ||
| 32 | c = *++str; | ||
| 33 | } | ||
| 34 | return (unsigned int)(hash & ((1 << DYNAMIC_DEBUG_HASH_BITS) - 1)); | ||
| 35 | } | ||
| 36 | |||
| 37 | static unsigned int r5_hash(char *str) | ||
| 38 | { | ||
| 39 | unsigned long hash = 0; | ||
| 40 | int c; | ||
| 41 | |||
| 42 | c = *str; | ||
| 43 | while (c) { | ||
| 44 | hash = (hash + (c << 4) + (c >> 4)) * 11; | ||
| 45 | c = *++str; | ||
| 46 | } | ||
| 47 | return (unsigned int)(hash & ((1 << DYNAMIC_DEBUG_HASH_BITS) - 1)); | ||
| 48 | } | ||
| 49 | |||
| 50 | int main(int argc, char *argv[]) | ||
| 51 | { | ||
| 52 | program = argv[0]; | ||
| 53 | |||
| 54 | if (argc != 3) | ||
| 55 | usage(); | ||
| 56 | if (!strcmp(argv[1], "djb2")) | ||
| 57 | printf("%d\n", djb2_hash(argv[2])); | ||
| 58 | else if (!strcmp(argv[1], "r5")) | ||
| 59 | printf("%d\n", r5_hash(argv[2])); | ||
| 60 | else | ||
| 61 | usage(); | ||
| 62 | exit(0); | ||
| 63 | } | ||
| 64 | |||
| diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh new file mode 100644 index 000000000000..8e82424be7aa --- /dev/null +++ b/scripts/gcc-goto.sh | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # Test for gcc 'asm goto' suport | ||
| 3 | # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> | ||
| 4 | |||
| 5 | echo "int main(void) { entry: asm goto (\"\"::::entry); return 0; }" | $1 -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" | ||
