use USER_CPPFLAGS
[AROS.git] / tools / crosstools / binutils-2.32-aros.diff
blobe749c18b140f22611dfead3398d039acea7f02d2
1 diff -ruN binutils-2.32-orig/bfd/Makefile.in binutils-2.32/bfd/Makefile.in
2 --- binutils-2.32-orig/bfd/Makefile.in 2019-02-02 16:47:56.000000000 +0100
3 +++ binutils-2.32/bfd/Makefile.in 2019-03-12 20:52:37.000000000 +0100
4 @@ -719,6 +719,7 @@
5 elf-nacl.lo \
6 elf-strtab.lo \
7 elf-vxworks.lo \
8 + elf-aros.lo \
9 elf.lo \
10 elf32-am33lin.lo \
11 elf32-arc.lo \
12 @@ -856,6 +857,7 @@
13 elf-nacl.c \
14 elf-strtab.c \
15 elf-vxworks.c \
16 + elf-aros.c \
17 elf.c \
18 elf32-am33lin.c \
19 elf32-arc.c \
20 @@ -1413,6 +1415,7 @@
21 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-properties.Plo@am__quote@
22 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-strtab.Plo@am__quote@
23 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-vxworks.Plo@am__quote@
24 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-aros.Plo@am__quote@
25 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@
26 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-aarch64.Plo@am__quote@
27 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-am33lin.Plo@am__quote@
28 diff -ruN binutils-2.32-orig/bfd/config.bfd binutils-2.32/bfd/config.bfd
29 --- binutils-2.32-orig/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100
30 +++ binutils-2.32/bfd/config.bfd 2019-03-09 20:48:07.000000000 +0100
31 @@ -230,7 +230,7 @@
32 targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
33 want64=true
35 - aarch64-*-elf | aarch64-*-rtems*)
36 + aarch64-*-elf | aarch64-*-aros | aarch64-*-rtems*)
37 targ_defvec=aarch64_elf64_le_vec
38 targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
39 want64=true
40 @@ -387,6 +387,10 @@
41 targ_defvec=arm_elf32_le_vec
42 targ_selvecs=arm_elf32_be_vec
44 + arm*-*-aros)
45 + targ_defvec=arm_elf32_aros_le_vec
46 + targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_aros_be_vec arm_elf32_be_vec arm_elf32_le_vec arm_elf32_fdpic_be_vec"
47 + ;;
48 arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
49 arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
50 arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi)
51 @@ -587,7 +591,7 @@
53 i[3-7]86-*-aros*)
54 targ_defvec=i386_elf32_vec
55 - targ_selvecs=iamcu_elf32_vec
56 + targ_selvecs="iamcu_elf32_vec x86_64_elf64_vec"
58 i[3-7]86-*-dicos*)
59 targ_defvec=i386_elf32_vec
60 @@ -718,6 +722,11 @@
61 targ_selvecs=i386_elf32_vec
62 want64=true
64 + x86_64-*-aros*)
65 + targ_defvec=x86_64_elf64_vec
66 + targ_selvecs=i386_elf32_vec
67 + want64=true
68 + ;;
69 #endif
70 i[3-7]86-*-lynxos*)
71 targ_defvec=i386_elf32_vec
72 @@ -1103,6 +1112,11 @@
73 targ_selvecs=rs6000_xcoff_vec
74 want64=true
76 + powerpc64-*-aros*)
77 + targ_defvec=powerpc_elf64_vec
78 + targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec powerpc_elf32_le_vec"
79 + want64=true
80 + ;;
81 powerpc64-*-freebsd*)
82 targ_defvec=powerpc_elf64_fbsd_vec
83 targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
84 @@ -1121,6 +1135,11 @@
85 want64=true
87 #endif
88 + powerpc-*-aros*)
89 + targ_defvec=powerpc_elf32_vec
90 + targ_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf32_le_vec"
91 + want64=true
92 + ;;
93 powerpc-*-*freebsd*)
94 targ_defvec=powerpc_elf32_fbsd_vec
95 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
96 diff -ruN binutils-2.32-orig/bfd/configure binutils-2.32/bfd/configure
97 --- binutils-2.32-orig/bfd/configure 2019-02-02 16:47:56.000000000 +0100
98 +++ binutils-2.32/bfd/configure 2019-03-12 20:51:36.000000000 +0100
99 @@ -14669,16 +14669,18 @@
100 aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
101 arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
102 arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
103 - arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
104 - arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
105 - arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
106 - arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
107 - arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
108 - arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
109 - arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
110 - arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
111 - arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
112 - arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
113 + arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
114 + arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
115 + arm_elf32_aros_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
116 + arm_elf32_aros_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
117 + arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
118 + arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
119 + arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
120 + arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
121 + arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
122 + arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
123 + arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
124 + arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
125 arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;
126 arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;
127 arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;;
128 diff -ruN binutils-2.32-orig/bfd/configure.ac binutils-2.32/bfd/configure.ac
129 --- binutils-2.32-orig/bfd/configure.ac 2019-01-19 17:01:32.000000000 +0100
130 +++ binutils-2.32/bfd/configure.ac 2019-03-12 20:50:40.000000000 +0100
131 @@ -437,16 +437,18 @@
132 aout_vec) tb="$tb host-aout.lo aout32.lo" ;;
133 arc_elf32_be_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
134 arc_elf32_le_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
135 - arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
136 - arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
137 - arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
138 - arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
139 - arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
140 - arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
141 - arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
142 - arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
143 - arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
144 - arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo $elf" ;;
145 + arm_elf32_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
146 + arm_elf32_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
147 + arm_elf32_aros_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
148 + arm_elf32_aros_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
149 + arm_elf32_fdpic_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
150 + arm_elf32_fdpic_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
151 + arm_elf32_nacl_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
152 + arm_elf32_nacl_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
153 + arm_elf32_symbian_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
154 + arm_elf32_symbian_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
155 + arm_elf32_vxworks_be_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
156 + arm_elf32_vxworks_le_vec) tb="$tb elf32-arm.lo elf32.lo elf-nacl.lo elf-vxworks.lo elf-aros.lo $elf" ;;
157 arm_pe_be_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;
158 arm_pe_le_vec) tb="$tb pe-arm.lo peigen.lo $coff" ;;
159 arm_pe_wince_be_vec) tb="$tb pe-arm-wince.lo pe-arm.lo peigen.lo $coff" ;;
160 diff -ruN binutils-2.32-orig/bfd/elf-aros.c binutils-2.32/bfd/elf-aros.c
161 --- binutils-2.32-orig/bfd/elf-aros.c 1970-01-01 01:00:00.000000000 +0100
162 +++ binutils-2.32/bfd/elf-aros.c 2019-03-17 13:43:57.000000000 +0100
163 @@ -0,0 +1,90 @@
164 +/* AROS support for ELF
165 + Copyright (C) 2005-2019 Free Software Foundation, Inc.
167 + This file is part of BFD, the Binary File Descriptor library.
169 + This program is free software; you can redistribute it and/or modify
170 + it under the terms of the GNU General Public License as published by
171 + the Free Software Foundation; either version 3 of the License, or
172 + (at your option) any later version.
174 + This program is distributed in the hope that it will be useful,
175 + but WITHOUT ANY WARRANTY; without even the implied warranty of
176 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
177 + GNU General Public License for more details.
179 + You should have received a copy of the GNU General Public License
180 + along with this program. If not, see <http://www.gnu.org/licenses/>. */
182 +/* This file provides routines used by all AROS targets. */
184 +#include "sysdep.h"
185 +#include "bfd.h"
186 +#include "libbfd.h"
187 +#include "elf-bfd.h"
188 +#include "elf-aros.h"
190 +/* Copy relocations into the output file. Changes all relocations
191 + from symbol-relative to section-relative. In next step strip can
192 + then remove the symbols initially involved with relocations */
194 +bfd_boolean
195 +elf_aros_emit_relocs (bfd *output_bfd,
196 + asection *input_section,
197 + Elf_Internal_Shdr *input_rel_hdr,
198 + Elf_Internal_Rela *internal_relocs,
199 + struct elf_link_hash_entry **rel_hash)
201 + const struct elf_backend_data *bed;
202 + int j;
204 + bed = get_elf_backend_data (output_bfd);
206 + if (output_bfd->flags & (DYNAMIC|EXEC_P))
208 + Elf_Internal_Rela *irela;
209 + Elf_Internal_Rela *irelaend;
210 + struct elf_link_hash_entry **hash_ptr;
212 + for (irela = internal_relocs,
213 + irelaend = irela + (NUM_SHDR_ENTRIES (input_rel_hdr)
214 + * bed->s->int_rels_per_ext_rel),
215 + hash_ptr = rel_hash;
216 + irela < irelaend;
217 + irela += bed->s->int_rels_per_ext_rel,
218 + hash_ptr++)
220 + if (*hash_ptr
221 + && ((*hash_ptr)->root.type == bfd_link_hash_defined
222 + || (*hash_ptr)->root.type == bfd_link_hash_defweak
223 + || (*hash_ptr)->root.type == bfd_link_hash_common)
224 + && (*hash_ptr)->root.u.def.section->output_section != NULL)
226 + /* Remove relocation dependency on symbol. Use sections only */
227 + for (j = 0; j < bed->s->int_rels_per_ext_rel; j++)
229 + asection *sec = (*hash_ptr)->root.u.def.section;
230 + int this_idx = sec->output_section->target_index;
232 + irela[j].r_info
233 + = ELF32_R_INFO (this_idx, ELF32_R_TYPE (irela[j].r_info));
234 + irela[j].r_addend += (*hash_ptr)->root.u.def.value;
235 + irela[j].r_addend += sec->output_offset;
237 + /* Stop the generic routine adjusting this entry. */
238 + *hash_ptr = NULL;
242 + return _bfd_elf_link_output_relocs (output_bfd, input_section,
243 + input_rel_hdr, internal_relocs,
244 + rel_hash);
247 +bfd_boolean
248 +elf_aros_final_link(bfd *abfd, struct bfd_link_info *link_info)
250 + link_info->emitrelocations = 1;
251 + link_info->output_bfd->flags &= ~D_PAGED;
252 + return bfd_elf_final_link(abfd, link_info);
254 diff -ruN binutils-2.32-orig/bfd/elf-aros.h binutils-2.32/bfd/elf-aros.h
255 --- binutils-2.32-orig/bfd/elf-aros.h 1970-01-01 01:00:00.000000000 +0100
256 +++ binutils-2.32/bfd/elf-aros.h 2019-03-12 20:53:29.000000000 +0100
257 @@ -0,0 +1,27 @@
258 +/* AROS support for ELF
259 + Copyright (C) 2019 Free Software Foundation, Inc.
261 + This file is part of BFD, the Binary File Descriptor library.
263 + This program is free software; you can redistribute it and/or modify
264 + it under the terms of the GNU General Public License as published by
265 + the Free Software Foundation; either version 3 of the License, or
266 + (at your option) any later version.
268 + This program is distributed in the hope that it will be useful,
269 + but WITHOUT ANY WARRANTY; without even the implied warranty of
270 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
271 + GNU General Public License for more details.
273 + You should have received a copy of the GNU General Public License
274 + along with this program. If not, see <http://www.gnu.org/licenses/>. */
276 +#include "elf/common.h"
277 +#include "elf/internal.h"
279 +bfd_boolean elf_aros_emit_relocs
280 + (bfd *output_bfd, asection *input_section, Elf_Internal_Shdr *input_rel_hdr,
281 + Elf_Internal_Rela *internal_relocs, struct elf_link_hash_entry **rel_hash);
283 +bfd_boolean elf_aros_final_link
284 + (bfd *abfd, struct bfd_link_info *link_info);
285 diff -ruN binutils-2.32-orig/bfd/elf32-arm.c binutils-2.32/bfd/elf32-arm.c
286 --- binutils-2.32-orig/bfd/elf32-arm.c 2019-01-28 18:09:04.000000000 +0100
287 +++ binutils-2.32/bfd/elf32-arm.c 2019-03-17 13:40:14.000000000 +0100
288 @@ -27,6 +27,7 @@
289 #include "elf-bfd.h"
290 #include "elf-nacl.h"
291 #include "elf-vxworks.h"
292 +#include "elf-aros.h"
293 #include "elf/arm.h"
295 /* Return the relocation section associated with NAME. HTAB is the
296 @@ -20296,6 +20297,75 @@
298 #include "elf32-target.h"
300 +/* AROS target */
302 +#undef TARGET_LITTLE_SYM
303 +#define TARGET_LITTLE_SYM arm_elf32_aros_le_vec
304 +#undef TARGET_LITTLE_NAME
305 +#define TARGET_LITTLE_NAME "elf32-littlearm-aros"
306 +#undef TARGET_BIG_SYM
307 +#define TARGET_BIG_SYM arm_elf32_aros_be_vec
308 +#undef TARGET_BIG_NAME
309 +#define TARGET_BIG_NAME "elf32-bigarm-aros"
310 +#undef elf_match_priority
311 +#define elf_match_priority 128
312 +#undef ELF_OSABI
313 +#define ELF_OSABI ELFOSABI_AROS
315 +static void
316 +elf32_arm_aros_begin_write_processing (bfd *abfd,
317 + struct bfd_link_info *link_info)
319 + /* File does not need paged attribute, so no aligning required */
320 + abfd->flags &= ~D_PAGED;
321 + abfd->flags |= HAS_RELOC;
323 + elf32_arm_begin_write_processing (abfd, link_info);
326 +#undef elf32_bed
327 +#define elf32_bed elf32_arm_aros_bed
328 +#undef elf_backend_emit_relocs
329 +#define elf_backend_emit_relocs elf_aros_emit_relocs
331 +#undef ELF_MAXPAGESIZE
332 +#define ELF_MAXPAGESIZE 0x1000
333 +#undef ELF_MINPAGESIZE
334 +#define ELF_MINPAGESIZE 0x1000
335 +#undef ELF_COMMONPAGESIZE
336 +#define ELF_COMMONPAGESIZE 0x1000
338 +#undef elf_backend_may_use_rel_p
339 +#define elf_backend_may_use_rel_p 0
340 +#undef elf_backend_may_use_rela_p
341 +#define elf_backend_may_use_rela_p 1
342 +#undef elf_backend_default_use_rela_p
343 +#define elf_backend_default_use_rela_p 1
344 +#undef elf_backend_want_plt_sym
345 +#define elf_backend_want_plt_sym 0
347 +#undef elf_backend_begin_write_processing
348 +#define elf_backend_begin_write_processing elf32_arm_aros_begin_write_processing
349 +#undef bfd_elf32_bfd_final_link
350 +#define bfd_elf32_bfd_final_link elf_aros_final_link
353 +#include "elf32-target.h"
355 +/* Reset to defaults. */
356 +#undef ELF_OSABI
357 +#undef elf_match_priority
358 +#undef ELF_MINPAGESIZE
359 +#define ELF_MINPAGESIZE 0x1000
360 +#undef ELF_COMMONPAGESIZE
361 +#define ELF_COMMONPAGESIZE 0x1000
362 +#undef elf_backend_emit_relocs
363 +#define elf_backend_emit_relocs NULL
364 +#undef elf_backend_begin_write_processing
365 +#define elf_backend_begin_write_processing elf32_arm_begin_write_processing
366 +#undef bfd_elf32_bfd_final_link
367 +#define bfd_elf32_bfd_final_link bfd_elf_final_link
369 /* Native Client targets. */
371 #undef TARGET_LITTLE_SYM
372 @@ -20408,6 +20472,7 @@
373 #undef ELF_OSABI
374 #define ELF_OSABI ELFOSABI_ARM_FDPIC
377 /* Like elf32_arm_link_hash_table_create -- but overrides
378 appropriately for FDPIC. */
380 diff -ruN binutils-2.32-orig/bfd/po/SRC-POTFILES.in binutils-2.32/bfd/po/SRC-POTFILES.in
381 --- binutils-2.32-orig/bfd/po/SRC-POTFILES.in 2019-02-02 16:48:06.000000000 +0100
382 +++ binutils-2.32/bfd/po/SRC-POTFILES.in 2019-03-12 20:52:49.000000000 +0100
383 @@ -140,6 +140,7 @@
384 elf-properties.c
385 elf-strtab.c
386 elf-vxworks.c
387 +elf-aros.c
388 elf.c
389 elf32-am33lin.c
390 elf32-arc.c
391 diff -ruN binutils-2.32-orig/bfd/targets.c binutils-2.32/bfd/targets.c
392 --- binutils-2.32-orig/bfd/targets.c 2019-01-19 17:01:33.000000000 +0100
393 +++ binutils-2.32/bfd/targets.c 2019-03-09 20:44:29.000000000 +0100
394 @@ -604,6 +604,8 @@
395 extern const bfd_target arc_elf32_le_vec;
396 extern const bfd_target arm_elf32_be_vec;
397 extern const bfd_target arm_elf32_le_vec;
398 +extern const bfd_target arm_elf32_aros_be_vec;
399 +extern const bfd_target arm_elf32_aros_le_vec;
400 extern const bfd_target arm_elf32_fdpic_be_vec;
401 extern const bfd_target arm_elf32_fdpic_le_vec;
402 extern const bfd_target arm_elf32_nacl_be_vec;
403 diff -ruN binutils-2.32-orig/binutils/configure binutils-2.32/binutils/configure
404 --- binutils-2.32-orig/binutils/configure 2019-02-02 16:54:08.000000000 +0100
405 +++ binutils-2.32/binutils/configure 2019-01-19 17:10:54.000000000 +0100
406 @@ -13774,7 +13774,9 @@
407 $as_echo_n "checking for mbstate_t... " >&6; }
408 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
409 /* end confdefs.h. */
410 +#if !defined(__AROS__)
411 #include <wchar.h>
412 +#endif
414 main ()
416 diff -ruN binutils-2.32-orig/binutils/sysdep.h binutils-2.32/binutils/sysdep.h
417 --- binutils-2.32-orig/binutils/sysdep.h 2019-01-19 17:01:33.000000000 +0100
418 +++ binutils-2.32/binutils/sysdep.h 2019-01-19 17:10:54.000000000 +0100
419 @@ -24,6 +24,7 @@
420 #include "ansidecl.h"
421 #include <stdio.h>
422 #include <sys/types.h>
423 +#include <sys/stat.h>
425 #include "bfdver.h"
427 diff -ruN binutils-2.32-orig/config.guess binutils-2.32/config.guess
428 --- binutils-2.32-orig/config.guess 2019-01-19 17:01:33.000000000 +0100
429 +++ binutils-2.32/config.guess 2019-01-19 17:10:54.000000000 +0100
430 @@ -342,6 +342,9 @@
431 *:[Mm]orph[Oo][Ss]:*:*)
432 echo "$UNAME_MACHINE"-unknown-morphos
433 exit ;;
434 + *:AROS:*:*)
435 + echo ${UNAME_MACHINE}-unknown-aros
436 + exit ;;
437 *:OS/390:*:*)
438 echo i370-ibm-openedition
439 exit ;;
440 diff -ruN binutils-2.32-orig/intl/configure binutils-2.32/intl/configure
441 --- binutils-2.32-orig/intl/configure 2019-01-19 17:01:33.000000000 +0100
442 +++ binutils-2.32/intl/configure 2019-01-19 17:10:54.000000000 +0100
443 @@ -4748,6 +4748,9 @@
445 int main ()
447 +#if defined(__AROS__)
448 + exit (1);
449 +#endif
450 signal (SIGFPE, sigfpe_handler);
451 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
452 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
453 diff -ruN binutils-2.32-orig/ld/Makefile.in binutils-2.32/ld/Makefile.in
454 --- binutils-2.32-orig/ld/Makefile.in 2019-02-02 16:54:43.000000000 +0100
455 +++ binutils-2.32/ld/Makefile.in 2019-01-19 17:10:54.000000000 +0100
456 @@ -654,6 +654,7 @@
457 earclinux_prof.c \
458 earm_wince_pe.c \
459 earmelf.c \
460 + earmelf_aros.c \
461 earmelf_fbsd.c \
462 earmelf_fuchsia.c \
463 earmelf_linux.c \
464 @@ -664,6 +665,7 @@
465 earmelf_phoenix.c \
466 earmelf_vxworks.c \
467 earmelfb.c \
468 + earmelfb_aros.c \
469 earmelfb_fbsd.c \
470 earmelfb_fuchsia.c \
471 earmelfb_linux.c \
472 @@ -875,6 +877,8 @@
473 eaarch64elf32.c \
474 eaarch64elfb.c \
475 eaarch64elf32b.c \
476 + eaarch64elf_aros.c \
477 + eaarch64elfb_aros.c \
478 eaarch64cloudabi.c \
479 eaarch64cloudabib.c \
480 eaarch64fbsd.c \
481 @@ -1197,6 +1201,8 @@
482 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote@
483 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
484 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
485 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf_aros.Po@am__quote@
486 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb_aros.Po@am__quote@
487 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
488 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote@
489 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
490 @@ -1218,6 +1224,7 @@
491 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elfx.Po@am__quote@
492 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Po@am__quote@
493 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
494 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_aros.Po@am__quote@
495 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
496 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
497 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
498 @@ -1228,6 +1235,7 @@
499 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_phoenix.Po@am__quote@
500 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
501 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
502 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_aros.Po@am__quote@
503 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
504 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fuchsia.Po@am__quote@
505 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
506 @@ -2321,6 +2329,12 @@
507 $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
508 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
510 +earmelf_aros.c: $(srcdir)/emulparams/armelf_aros.sh \
511 + $(srcdir)/emulparams/armelf_linux_eabi.sh \
512 + $(srcdir)/emulparams/armelf_linux.sh \
513 + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
514 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
516 earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
517 $(srcdir)/emulparams/armelf_linux_eabi.sh \
518 $(srcdir)/emulparams/armelf_linux.sh \
519 @@ -2375,6 +2389,13 @@
520 $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
521 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
523 +earmelfb_aros.c: $(srcdir)/emulparams/armelfb_aros.sh \
524 + $(srcdir)/emulparams/armelf_aros.sh \
525 + $(srcdir)/emulparams/armelf_linux_eabi.sh \
526 + $(srcdir)/emulparams/armelf_linux.sh \
527 + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
528 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
530 earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
531 $(srcdir)/emulparams/armelf_nacl.sh \
532 $(srcdir)/emulparams/armelf_linux_eabi.sh \
533 @@ -3144,6 +3165,14 @@
534 $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
535 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
537 +eaarch64elf_aros.c: $(srcdir)/emulparams/aarch64elf_aros.sh \
538 + $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
539 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
541 +eaarch64elfb_aros.c: $(srcdir)/emulparams/aarch64elfb_aros.sh $(srcdir)/emulparams/aarch64elf_aros.sh \
542 + $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
543 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
545 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
546 $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
547 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
548 diff -ruN binutils-2.32-orig/ld/configure.tgt binutils-2.32/ld/configure.tgt
549 --- binutils-2.32-orig/ld/configure.tgt 2019-01-19 17:01:33.000000000 +0100
550 +++ binutils-2.32/ld/configure.tgt 2019-01-19 17:10:54.000000000 +0100
551 @@ -45,6 +45,10 @@
552 # architecture variants should be kept together even if their names
553 # break the alpha sorting.
554 case "${targ}" in
555 +aarch64-*-aros*) targ_emul=aarch64elf_aros
556 + targ_extra_emuls=aarch64elfb_aros
557 + targ_extra_libpath=$targ_extra_emuls
558 + ;;
559 aarch64_be-*-elf) targ_emul=aarch64elfb
560 targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
561 aarch64-*-elf | aarch64-*-rtems*)
562 @@ -128,6 +132,10 @@
563 targ_extra_emuls="armelfb armelf armelf_linux"
564 targ_extra_libpath="armelf_linux"
566 +arm*-*-aros*) targ_emul=armelf_aros
567 + targ_extra_emuls=armelfb_aros
568 + targ_extra_libpath=$targ_extra_emuls
569 + ;;
570 arm*-*-linux-*eabi*) targ_emul=armelf_linux_eabi
571 targ_extra_emuls="armelfb_linux_eabi"
572 targ_extra_libpath=$targ_extra_emuls
573 @@ -315,6 +323,9 @@
574 targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
575 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
577 +x86_64-*-aros*) targ_emul=elf_x86_64
578 + targ_extra_emuls=elf_i386
579 + ;;
580 i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
581 i[3-7]86-*-dragonfly*) targ_emul=elf_i386
582 targ_extra_emuls="elf_iamcu i386bsd" ;;
583 @@ -632,6 +643,7 @@
584 powerpc-*-beos*) targ_emul=aixppc ;;
585 powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
586 powerpc-*-lynxos*) targ_emul=ppclynx ;;
587 +powerpc-*-aros*) targ_emul=elf32ppc ;;
588 pru*-*-*) targ_emul=pruelf ;;
589 riscv32*-*-linux*) targ_emul=elf32lriscv
590 targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
591 diff -ruN binutils-2.32-orig/ld/emulparams/aarch64elf_aros.sh binutils-2.32/ld/emulparams/aarch64elf_aros.sh
592 --- binutils-2.32-orig/ld/emulparams/aarch64elf_aros.sh 1970-01-01 01:00:00.000000000 +0100
593 +++ binutils-2.32/ld/emulparams/aarch64elf_aros.sh 2019-01-19 17:10:54.000000000 +0100
594 @@ -0,0 +1 @@
595 +. ${srcdir}/emulparams/aarch64elf.sh
596 diff -ruN binutils-2.32-orig/ld/emulparams/aarch64elfb_aros.sh binutils-2.32/ld/emulparams/aarch64elfb_aros.sh
597 --- binutils-2.32-orig/ld/emulparams/aarch64elfb_aros.sh 1970-01-01 01:00:00.000000000 +0100
598 +++ binutils-2.32/ld/emulparams/aarch64elfb_aros.sh 2019-01-19 17:10:54.000000000 +0100
599 @@ -0,0 +1 @@
600 +. ${srcdir}/emulparams/aarch64elfb.sh
601 diff -ruN binutils-2.32-orig/ld/emulparams/armelf_aros.sh binutils-2.32/ld/emulparams/armelf_aros.sh
602 --- binutils-2.32-orig/ld/emulparams/armelf_aros.sh 1970-01-01 01:00:00.000000000 +0100
603 +++ binutils-2.32/ld/emulparams/armelf_aros.sh 2019-03-12 16:46:27.000000000 +0100
604 @@ -0,0 +1,7 @@
605 +. ${srcdir}/emulparams/armelf_linux_eabi.sh
606 +OUTPUT_FORMAT="elf32-littlearm-aros"
607 +BIG_OUTPUT_FORMAT="elf32-bigarm-aros"
608 +LITTLE_OUTPUT_FORMAT="elf32-littlearm-aros"
610 +TEXT_START_ADDR=0x80000000
611 +SEPARATE_CODE=yes
612 diff -ruN binutils-2.32-orig/ld/emulparams/armelfb_aros.sh binutils-2.32/ld/emulparams/armelfb_aros.sh
613 --- binutils-2.32-orig/ld/emulparams/armelfb_aros.sh 1970-01-01 01:00:00.000000000 +0100
614 +++ binutils-2.32/ld/emulparams/armelfb_aros.sh 2019-03-09 21:37:00.000000000 +0100
615 @@ -0,0 +1,4 @@
616 +. ${srcdir}/emulparams/armelf_aros.sh
617 +OUTPUT_FORMAT="elf32-bigarm-aros"
618 +BIG_OUTPUT_FORMAT="elf32-bigarm-aros"
619 +LITTLE_OUTPUT_FORMAT="elf32-littlearm-aros"