gcc version 4.9.3 20150311 (prerelease) (crosstool-NG crosstool-ng-1.21.0-33-g334c22a) edit: linaro
glibc-2.21
binutils-2.25
make[1]: Entering directory '/home/asavah/piko7/src/arm-mem'
arm-rpi2-linux-gnueabihf-gcc -c -o architecture.o architecture.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcmp.o memcmp.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcpymove.o memcpymove.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcpymove-a7.o memcpymove-a7.S
arm-rpi2-linux-gnueabihf-gcc -c -o memset.o memset.S
arm-rpi2-linux-gnueabihf-gcc -pipe --sysroot=/home/asavah/piko7/build/rpi2/rootfs -Wl,--sysroot=/home/asavah/piko7/build/rpi2/rootfs -std=gnu99 -O2 -c -o trampoline.o trampoline.c
In file included from /home/asavah/piko7/build/rpi2/rootfs/usr/include/string.h:634:0,
from trampoline.c:29:
trampoline.c:57:18: error: redefinition of ‘__builtin_mempcpy’
DISPATCH(void *, mempcpy, (void *__restrict __dest, __const void *__restrict __src, size_t __n), (__dest, __src, __n))
^
trampoline.c:57:1: note: in expansion of macro ‘DISPATCH’
DISPATCH(void *, mempcpy, (void *__restrict __dest, __const void *__restrict __src, size_t __n), (__dest, __src, __n))
^
trampoline.c:56:17: note: previous definition of ‘__builtin_mempcpy’ was here
DISPATCH(void *,__mempcpy, (void *__restrict __dest, __const void *__restrict __src, size_t __n), (__dest, __src, __n))
^
trampoline.c:56:1: note: in expansion of macro ‘DISPATCH’
DISPATCH(void *,__mempcpy, (void *__restrict __dest, __const void *__restrict __src, size_t __n), (__dest, __src, __n))
^
Makefile:7: recipe for target 'trampoline.o' failed
make[1]: *** [trampoline.o] Error 1
make[1]: Leaving directory '/home/asavah/piko7/src/arm-mem'
Makefile:55: recipe for target 'build' failed
make: *** [build] Error 2
As suggested in comments of ~/usr/include/string.h I tried defining __NO_STRING_INLINES in CFLAGS, it helped, somewhat:
make[1]: Entering directory '/home/asavah/piko7/src/arm-mem'
arm-rpi2-linux-gnueabihf-gcc -c -o architecture.o architecture.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcmp.o memcmp.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcpymove.o memcpymove.S
arm-rpi2-linux-gnueabihf-gcc -c -o memcpymove-a7.o memcpymove-a7.S
arm-rpi2-linux-gnueabihf-gcc -c -o memset.o memset.S
arm-rpi2-linux-gnueabihf-gcc -pipe --sysroot=/home/asavah/piko7/build/rpi2/rootfs -Wl,--sysroot=/home/asavah/piko7/build/rpi2/rootfs -D__NO_STRING_INLINES -std=gnu99 -O2 -c -o trampoline.o trampoline.c
arm-rpi2-linux-gnueabihf-gcc -shared -o libarmmem.so architecture.o memcmp.o memcpymove.o memcpymove-a7.o memset.o trampoline.o
/home/asavah/piko7/toolchain-rpi2/arm-rpi2-linux-gnueabihf/lib/gcc/arm-rpi2-linux-gnueabihf/4.9.3/../../../../arm-rpi2-linux-gnueabihf/bin/ld.bfd: trampoline.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
trampoline.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:13: recipe for target 'libarmmem.so' failed
make[1]: *** [libarmmem.so] Error 1
make[1]: Leaving directory '/home/asavah/piko7/src/arm-mem'
Makefile:55: recipe for target 'build' failed
make: *** [build] Error 2