diff --git a/src/main/c/build/common.sh b/src/main/c/build/common.sh index da8537b..70c0d9e 100644 --- a/src/main/c/build/common.sh +++ b/src/main/c/build/common.sh @@ -75,5 +75,5 @@ build() chmod -x "$DISTDIR/"* # Cleanup -# rm -rf "$TMPDIR" + rm -rf "$TMPDIR" } diff --git a/src/main/c/build/linux-x86_64.sh b/src/main/c/build/linux-x86_64.sh index e1b369e..8604fe7 100755 --- a/src/main/c/build/linux-x86_64.sh +++ b/src/main/c/build/linux-x86_64.sh @@ -9,8 +9,9 @@ set -e OS="linux" ARCH="x86_64" HOST="$ARCH-$OS-gnu" -CFLAGS="-m64" +CFLAGS="-m64 -Wl,--wrap=memcpy" LIBUSB_CONFIG="--disable-shared" USB4JAVA_LIBS="-lrt" +USB4JAVA_CFLAGS="-DWRAP_MEMCPY" build diff --git a/src/main/c/src/Makefile.am b/src/main/c/src/Makefile.am index 1ae9bf9..9be6ead 100644 --- a/src/main/c/src/Makefile.am +++ b/src/main/c/src/Makefile.am @@ -4,6 +4,7 @@ libusb4java_la_LIBADD = $(LIBUSB_LIBS) libusb4java_la_LDFLAGS = -version-info 1:0:0 -no-undefined EXTRA_DIST = *.h libusb4java_la_SOURCES = \ + wrappers.c \ usb4java.c \ LibUsb.c \ Version.c \ diff --git a/src/main/c/src/wrappers.c b/src/main/c/src/wrappers.c new file mode 100644 index 0000000..da85ad0 --- /dev/null +++ b/src/main/c/src/wrappers.c @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2013 Klaus Reimer (k@ailis.de) + * See COPYING file for copying conditions + */ + +#include + +// Enforce usage of older memcpy to be compatible with older libc versions +#if WRAP_MEMCPY +asm (".symver memcpy, memcpy@GLIBC_2.2.5"); +void *__wrap_memcpy(void *dest, const void *src, size_t n) +{ + return memcpy(dest, src, n); +} +#endif diff --git a/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so b/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so index a5f86e5..ace3f4a 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so and b/src/main/resources/de/ailis/usb4java/libusb/linux-x86/libusb4java.so differ diff --git a/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so b/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so index 3270e0d..9e9b201 100644 Binary files a/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so and b/src/main/resources/de/ailis/usb4java/libusb/linux-x86_64/libusb4java.so differ