svn commit: r454093 - in head/devel/llvm40: . files
Brooks Davis
brooks at FreeBSD.org
Mon Nov 13 01:45:14 UTC 2017
Author: brooks
Date: Mon Nov 13 01:45:12 2017
New Revision: 454093
URL: https://svnweb.freebsd.org/changeset/ports/454093
Log:
Merge from src and upstream LLVM:
lld: accept EINVAL to indicate posix_fallocate is unsupported
As of r325320 posix_fallocate on a ZFS filesystem returns EINVAL to
indicate that the operation is not supported. (I think this is a strange
choice of errno on the part of POSIX.)
PR: 223383, 223440
Reported by: Mark Millard
Added:
head/devel/llvm40/files/patch-lib_Support_Unix_Path.inc (contents, props changed)
Modified:
head/devel/llvm40/Makefile
Modified: head/devel/llvm40/Makefile
==============================================================================
--- head/devel/llvm40/Makefile Sun Nov 12 22:58:56 2017 (r454092)
+++ head/devel/llvm40/Makefile Mon Nov 13 01:45:12 2017 (r454093)
@@ -2,7 +2,7 @@
PORTNAME= llvm
DISTVERSION= 4.0.1
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= devel lang
MASTER_SITES= http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR}
PKGNAMESUFFIX= ${LLVM_SUFFIX}
Added: head/devel/llvm40/files/patch-lib_Support_Unix_Path.inc
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/llvm40/files/patch-lib_Support_Unix_Path.inc Mon Nov 13 01:45:12 2017 (r454093)
@@ -0,0 +1,22 @@
+--- lib/Support/Unix/Path.inc.orig
++++ lib/Support/Unix/Path.inc
+@@ -342,14 +342,15 @@
+ #if defined(HAVE_POSIX_FALLOCATE)
+ // If we have posix_fallocate use it. Unlike ftruncate it always allocates
+ // space, so we get an error if the disk is full.
+- if (int Err = ::posix_fallocate(FD, 0, Size))
+- return std::error_code(Err, std::generic_category());
+-#else
++ if (int Err = ::posix_fallocate(FD, 0, Size)) {
++ if (Err != EINVAL && Err != EOPNOTSUPP)
++ return std::error_code(Err, std::generic_category());
++ }
++#endif
+ // Use ftruncate as a fallback. It may or may not allocate space. At least on
+ // OS X with HFS+ it does.
+ if (::ftruncate(FD, Size) == -1)
+ return std::error_code(errno, std::generic_category());
+-#endif
+
+ return std::error_code();
+ }
More information about the svn-ports-all
mailing list