summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2016-01-17 10:49:13 -0500
committerErik Schnetter <schnetter@gmail.com>2016-01-17 10:49:13 -0500
commit36a428b8fc2cfaaab7fb52034a3272c67eb47aea (patch)
tree4390477fbe702cb0588e062a30c380cb584719be /var
parent1268b415709356d369dfdd69a5eef6e1b775e851 (diff)
downloadspack-36a428b8fc2cfaaab7fb52034a3272c67eb47aea.tar.gz
spack-36a428b8fc2cfaaab7fb52034a3272c67eb47aea.tar.bz2
spack-36a428b8fc2cfaaab7fb52034a3272c67eb47aea.tar.xz
spack-36a428b8fc2cfaaab7fb52034a3272c67eb47aea.zip
Make binutils build on OS X
Binutils defines several global variables multiple times. Apparently this works fine under Linux, but it leads to a linker error on Darwin. Rename these global variables. Note that binutils on OS X is still not really useful, as important tools (e.g. ld) are not supported.
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/binutils/cr16.patch26
-rw-r--r--var/spack/packages/binutils/package.py2
2 files changed, 28 insertions, 0 deletions
diff --git a/var/spack/packages/binutils/cr16.patch b/var/spack/packages/binutils/cr16.patch
new file mode 100644
index 0000000000..2727c70b23
--- /dev/null
+++ b/var/spack/packages/binutils/cr16.patch
@@ -0,0 +1,26 @@
+--- old/opcodes/cr16-dis.c 2014-10-14 03:32:04.000000000 -0400
++++ new/opcodes/cr16-dis.c 2016-01-14 21:54:26.000000000 -0500
+@@ -78,7 +78,7 @@
+ REG_ARG_TYPE;
+
+ /* Current opcode table entry we're disassembling. */
+-const inst *instruction;
++extern const inst *instruction;
+ /* Current instruction we're disassembling. */
+ ins cr16_currInsn;
+ /* The current instruction is read into 3 consecutive words. */
+@@ -86,12 +86,12 @@
+ /* Contains all words in appropriate order. */
+ ULONGLONG cr16_allWords;
+ /* Holds the current processed argument number. */
+-int processing_argument_number;
++extern int processing_argument_number;
+ /* Nonzero means a IMM4 instruction. */
+ int imm4flag;
+ /* Nonzero means the instruction's original size is
+ incremented (escape sequence is used). */
+-int size_changed;
++extern int size_changed;
+
+
+ /* Print the constant expression length. */
diff --git a/var/spack/packages/binutils/package.py b/var/spack/packages/binutils/package.py
index 1de796bee0..de04221e33 100644
--- a/var/spack/packages/binutils/package.py
+++ b/var/spack/packages/binutils/package.py
@@ -14,6 +14,8 @@ class Binutils(Package):
variant('gold', default=True, description="build the gold linker")
patch('binutilskrell-2.24.patch', when='@2.24+krellpatch')
+ patch('cr16.patch')
+
variant('libiberty', default=False, description='Also install libiberty.')
def install(self, spec, prefix):