patches/binutils/2.15/160-allow-gcc-4.0.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Sep 04 17:27:16 2009 +0200 (2009-09-04)
changeset 1512 439a6b292917
parent 745 e445c00d134d
permissions -rw-r--r--
TODO: update

Add TODO list for m4, autoconf, automake and libtool.
Building our own versions would remove burden from the users
who have older versions on their distributions, and are not
ready/able/allowed to upgrade.
yann@402
     1
Fix found here: http://www.freelists.org/archives/openbeos/11-2005/msg00090.html
yann@402
     2
yann@402
     3
Fixes:
yann@402
     4
In file included from ./targ-cpu.h:1,
yann@402
     5
                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/obj-elf.h:42,
yann@402
     6
                 from ./obj-format.h:1,
yann@402
     7
                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/te-linux.h:4,
yann@402
     8
                 from ./targ-env.h:1,
yann@402
     9
                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/as.h:626,
yann@402
    10
                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/app.c:30:
yann@402
    11
/home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/tc-i386.h:451: error: array type has incomplete element type
yann@402
    12
make[3]: *** [app.o] Error 1
yann@402
    13
make[3]: Leaving directory `/home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-binutils/gas'
yann@402
    14
yann@402
    15
when building binutils-2.15 with gcc-4.0
yann@402
    16
yann@402
    17
yann@402
    18
diff -ur binutils-2.15.old/gas/as.h binutils-2.15/gas/as.h
yann@402
    19
--- binutils-2.15.old/gas/as.h	2003-11-22 18:14:21.000000000 -0800
yann@402
    20
+++ binutils-2.15/gas/as.h	2006-02-14 22:05:35.000000000 -0800
yann@402
    21
@@ -605,7 +605,26 @@
yann@402
    22
 struct expressionS;
yann@402
    23
 struct fix;
yann@402
    24
 typedef struct symbol symbolS;
yann@402
    25
-struct relax_type;
yann@402
    26
+
yann@402
    27
+/* JF moved this here from as.h under the theory that nobody except MACHINE.c
yann@402
    28
+   and write.c care about it anyway.  */
yann@402
    29
+/* [zooey]: the above no longer holds with gcc4, as it keeps bugging about
yann@402
    30
+            incomplete element types in arrays, if relax_type isn't defined
yann@402
    31
+            here. So I moved the definition back from tc.h to here. */
yann@402
    32
+struct relax_type
yann@402
    33
+{
yann@402
    34
+  /* Forward reach. Signed number. > 0.  */
yann@402
    35
+  long rlx_forward;
yann@402
    36
+  /* Backward reach. Signed number. < 0.  */
yann@402
    37
+  long rlx_backward;
yann@402
    38
+
yann@402
    39
+  /* Bytes length of this address.  */
yann@402
    40
+  unsigned char rlx_length;
yann@402
    41
+
yann@402
    42
+  /* Next longer relax-state.  0 means there is no 'next' relax-state.  */
yann@402
    43
+  relax_substateT rlx_more;
yann@402
    44
+};
yann@402
    45
+
yann@402
    46
 typedef struct frag fragS;
yann@402
    47
 
yann@402
    48
 #ifdef BFD_ASSEMBLER
yann@402
    49
diff -ur binutils-2.15.old/gas/tc.h binutils-2.15/gas/tc.h
yann@402
    50
--- binutils-2.15.old/gas/tc.h	2003-12-03 15:39:38.000000000 -0800
yann@402
    51
+++ binutils-2.15/gas/tc.h	2006-02-14 22:03:35.000000000 -0800
yann@402
    52
@@ -24,23 +24,6 @@
yann@402
    53
 
yann@402
    54
 extern const pseudo_typeS md_pseudo_table[];
yann@402
    55
 
yann@402
    56
-/* JF moved this here from as.h under the theory that nobody except MACHINE.c
yann@402
    57
-   and write.c care about it anyway.  */
yann@402
    58
-
yann@402
    59
-struct relax_type
yann@402
    60
-{
yann@402
    61
-  /* Forward reach. Signed number. > 0.  */
yann@402
    62
-  long rlx_forward;
yann@402
    63
-  /* Backward reach. Signed number. < 0.  */
yann@402
    64
-  long rlx_backward;
yann@402
    65
-
yann@402
    66
-  /* Bytes length of this address.  */
yann@402
    67
-  unsigned char rlx_length;
yann@402
    68
-
yann@402
    69
-  /* Next longer relax-state.  0 means there is no 'next' relax-state.  */
yann@402
    70
-  relax_substateT rlx_more;
yann@402
    71
-};
yann@402
    72
-
yann@402
    73
 typedef struct relax_type relax_typeS;
yann@402
    74
 
yann@402
    75
 extern const int md_reloc_size;	/* Size of a relocation record */