Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Nov 2017 01:45:13 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r454093 - in head/devel/llvm40: . files
Message-ID:  <201711130145.vAD1jDOL046741@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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();
+ }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711130145.vAD1jDOL046741>