mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-27 16:18:52 +00:00
86c2982568
This refreshes the line numbers, removes any fuzz (which would make any future forward ports easier) and standardizes the patch/file headers (which makes them easier to read). Signed-off-by: Alexey Neyman <stilor@att.net>
71 lines
1.8 KiB
Diff
71 lines
1.8 KiB
Diff
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
|
|
---
|
|
bfd/peXXigen.c | 22 ++++++++++++++++++++++
|
|
gold/gold-threads.cc | 15 ++++++++++++---
|
|
2 files changed, 34 insertions(+), 3 deletions(-)
|
|
|
|
--- a/bfd/peXXigen.c
|
|
+++ b/bfd/peXXigen.c
|
|
@@ -3623,6 +3623,28 @@
|
|
}
|
|
#endif /* HAVE_WCHAR_H and not Cygwin/Mingw */
|
|
|
|
+#if defined __APPLE__ && __DARWIN_C_LEVEL < 200809L
|
|
+/* 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)
|
|
--- a/gold/gold-threads.cc
|
|
+++ b/gold/gold-threads.cc
|
|
@@ -284,9 +284,18 @@
|
|
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*
|