[OpenAFS-devel] Symbol memcpy not found?
Jeffrey Hutzelman
jhutz@cmu.edu
Wed, 13 Dec 2000 21:59:11 -0800 (PST)
On 14 Dec 2000, Derek Atkins wrote:
> The linux code should provide memcpy(). At least under Linux/x86 it
> is provided from <asm/string.h>. I don't know where it would be on
> the 390, but I would check out the Linux include files to see where
> you might be able to find it. It's going to be there, somewhere.
Since Derek pointed out to me that these things are often provided
as macros in asm/string.h, I went and looked at the s390 code in 2.2.17.
asm-s390/string.h defines __HAVE_ARCH_* for 8 symbols:
memchr, strcpy, strlen, and strcat are in include/asm-s390/string.h
memset, strcmp, and strncpy are in assembly files in arch/s390/lib/
As it turns out, memcpy is defined in neither of those places, despite
the fact that __HAVE_ARCH_MEMCPY is defined. So, you are going to lose
with that kernel. The simplest solution is probably to edit
include/asm-s390/string.h and change
#define __HAVE_ARCH_MEMCPY
to
#undef __HAVE_ARCH_MEMCPY
and rebuild the kernel.
If you don't want to rebuild, you could instead edit that same file
and add
#define memcpy(a,b,c) bcopy(b,a,c)
then rebuild OpenAFS.
Good luck...
-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Sr. Research Systems Programmer
School of Computer Science - Research Computing Facility
Carnegie Mellon University - Pittsburgh, PA