1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
[PATCH] pr_fnmatch.c: use mempcpy, not __mempcpy to fix linker issue with uClibc
The standard name (as checked for by configure) for the function is mempcpy,
not __mempcpy, so use that instead.
The existing code happens to work on glibc, as that provides an __mempcpy
alias, but other C libraries (E.G. uClibc) don't:
./host/usr/bin/arm-linux-nm -D ./staging/lib/libuClibc-0.9.33.2.so | grep mempcpy
00035d2c W mempcpy
00036cf8 W wmempcpy
vs
./host/usr/bin/arm-none-linux-gnueabi-nm -D staging/lib/libc-2.18.so | grep mempcpy
0007d140 T mempcpy
0007d140 T __mempcpy
000e15f0 T __mempcpy_chk
00081828 T __mempcpy_small
00083148 W wmempcpy
000e4e3c T __wmempcpy_chk
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
lib/pr_fnmatch.c | 2 +-
lib/pr_fnmatch_loop.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: proftpd-1.3.4d/lib/pr_fnmatch.c
===================================================================
--- proftpd-1.3.4d.orig/lib/pr_fnmatch.c
+++ proftpd-1.3.4d/lib/pr_fnmatch.c
@@ -250,7 +250,7 @@
# endif
# define STRLEN(S) strlen (S)
# define STRCAT(D, S) strcat (D, S)
-# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
+# define MEMPCPY(D, S, N) mempcpy (D, S, N)
# define MEMCHR(S, C, N) memchr (S, C, N)
# define STRCOLL(S1, S2) strcoll (S1, S2)
# include "pr_fnmatch_loop.c"
Index: proftpd-1.3.4d/lib/pr_fnmatch_loop.c
===================================================================
--- proftpd-1.3.4d.orig/lib/pr_fnmatch_loop.c
+++ proftpd-1.3.4d/lib/pr_fnmatch_loop.c
@@ -54,7 +54,7 @@
/* Copy N bytes of SRC to DEST, return pointer to bytes after the
last written byte. */
static void *
-__mempcpy (void *dest, const void *src, size_t n)
+mempcpy (void *dest, const void *src, size_t n)
{
return (char *) memcpy (dest, src, n) + n;
}
|