aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2017-05-31 02:14:45 +0800
committerbrooks <brooks@FreeBSD.org>2017-05-31 02:14:45 +0800
commitfc950e7a0bde86ca7c86cd1fdccc64b033a58630 (patch)
treee4239d2affa1e1d20b2cf99724d0316d8dcbd5c1 /devel
parent4dff561d94fe854d2872bfa79a0b68e74dee565e (diff)
downloadfreebsd-ports-gnome-fc950e7a0bde86ca7c86cd1fdccc64b033a58630.tar.gz
freebsd-ports-gnome-fc950e7a0bde86ca7c86cd1fdccc64b033a58630.tar.zst
freebsd-ports-gnome-fc950e7a0bde86ca7c86cd1fdccc64b033a58630.zip
Apply ino64 patches.
PR: 219601
Diffstat (limited to 'devel')
-rw-r--r--devel/llvm38/Makefile2
-rw-r--r--devel/llvm38/files/compiler-rt-patch-canonical-syscalls35
-rw-r--r--devel/llvm38/files/compiler-rt-patch-ino6415
3 files changed, 52 insertions, 0 deletions
diff --git a/devel/llvm38/Makefile b/devel/llvm38/Makefile
index 626b2e4dbb2e..df984db339ee 100644
--- a/devel/llvm38/Makefile
+++ b/devel/llvm38/Makefile
@@ -306,6 +306,8 @@ post-patch:
post-patch-COMPILER_RT-on:
cd ${WRKSRC_compiler_rt} && patch < ${PATCHDIR}/compiler-rt-patch-svn-261229
cd ${WRKSRC_compiler_rt} && patch < ${PATCHDIR}/compiler-rt-patch-svn-294806
+ cd ${WRKSRC_compiler_rt} && patch < ${PATCHDIR}/compiler-rt-patch-canonical-syscalls
+ cd ${WRKSRC_compiler_rt} && patch < ${PATCHDIR}/compiler-rt-patch-ino64
.if ${ARCH} == "amd64"
cd ${WRKSRC_compiler_rt} && patch < ${PATCHDIR}/compiler-rt-patch-no-m32
.endif
diff --git a/devel/llvm38/files/compiler-rt-patch-canonical-syscalls b/devel/llvm38/files/compiler-rt-patch-canonical-syscalls
new file mode 100644
index 000000000000..f68f299e8a03
--- /dev/null
+++ b/devel/llvm38/files/compiler-rt-patch-canonical-syscalls
@@ -0,0 +1,35 @@
+diff --git lib/sanitizer_common/sanitizer_linux.cc lib/sanitizer_common/sanitizer_linux.cc
+index 7328a5c0ac1..4b59a39ee27 100644
+--- lib/sanitizer_common/sanitizer_linux.cc
++++ lib/sanitizer_common/sanitizer_linux.cc
+@@ -223,7 +223,8 @@ static void kernel_stat_to_stat(struct kernel_stat *in, struct stat *out) {
+
+ uptr internal_stat(const char *path, void *buf) {
+ #if SANITIZER_FREEBSD
+- return internal_syscall(SYSCALL(stat), path, buf);
++ return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path,
++ (uptr)buf, 0);
+ #elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+ return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path,
+ (uptr)buf, 0);
+@@ -247,7 +248,8 @@ uptr internal_stat(const char *path, void *buf) {
+
+ uptr internal_lstat(const char *path, void *buf) {
+ #if SANITIZER_FREEBSD
+- return internal_syscall(SYSCALL(lstat), path, buf);
++ return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path,
++ (uptr)buf, AT_SYMLINK_NOFOLLOW);
+ #elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+ return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path,
+ (uptr)buf, AT_SYMLINK_NOFOLLOW);
+@@ -590,7 +592,9 @@ uptr internal_getppid() {
+ }
+
+ uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count) {
+-#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
++#if SANITIZER_FREEBSD
++ return internal_syscall(SYSCALL(getdirentries), fd, (uptr)dirp, count, NULL);
++#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+ return internal_syscall(SYSCALL(getdents64), fd, (uptr)dirp, count);
+ #else
+ return internal_syscall(SYSCALL(getdents), fd, (uptr)dirp, count);
diff --git a/devel/llvm38/files/compiler-rt-patch-ino64 b/devel/llvm38/files/compiler-rt-patch-ino64
new file mode 100644
index 000000000000..1e251f7f515c
--- /dev/null
+++ b/devel/llvm38/files/compiler-rt-patch-ino64
@@ -0,0 +1,15 @@
+--- lib/sanitizer_common/sanitizer_platform_limits_posix.h.orig 2017-05-24 19:09:24.000000000 +0000
++++ lib/sanitizer_common/sanitizer_platform_limits_posix.h 2017-05-24 20:12:47.183536000 +0000
+@@ -485,7 +485,12 @@
+ };
+ #elif SANITIZER_FREEBSD
+ struct __sanitizer_dirent {
++#if __FreeBSD_version < 1200031
+ unsigned int d_fileno;
++#else
++ unsigned long long d_fileno;
++ unsigned long long d_off;
++#endif
+ unsigned short d_reclen;
+ // more fields that we don't care about
+ };