Index: build/install-build-deps.sh |
diff --git a/build/install-build-deps.sh b/build/install-build-deps.sh |
index 8a6668e48c08fb60b91e733b8e6fa4f1bce0fef2..d16af734cdeded9cf5c82a5f4776e0d8143b53fc 100755 |
--- a/build/install-build-deps.sh |
+++ b/build/install-build-deps.sh |
@@ -31,6 +31,7 @@ install_gold() { |
echo Bad sha1sum for $BINUTILS.tar.bz2 |
exit 1 |
fi |
+ |
cat > binutils-fix.patch <<__EOF__ |
--- binutils-2.19.1/gold/reduced_debug_output.h.orig 2009-05-10 14:44:52.000000000 -0700 |
+++ binutils-2.19.1/gold/reduced_debug_output.h 2009-05-10 14:46:51.000000000 -0700 |
@@ -52,6 +53,63 @@ install_gold() { |
this->failed_ = true; |
} |
+diff -u -r1.3 -r1.4 |
+--- binutils-2.19.1/gold/descriptors.h 2009/01/15 01:29:25 1.3 |
++++ binutils-2.19.1/gold/descriptors.h 2009/02/28 03:05:08 1.4 |
+@@ -69,6 +69,8 @@ |
+ bool inuse; |
+ // Whether this is a write descriptor. |
+ bool is_write; |
++ // Whether the descriptor is on the stack. |
++ bool is_on_stack; |
+ }; |
+ |
+ bool |
+--- binutils-2.19.1/gold/descriptors.cc 2009/01/15 01:29:25 1.3 |
++++ binutils-2.19.1/gold/descriptors.cc 2009/02/28 03:05:08 1.4 |
+@@ -75,6 +75,12 @@ |
+ { |
+ gold_assert(!pod->inuse); |
+ pod->inuse = true; |
++ if (descriptor == this->stack_top_) |
++ { |
++ this->stack_top_ = pod->stack_next; |
++ pod->stack_next = -1; |
++ pod->is_on_stack = false; |
++ } |
+ return descriptor; |
+ } |
+ } |
+@@ -114,6 +120,7 @@ |
+ pod->stack_next = -1; |
+ pod->inuse = true; |
+ pod->is_write = (flags & O_ACCMODE) != O_RDONLY; |
++ pod->is_on_stack = false; |
+ |
+ ++this->current_; |
+ if (this->current_ >= this->limit_) |
+@@ -158,10 +165,11 @@ |
+ else |
+ { |
+ pod->inuse = false; |
+- if (!pod->is_write) |
++ if (!pod->is_write && !pod->is_on_stack) |
+ { |
+ pod->stack_next = this->stack_top_; |
+ this->stack_top_ = descriptor; |
++ pod->is_on_stack = true; |
+ } |
+ } |
+ } |
+@@ -193,6 +201,8 @@ |
+ this->stack_top_ = pod->stack_next; |
+ else |
+ this->open_descriptors_[last].stack_next = pod->stack_next; |
++ pod->stack_next = -1; |
++ pod->is_on_stack = false; |
+ return true; |
+ } |
+ last = i; |
__EOF__ |
tar -xjvf $BINUTILS.tar.bz2 |