summaryrefslogtreecommitdiff
path: root/patches/binutils
diff options
context:
space:
mode:
authorRay Donnelly <mingw.android@gmail.com>2015-11-22 14:38:18 (GMT)
committerRay Donnelly <mingw.android@gmail.com>2015-11-22 14:38:22 (GMT)
commitf001b0605ec78096c78793aafca6d58fa74d47ab (patch)
treee54c5e8c42d8574b768f52435ea83bbb7ff98b67 /patches/binutils
parentead1358ae5da44222d1cab6f919db59c33dd7431 (diff)
darwin-host: Three build fixes for binutils 2.25{,.1}
1. Need to include <string> not <cstring> in gold's binary.cc 2. wcsncasecmp isn't always defined in Mac SDK 3. PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}}, so can't be trivially assigned in an intializer list. Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
Diffstat (limited to 'patches/binutils')
-rw-r--r--patches/binutils/2.25.1/340-Darwin-gold-binary-cc-include-string-not-cstring.patch11
-rw-r--r--patches/binutils/2.25.1/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch77
-rw-r--r--patches/binutils/2.25/340-Darwin-gold-binary-cc-include-string-not-cstring.patch11
-rw-r--r--patches/binutils/2.25/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch77
4 files changed, 176 insertions, 0 deletions
diff --git a/patches/binutils/2.25.1/340-Darwin-gold-binary-cc-include-string-not-cstring.patch b/patches/binutils/2.25.1/340-Darwin-gold-binary-cc-include-string-not-cstring.patch
new file mode 100644
index 0000000..33441cc
--- /dev/null
+++ b/patches/binutils/2.25.1/340-Darwin-gold-binary-cc-include-string-not-cstring.patch
@@ -0,0 +1,11 @@
+--- binutils-2.25.orig/gold/binary.cc 2015-06-09 10:48:32.000000000 +0100
++++ binutils-2.25/gold/binary.cc 2015-06-09 10:49:23.000000000 +0100
+@@ -23,7 +23,7 @@
+ #include "gold.h"
+
+ #include <cerrno>
+-#include <cstring>
++#include <string>
+ #include "safe-ctype.h"
+
+ #include "elfcpp.h"
diff --git a/patches/binutils/2.25.1/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch b/patches/binutils/2.25.1/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
new file mode 100644
index 0000000..871d239
--- /dev/null
+++ b/patches/binutils/2.25.1/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
@@ -0,0 +1,77 @@
+From c39479f4ab4d372b518957871e1f205a03e7c3d6 Mon Sep 17 00:00:00 2001
+From: Andrew Hsieh <andrewhsieh@google.com>
+Date: Wed, 18 Mar 2015 10:57:24 +0800
+Subject: [PATCH] Fix darwin build
+
+1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4
+ doesn't support ended initializer list
+2. wcsncasecmp doesn't exist in MacSDK10.6.x
+
+Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e
+---
+ binutils-2.25/bfd/peXXigen.c | 22 ++++++++++++++++++++++
+ binutils-2.25/gold/gold-threads.cc | 15 ++++++++++++---
+ 2 files changed, 34 insertions(+), 3 deletions(-)
+
+diff --git binutils-2.25.orig/bfd/peXXigen.c binutils-2.25/bfd/peXXigen.c
+index 13e39e4..7a98306 100644
+--- binutils-2.25.orig/bfd/peXXigen.c
++++ binutils-2.25/bfd/peXXigen.c
+@@ -3522,6 +3522,28 @@ u16_mbtouc (wchar_t * puc, const unsigned short * s, unsigned int n)
+ }
+ #endif /* HAVE_WCHAR_H and not Cygwin/Mingw */
+
++#ifdef __APPLE__
++/* wcsncasecmp isn't always defined in Mac SDK */
++static int
++wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n)
++{
++ wchar_t c1, c2;
++
++ if (n == 0)
++ return (0);
++ for (; *s1; s1++, s2++)
++ {
++ c1 = towlower(*s1);
++ c2 = towlower(*s2);
++ if (c1 != c2)
++ return ((int)c1 - c2);
++ if (--n == 0)
++ return (0);
++ }
++ return (-*s2);
++}
++#endif
++
+ /* Perform a comparison of two entries. */
+ static signed int
+ rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
+diff --git binutils-2.25.orig/gold/gold-threads.cc binutils-2.25/gold/gold-threads.cc
+index ff5a8ac..45140e0 100644
+--- binutils-2.25.orig/gold/gold-threads.cc
++++ binutils-2.25/gold/gold-threads.cc
+@@ -284,9 +284,18 @@ Condvar::~Condvar()
+ class Once_initialize
+ {
+ public:
+- Once_initialize()
+- : once_(PTHREAD_ONCE_INIT)
+- { }
++ Once_initialize()
++#if !defined(__APPLE__)
++ : once_(PTHREAD_ONCE_INIT)
++ { }
++#else
++// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support
++// extended initializer list as above */
++ {
++ pthread_once_t once_2 = PTHREAD_ONCE_INIT;
++ once_ = once_2;
++ }
++#endif
+
+ // Return a pointer to the pthread_once_t variable.
+ pthread_once_t*
+--
+2.1.3
+
diff --git a/patches/binutils/2.25/340-Darwin-gold-binary-cc-include-string-not-cstring.patch b/patches/binutils/2.25/340-Darwin-gold-binary-cc-include-string-not-cstring.patch
new file mode 100644
index 0000000..33441cc
--- /dev/null
+++ b/patches/binutils/2.25/340-Darwin-gold-binary-cc-include-string-not-cstring.patch
@@ -0,0 +1,11 @@
+--- binutils-2.25.orig/gold/binary.cc 2015-06-09 10:48:32.000000000 +0100
++++ binutils-2.25/gold/binary.cc 2015-06-09 10:49:23.000000000 +0100
+@@ -23,7 +23,7 @@
+ #include "gold.h"
+
+ #include <cerrno>
+-#include <cstring>
++#include <string>
+ #include "safe-ctype.h"
+
+ #include "elfcpp.h"
diff --git a/patches/binutils/2.25/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch b/patches/binutils/2.25/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
new file mode 100644
index 0000000..871d239
--- /dev/null
+++ b/patches/binutils/2.25/350-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
@@ -0,0 +1,77 @@
+From c39479f4ab4d372b518957871e1f205a03e7c3d6 Mon Sep 17 00:00:00 2001
+From: Andrew Hsieh <andrewhsieh@google.com>
+Date: Wed, 18 Mar 2015 10:57:24 +0800
+Subject: [PATCH] Fix darwin build
+
+1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4
+ doesn't support ended initializer list
+2. wcsncasecmp doesn't exist in MacSDK10.6.x
+
+Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e
+---
+ binutils-2.25/bfd/peXXigen.c | 22 ++++++++++++++++++++++
+ binutils-2.25/gold/gold-threads.cc | 15 ++++++++++++---
+ 2 files changed, 34 insertions(+), 3 deletions(-)
+
+diff --git binutils-2.25.orig/bfd/peXXigen.c binutils-2.25/bfd/peXXigen.c
+index 13e39e4..7a98306 100644
+--- binutils-2.25.orig/bfd/peXXigen.c
++++ binutils-2.25/bfd/peXXigen.c
+@@ -3522,6 +3522,28 @@ u16_mbtouc (wchar_t * puc, const unsigned short * s, unsigned int n)
+ }
+ #endif /* HAVE_WCHAR_H and not Cygwin/Mingw */
+
++#ifdef __APPLE__
++/* wcsncasecmp isn't always defined in Mac SDK */
++static int
++wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n)
++{
++ wchar_t c1, c2;
++
++ if (n == 0)
++ return (0);
++ for (; *s1; s1++, s2++)
++ {
++ c1 = towlower(*s1);
++ c2 = towlower(*s2);
++ if (c1 != c2)
++ return ((int)c1 - c2);
++ if (--n == 0)
++ return (0);
++ }
++ return (-*s2);
++}
++#endif
++
+ /* Perform a comparison of two entries. */
+ static signed int
+ rsrc_cmp (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
+diff --git binutils-2.25.orig/gold/gold-threads.cc binutils-2.25/gold/gold-threads.cc
+index ff5a8ac..45140e0 100644
+--- binutils-2.25.orig/gold/gold-threads.cc
++++ binutils-2.25/gold/gold-threads.cc
+@@ -284,9 +284,18 @@ Condvar::~Condvar()
+ class Once_initialize
+ {
+ public:
+- Once_initialize()
+- : once_(PTHREAD_ONCE_INIT)
+- { }
++ Once_initialize()
++#if !defined(__APPLE__)
++ : once_(PTHREAD_ONCE_INIT)
++ { }
++#else
++// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support
++// extended initializer list as above */
++ {
++ pthread_once_t once_2 = PTHREAD_ONCE_INIT;
++ once_ = once_2;
++ }
++#endif
+
+ // Return a pointer to the pthread_once_t variable.
+ pthread_once_t*
+--
+2.1.3
+