components/binutils/patches/output.cc.patch
author Brian Reitz <Brian.Reitz@Oracle.COM>
Thu, 28 May 2015 10:11:41 -0700
branchs11-update
changeset 4448 a1595889821c
parent 2493 9911278899a3
child 5057 ab1b43bf588f
permissions -rw-r--r--
21035315 swift missing dependency on network/rsync
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2493
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
--- binutils-2.23.1/gold/output.cc	2012-11-09 01:21:28.000000000 -0700
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
+++ binutils-2.23.1/gold/output.cc	2013-01-01 01:45:50.721203685 -0700
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
@@ -22,6 +22,7 @@
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
 
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
 #include "gold.h"
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
 
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
+#include <cstdio>
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
 #include <cstdlib>
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
 #include <cstring>
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
 #include <cerrno>
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
@@ -127,9 +128,15 @@
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
 static int
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
 gold_fallocate(int o, off_t offset, off_t len)
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
 {
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
-#ifdef HAVE_POSIX_FALLOCATE
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
-  if (parameters->options().posix_fallocate())
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
-    return ::posix_fallocate(o, offset, len);
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
+#if defined(HAVE_POSIX_FALLOCATE)
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
+  if (parameters->options().posix_fallocate()) {
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
+    // posix_fallocate on Solaris will fail if len == 0
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
+    int ret = ::posix_fallocate(o, offset, len);
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
+    // try ::ftruncate(3C) is posix_fallocate(3C) failed.
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
+    if (ret != 0)
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
+      ret = ::ftruncate(o, offset + len);
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+    return ret;
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
+  }
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
 #endif // defined(HAVE_POSIX_FALLOCATE)
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
 #ifdef HAVE_FALLOCATE
9911278899a3 15824357 SUNBT7205968 Upgrade binutils to 2.22
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
   if (::fallocate(o, 0, offset, len) == 0)