From: Paulo Marques <[email protected]> The only in-kernel user of "memmem" is scripts/kallsyms.c and it only uses it to find tokens that are 2 bytes in size. It is trivial to replace it with a simple function that finds 2-byte tokens. This should help users from systems that don't have the memmem GNU extension available. Signed-off-by: Paulo Marques <[email protected]> Signed-off-by: Sam Ravnborg <[email protected]> --- scripts/kallsyms.c | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 8b809b2..caf4c86 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -24,8 +24,6 @@ * */ -#define _GNU_SOURCE - #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -378,6 +376,17 @@ static void build_initial_tok_table(void) table_cnt = pos; } +static void *find_token(unsigned char *str, int len, unsigned char *token) +{ + int i; + + for (i = 0; i < len - 1; i++) { + if (str[i] == token[0] && str[i+1] == token[1]) + return &str[i]; + } + return NULL; +} + /* replace a given token in all the valid symbols. Use the sampled symbols * to update the counts */ static void compress_symbols(unsigned char *str, int idx) @@ -391,7 +400,7 @@ static void compress_symbols(unsigned char *str, int idx) p1 = table[i].sym; /* find the token on the symbol */ - p2 = memmem(p1, len, str, 2); + p2 = find_token(p1, len, str); if (!p2) continue; /* decrease the counts for this symbol's tokens */ @@ -410,7 +419,7 @@ static void compress_symbols(unsigned char *str, int idx) if (size < 2) break; /* find the token on the symbol */ - p2 = memmem(p1, size, str, 2); + p2 = find_token(p1, size, str); } while (p2); -- 1.5.0.6 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- [PATCH 31/33] cris: use DATA_DATA in cris
- From: Sam Ravnborg <[email protected]>
- [PATCH 31/33] cris: use DATA_DATA in cris
- References:
- [PATCH 01/33] kbuild: asm-offsets.h is now cleaned with O=.. builds
- From: Sam Ravnborg <[email protected]>
- [PATCH 02/33] kbuild: New 'cc-fullversion' macro
- From: Sam Ravnborg <[email protected]>
- [PATCH 03/33] powerpc: Refuse to build 64-bit with GCC-4.2.0 and CONFIG_MODULES
- From: Sam Ravnborg <[email protected]>
- [PATCH 04/33] kbuild: document cc-fullversion
- From: Sam Ravnborg <[email protected]>
- [PATCH 05/33] kbuild: avoid environment to set variables used by kbuild
- From: Sam Ravnborg <[email protected]>
- [PATCH 07/33] kconfig: use POSIX equality test in check-lxdialog.sh
- From: Sam Ravnborg <[email protected]>
- [PATCH 08/33] kbuild: add support for reading stdin with gen_init_cpio
- From: Sam Ravnborg <[email protected]>
- [PATCH 09/33] kbuild: add support for squashing uid/gid in gen_initramfs_list.sh
- From: Sam Ravnborg <[email protected]>
- [PATCH 10/33] kconfig: fix update-po-config
- From: Sam Ravnborg <[email protected]>
- [PATCH 11/33] kbuild: make better section mismatch reports on i386 and mips
- From: Sam Ravnborg <[email protected]>
- [PATCH 12/33] kbuild: make better section mismatch reports on arm
- From: Sam Ravnborg <[email protected]>
- [PATCH 13/33] kbuild: suppress modpost warnings for references from the .toc section as used by powerpc
- From: Sam Ravnborg <[email protected]>
- [PATCH 14/33] kbuild: .paravirtprobe section is obsolete, so modpost doesn't need to handle it
- From: Sam Ravnborg <[email protected]>
- [PATCH 15/33] kbuild: ignore section mismatch warnings originating from .note section
- From: Sam Ravnborg <[email protected]>
- [PATCH 16/33] kbuild: refactor code in modpost to improve maintainability
- From: Sam Ravnborg <[email protected]>
- [PATCH 17/33] kbuild: consolidate section checks
- From: Sam Ravnborg <[email protected]>
- [PATCH 18/33] kbuild: warn about references from .init.text to .exit.text
- From: Sam Ravnborg <[email protected]>
- [PATCH 19/33] kbuild: remove hardcoded apic_es7000 from modpost
- From: Sam Ravnborg <[email protected]>
- [PATCH 21/33] kbuild: whitelist references from variables named _timer to .init.text
- From: Sam Ravnborg <[email protected]>
- [PATCH 22/33] kbuild: do section mismatch check on full vmlinux
- From: Sam Ravnborg <[email protected]>
- [PATCH 23/33] modpost white list pattern adjustment
- From: Sam Ravnborg <[email protected]>
- [PATCH 24/33] Whitelist references from __dbe_table to .init
- From: Sam Ravnborg <[email protected]>
- [PATCH 25/33] kbuild: use POSIX BRE in headers install target
- From: Sam Ravnborg <[email protected]>
- [PATCH 26/33] kconfig: strip 'CONFIG_' automatically in kernel configuration search
- From: Sam Ravnborg <[email protected]>
- [PATCH 28/33] kconfig: reset generated values only if Kconfig and .config agree.
- From: Sam Ravnborg <[email protected]>
- [PATCH 29/33] kbuild: use -fno-optimize-sibling-calls unconditionally
- From: Sam Ravnborg <[email protected]>
- [PATCH 01/33] kbuild: asm-offsets.h is now cleaned with O=.. builds
- Prev by Date: [PATCH 20/33] kbuild: remove hardcoded _logo names from modpost
- Next by Date: [PATCH 24/33] Whitelist references from __dbe_table to .init
- Previous by thread: [PATCH 29/33] kbuild: use -fno-optimize-sibling-calls unconditionally
- Next by thread: [PATCH 31/33] cris: use DATA_DATA in cris
- Index(es):