Package: user-mode-linux Version: 2.6.25-1um-1 Severity: serious Tags: patch Justification: no longer builds from source
user-mode-linux fails to build on amd64 with the following error: | CC arch/um/sys-x86_64/ksyms.o | arch/um/sys-x86_64/ksyms.c:16: error: '__memcpy' undeclared here (not in a function) | arch/um/sys-x86_64/ksyms.c:16: warning: type defaults to 'int' in declaration of '__memcpy' | make[2]: *** [arch/um/sys-x86_64/ksyms.o] Error 1 | make[1]: *** [arch/um/sys-x86_64] Error 2 The problem is that arch/um/sys-x86_64/ksyms.c unconditionally tries to export __memcpy even though include/asm-x86/string_64.h declares it only for GCC 4.2 and older, newer versions presumably being smart enough not to need it. I'm attaching a patch that conditionalizes the EXPORT_SYMBOL call accordingly, and have confirmed that it allows the build to complete without errors. (FTR, arch/um/os-Linux/user_syms.c already exports memcpy itself, so ksyms.c need not do so in any case.) FWIW, you can find a full log illustrating the error at http://buildd.debian.org/fetch.cgi?pkg=user-mode-linux;ver=2.6.25-1um-1;arch=amd64;stamp=1216481207 -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.25.11 (SMP w/2 CPU cores) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash
Index: linux-source-2.6.25/arch/um/sys-x86_64/ksyms.c =================================================================== --- linux-source-2.6.25.orig/arch/um/sys-x86_64/ksyms.c 2008-04-16 22:49:44.000000000 -0400 +++ linux-source-2.6.25/arch/um/sys-x86_64/ksyms.c 2008-07-22 14:10:47.000000000 -0400 @@ -13,4 +13,6 @@ EXPORT_SYMBOL(__up_wakeup); /*XXX: we need them because they would be exported by x86_64 */ +#if (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || __GNUC__ < 4 EXPORT_SYMBOL(__memcpy); +#endif

