diff options
author | Jeff Dike <jdike@addtoit.com> | 2007-07-23 21:43:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-24 15:24:58 -0400 |
commit | 1a65f493c335abc3822291b52f3565776ce39a1b (patch) | |
tree | 63c2d36c9a779e45232c07dbbf55ca20c27d6618 /arch/um | |
parent | 0d786d4a2773f06a791e8c3730d049077fb81df6 (diff) |
uml: fix string exporting on UML/i386
In 2.6.23-rc1, i386 fiddled its string support such that UML started getting
undefined references from modules. The UML asm/string.h was including the
i386 string.h, which defined __HAVE_ARCH_STR*, but the corresponding
implementations weren't being pulled in.
This is fixed by adding arch/i386/lib/string.h to the list of host
architecture files to be pulled in to UML.
A complication is that the libc exports file assumed that the generic strlen
and strstr weren't in use (i.e. __HAVE_ARCH_STR is defined), then they aren't
exported. This is untrue for strlen, which is exported in either case, so
this logic is not needed.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/os-Linux/user_syms.c | 5 | ||||
-rw-r--r-- | arch/um/sys-i386/Makefile | 2 |
2 files changed, 2 insertions, 5 deletions
diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c index 419b2d5ff6de..4c37b1b1d0b5 100644 --- a/arch/um/os-Linux/user_syms.c +++ b/arch/um/os-Linux/user_syms.c | |||
@@ -19,10 +19,7 @@ extern void *memmove(void *, const void *, size_t); | |||
19 | extern void *memset(void *, int, size_t); | 19 | extern void *memset(void *, int, size_t); |
20 | extern int printf(const char *, ...); | 20 | extern int printf(const char *, ...); |
21 | 21 | ||
22 | /* If they're not defined, the export is included in lib/string.c.*/ | 22 | /* If it's not defined, the export is included in lib/string.c.*/ |
23 | #ifdef __HAVE_ARCH_STRLEN | ||
24 | EXPORT_SYMBOL(strlen); | ||
25 | #endif | ||
26 | #ifdef __HAVE_ARCH_STRSTR | 23 | #ifdef __HAVE_ARCH_STRSTR |
27 | EXPORT_SYMBOL(strstr); | 24 | EXPORT_SYMBOL(strstr); |
28 | #endif | 25 | #endif |
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index 098720be019a..d6b3ecd4b77e 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -4,7 +4,7 @@ obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ | |||
4 | 4 | ||
5 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o | 5 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o |
6 | 6 | ||
7 | subarch-obj-y = lib/bitops.o lib/semaphore.o | 7 | subarch-obj-y = lib/bitops.o lib/semaphore.o lib/string.o |
8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o | 8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o |
9 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o | 9 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o |
10 | 10 | ||