WIP: add an initial skeleton for a real scsi.device based upon the ata device impleme...
[AROS.git] / tools / crosstools / gnu / binutils-2.32-aros.diff
blob8cb5b65b68d43efb44b6334e83cf273df3f90727
1 diff -ruN binutils-2.32/bfd/Makefile.in binutils-2.32-aros/bfd/Makefile.in
2 --- binutils-2.32/bfd/Makefile.in 2019-02-02 16:47:56.000000000 +0100
3 +++ binutils-2.32-aros/bfd/Makefile.in 2019-01-19 17:10:54.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/bfd/config.bfd binutils-2.32-aros/bfd/config.bfd
29 --- binutils-2.32/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100
30 +++ binutils-2.32-aros/bfd/config.bfd 2019-01-19 17:10:54.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/bfd/configure binutils-2.32-aros/bfd/configure
97 --- binutils-2.32/bfd/configure 2019-02-02 16:47:56.000000000 +0100
98 +++ binutils-2.32-aros/bfd/configure 2019-01-19 17:10:54.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/bfd/configure.ac binutils-2.32-aros/bfd/configure.ac
129 --- binutils-2.32/bfd/configure.ac 2019-01-19 17:01:32.000000000 +0100
130 +++ binutils-2.32-aros/bfd/configure.ac 2019-01-19 17:10:54.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/bfd/elf-aros.c binutils-2.32-aros/bfd/elf-aros.c
161 --- binutils-2.32/bfd/elf-aros.c 1970-01-01 01:00:00.000000000 +0100
162 +++ binutils-2.32-aros/bfd/elf-aros.c 2019-01-19 17:10:54.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/bfd/elf-aros.h binutils-2.32-aros/bfd/elf-aros.h
255 --- binutils-2.32/bfd/elf-aros.h 1970-01-01 01:00:00.000000000 +0100
256 +++ binutils-2.32-aros/bfd/elf-aros.h 2019-01-19 17:10:54.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/bfd/elf32-arm.c binutils-2.32-aros/bfd/elf32-arm.c
286 --- binutils-2.32/bfd/elf32-arm.c 2019-01-28 18:09:04.000000000 +0100
287 +++ binutils-2.32-aros/bfd/elf32-arm.c 2019-04-14 07:59:15.000000000 +0200
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,77 @@
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_rela_normal
345 +#define elf_backend_rela_normal 1
346 +#undef elf_backend_want_plt_sym
347 +#define elf_backend_want_plt_sym 0
349 +#undef elf_backend_begin_write_processing
350 +#define elf_backend_begin_write_processing elf32_arm_aros_begin_write_processing
351 +#undef bfd_elf32_bfd_final_link
352 +#define bfd_elf32_bfd_final_link elf_aros_final_link
355 +#include "elf32-target.h"
357 +/* Reset to defaults. */
358 +#undef ELF_OSABI
359 +#undef elf_match_priority
360 +#undef ELF_MINPAGESIZE
361 +#define ELF_MINPAGESIZE 0x1000
362 +#undef ELF_COMMONPAGESIZE
363 +#define ELF_COMMONPAGESIZE 0x1000
364 +#undef elf_backend_emit_relocs
365 +#define elf_backend_emit_relocs NULL
366 +#undef elf_backend_begin_write_processing
367 +#define elf_backend_begin_write_processing elf32_arm_begin_write_processing
368 +#undef bfd_elf32_bfd_final_link
369 +#define bfd_elf32_bfd_final_link bfd_elf_final_link
371 /* Native Client targets. */
373 #undef TARGET_LITTLE_SYM
374 @@ -20408,6 +20480,7 @@
375 #undef ELF_OSABI
376 #define ELF_OSABI ELFOSABI_ARM_FDPIC
379 /* Like elf32_arm_link_hash_table_create -- but overrides
380 appropriately for FDPIC. */
382 diff -ruN binutils-2.32/bfd/po/SRC-POTFILES.in binutils-2.32-aros/bfd/po/SRC-POTFILES.in
383 --- binutils-2.32/bfd/po/SRC-POTFILES.in 2019-02-02 16:48:06.000000000 +0100
384 +++ binutils-2.32-aros/bfd/po/SRC-POTFILES.in 2019-01-19 17:10:54.000000000 +0100
385 @@ -140,6 +140,7 @@
386 elf-properties.c
387 elf-strtab.c
388 elf-vxworks.c
389 +elf-aros.c
390 elf.c
391 elf32-am33lin.c
392 elf32-arc.c
393 diff -ruN binutils-2.32/bfd/targets.c binutils-2.32-aros/bfd/targets.c
394 --- binutils-2.32/bfd/targets.c 2019-01-19 17:01:33.000000000 +0100
395 +++ binutils-2.32-aros/bfd/targets.c 2019-01-19 17:10:54.000000000 +0100
396 @@ -604,6 +604,8 @@
397 extern const bfd_target arc_elf32_le_vec;
398 extern const bfd_target arm_elf32_be_vec;
399 extern const bfd_target arm_elf32_le_vec;
400 +extern const bfd_target arm_elf32_aros_be_vec;
401 +extern const bfd_target arm_elf32_aros_le_vec;
402 extern const bfd_target arm_elf32_fdpic_be_vec;
403 extern const bfd_target arm_elf32_fdpic_le_vec;
404 extern const bfd_target arm_elf32_nacl_be_vec;
405 diff -ruN binutils-2.32/binutils/configure binutils-2.32-aros/binutils/configure
406 --- binutils-2.32/binutils/configure 2019-02-02 16:54:08.000000000 +0100
407 +++ binutils-2.32-aros/binutils/configure 2019-01-19 17:10:54.000000000 +0100
408 @@ -13774,7 +13774,9 @@
409 $as_echo_n "checking for mbstate_t... " >&6; }
410 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
411 /* end confdefs.h. */
412 +#if !defined(__AROS__)
413 #include <wchar.h>
414 +#endif
416 main ()
418 diff -ruN binutils-2.32/binutils/sysdep.h binutils-2.32-aros/binutils/sysdep.h
419 --- binutils-2.32/binutils/sysdep.h 2019-01-19 17:01:33.000000000 +0100
420 +++ binutils-2.32-aros/binutils/sysdep.h 2019-01-19 17:10:54.000000000 +0100
421 @@ -24,6 +24,7 @@
422 #include "ansidecl.h"
423 #include <stdio.h>
424 #include <sys/types.h>
425 +#include <sys/stat.h>
427 #include "bfdver.h"
429 diff -ruN binutils-2.32/config.guess binutils-2.32-aros/config.guess
430 --- binutils-2.32/config.guess 2019-01-19 17:01:33.000000000 +0100
431 +++ binutils-2.32-aros/config.guess 2019-01-19 17:10:54.000000000 +0100
432 @@ -342,6 +342,9 @@
433 *:[Mm]orph[Oo][Ss]:*:*)
434 echo "$UNAME_MACHINE"-unknown-morphos
435 exit ;;
436 + *:AROS:*:*)
437 + echo ${UNAME_MACHINE}-unknown-aros
438 + exit ;;
439 *:OS/390:*:*)
440 echo i370-ibm-openedition
441 exit ;;
442 diff -ruN binutils-2.32/gas/Makefile.am binutils-2.32-aros/gas/Makefile.am
443 --- binutils-2.32/gas/Makefile.am 2019-01-19 17:01:33.000000000 +0100
444 +++ binutils-2.32-aros/gas/Makefile.am 2019-04-14 08:31:52.000000000 +0200
445 @@ -303,6 +303,7 @@
446 # Emulation header files in config
448 TARG_ENV_HFILES = \
449 + config/te-aros.h \
450 config/te-386bsd.h \
451 config/te-aix5.h \
452 config/te-armeabi.h \
453 diff -ruN binutils-2.32/gas/Makefile.in binutils-2.32-aros/gas/Makefile.in
454 --- binutils-2.32/gas/Makefile.in 2019-02-02 16:50:20.000000000 +0100
455 +++ binutils-2.32-aros/gas/Makefile.in 2019-04-14 08:32:11.000000000 +0200
456 @@ -692,6 +692,7 @@
458 # Emulation header files in config
459 TARG_ENV_HFILES = \
460 + config/te-aros.h \
461 config/te-386bsd.h \
462 config/te-aix5.h \
463 config/te-armeabi.h \
464 diff -ruN binutils-2.32/gas/config/tc-arm.c binutils-2.32-aros/gas/config/tc-arm.c
465 --- binutils-2.32/gas/config/tc-arm.c 2019-02-01 12:19:06.000000000 +0100
466 +++ binutils-2.32-aros/gas/config/tc-arm.c 2019-04-14 08:36:10.000000000 +0200
467 @@ -25177,6 +25177,10 @@
468 return (target_big_endian
469 ? "elf32-bigarm-nacl"
470 : "elf32-littlearm-nacl");
471 +#elif defined (TE_AROS)
472 + return (target_big_endian
473 + ? "elf32-bigarm-aros"
474 + : "elf32-littlearm-aros");
475 #else
476 if (arm_fdpic)
478 diff -ruN binutils-2.32/gas/config/te-aros.h binutils-2.32-aros/gas/config/te-aros.h
479 --- binutils-2.32/gas/config/te-aros.h 1970-01-01 01:00:00.000000000 +0100
480 +++ binutils-2.32-aros/gas/config/te-aros.h 2019-04-14 08:33:55.000000000 +0200
481 @@ -0,0 +1,22 @@
482 +/* Copyright (C) 2004-2019 Free Software Foundation, Inc.
484 + This file is part of GAS, the GNU Assembler.
486 + GAS is free software; you can redistribute it and/or modify
487 + it under the terms of the GNU General Public License as
488 + published by the Free Software Foundation; either version 3,
489 + or (at your option) any later version.
491 + GAS is distributed in the hope that it will be useful, but
492 + WITHOUT ANY WARRANTY; without even the implied warranty of
493 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
494 + the GNU General Public License for more details.
496 + You should have received a copy of the GNU General Public License
497 + along with GAS; see the file COPYING. If not, write to the Free
498 + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
499 + 02110-1301, USA. */
501 +#define TE_AROS 1
503 +#include "te-armeabi.h"
504 diff -ruN binutils-2.32/gas/configure.tgt binutils-2.32-aros/gas/configure.tgt
505 --- binutils-2.32/gas/configure.tgt 2019-01-19 17:01:33.000000000 +0100
506 +++ binutils-2.32-aros/gas/configure.tgt 2019-04-14 08:31:27.000000000 +0200
507 @@ -137,6 +137,7 @@
508 arc-*-elf*) fmt=elf ;;
509 arc*-*-linux*) fmt=elf bfd_gas=yes ;;
511 + arm*-*-aros*) fmt=elf em=aros ;;
512 arm-*-phoenix*) fmt=elf ;;
513 arm-*-elf) fmt=elf ;;
514 arm-*-eabi* | arm-*-rtems*) fmt=elf em=armeabi ;;
515 diff -ruN binutils-2.32/gas/po/POTFILES.in binutils-2.32-aros/gas/po/POTFILES.in
516 --- binutils-2.32/gas/po/POTFILES.in 2019-02-02 16:50:28.000000000 +0100
517 +++ binutils-2.32-aros/gas/po/POTFILES.in 2019-04-14 08:32:41.000000000 +0200
518 @@ -180,6 +180,7 @@
519 config/tc-z8k.c
520 config/tc-z8k.h
521 config/te-386bsd.h
522 +config/te-aros.h
523 config/te-aix5.h
524 config/te-armeabi.h
525 config/te-armfbsdeabi.h
526 diff -ruN binutils-2.32/intl/configure binutils-2.32-aros/intl/configure
527 --- binutils-2.32/intl/configure 2019-01-19 17:01:33.000000000 +0100
528 +++ binutils-2.32-aros/intl/configure 2019-01-19 17:10:54.000000000 +0100
529 @@ -4748,6 +4748,9 @@
531 int main ()
533 +#if defined(__AROS__)
534 + exit (1);
535 +#endif
536 signal (SIGFPE, sigfpe_handler);
537 /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
538 #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
539 diff -ruN binutils-2.32/ld/Makefile.in binutils-2.32-aros/ld/Makefile.in
540 --- binutils-2.32/ld/Makefile.in 2019-02-02 16:54:43.000000000 +0100
541 +++ binutils-2.32-aros/ld/Makefile.in 2019-01-19 17:10:54.000000000 +0100
542 @@ -654,6 +654,7 @@
543 earclinux_prof.c \
544 earm_wince_pe.c \
545 earmelf.c \
546 + earmelf_aros.c \
547 earmelf_fbsd.c \
548 earmelf_fuchsia.c \
549 earmelf_linux.c \
550 @@ -664,6 +665,7 @@
551 earmelf_phoenix.c \
552 earmelf_vxworks.c \
553 earmelfb.c \
554 + earmelfb_aros.c \
555 earmelfb_fbsd.c \
556 earmelfb_fuchsia.c \
557 earmelfb_linux.c \
558 @@ -875,6 +877,8 @@
559 eaarch64elf32.c \
560 eaarch64elfb.c \
561 eaarch64elf32b.c \
562 + eaarch64elf_aros.c \
563 + eaarch64elfb_aros.c \
564 eaarch64cloudabi.c \
565 eaarch64cloudabib.c \
566 eaarch64fbsd.c \
567 @@ -1197,6 +1201,8 @@
568 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote@
569 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
570 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
571 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf_aros.Po@am__quote@
572 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb_aros.Po@am__quote@
573 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
574 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote@
575 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
576 @@ -1218,6 +1224,7 @@
577 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earcv2elfx.Po@am__quote@
578 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Po@am__quote@
579 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
580 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_aros.Po@am__quote@
581 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
582 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
583 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
584 @@ -1228,6 +1235,7 @@
585 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_phoenix.Po@am__quote@
586 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
587 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
588 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_aros.Po@am__quote@
589 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
590 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fuchsia.Po@am__quote@
591 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
592 @@ -2321,6 +2329,12 @@
593 $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
594 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
596 +earmelf_aros.c: $(srcdir)/emulparams/armelf_aros.sh \
597 + $(srcdir)/emulparams/armelf_linux_eabi.sh \
598 + $(srcdir)/emulparams/armelf_linux.sh \
599 + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
600 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
602 earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
603 $(srcdir)/emulparams/armelf_linux_eabi.sh \
604 $(srcdir)/emulparams/armelf_linux.sh \
605 @@ -2375,6 +2389,13 @@
606 $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
607 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
609 +earmelfb_aros.c: $(srcdir)/emulparams/armelfb_aros.sh \
610 + $(srcdir)/emulparams/armelf_aros.sh \
611 + $(srcdir)/emulparams/armelf_linux_eabi.sh \
612 + $(srcdir)/emulparams/armelf_linux.sh \
613 + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
614 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
616 earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
617 $(srcdir)/emulparams/armelf_nacl.sh \
618 $(srcdir)/emulparams/armelf_linux_eabi.sh \
619 @@ -3144,6 +3165,14 @@
620 $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
621 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
623 +eaarch64elf_aros.c: $(srcdir)/emulparams/aarch64elf_aros.sh \
624 + $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
625 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
627 +eaarch64elfb_aros.c: $(srcdir)/emulparams/aarch64elfb_aros.sh $(srcdir)/emulparams/aarch64elf_aros.sh \
628 + $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
629 + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
631 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
632 $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
633 $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
634 diff -ruN binutils-2.32/ld/configure.tgt binutils-2.32-aros/ld/configure.tgt
635 --- binutils-2.32/ld/configure.tgt 2019-01-19 17:01:33.000000000 +0100
636 +++ binutils-2.32-aros/ld/configure.tgt 2019-01-19 17:10:54.000000000 +0100
637 @@ -45,6 +45,10 @@
638 # architecture variants should be kept together even if their names
639 # break the alpha sorting.
640 case "${targ}" in
641 +aarch64-*-aros*) targ_emul=aarch64elf_aros
642 + targ_extra_emuls=aarch64elfb_aros
643 + targ_extra_libpath=$targ_extra_emuls
644 + ;;
645 aarch64_be-*-elf) targ_emul=aarch64elfb
646 targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
647 aarch64-*-elf | aarch64-*-rtems*)
648 @@ -128,6 +132,10 @@
649 targ_extra_emuls="armelfb armelf armelf_linux"
650 targ_extra_libpath="armelf_linux"
652 +arm*-*-aros*) targ_emul=armelf_aros
653 + targ_extra_emuls=armelfb_aros
654 + targ_extra_libpath=$targ_extra_emuls
655 + ;;
656 arm*-*-linux-*eabi*) targ_emul=armelf_linux_eabi
657 targ_extra_emuls="armelfb_linux_eabi"
658 targ_extra_libpath=$targ_extra_emuls
659 @@ -315,6 +323,9 @@
660 targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
661 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
663 +x86_64-*-aros*) targ_emul=elf_x86_64
664 + targ_extra_emuls=elf_i386
665 + ;;
666 i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
667 i[3-7]86-*-dragonfly*) targ_emul=elf_i386
668 targ_extra_emuls="elf_iamcu i386bsd" ;;
669 @@ -632,6 +643,7 @@
670 powerpc-*-beos*) targ_emul=aixppc ;;
671 powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
672 powerpc-*-lynxos*) targ_emul=ppclynx ;;
673 +powerpc-*-aros*) targ_emul=elf32ppc ;;
674 pru*-*-*) targ_emul=pruelf ;;
675 riscv32*-*-linux*) targ_emul=elf32lriscv
676 targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
677 diff -ruN binutils-2.32/ld/emulparams/aarch64elf_aros.sh binutils-2.32-aros/ld/emulparams/aarch64elf_aros.sh
678 --- binutils-2.32/ld/emulparams/aarch64elf_aros.sh 1970-01-01 01:00:00.000000000 +0100
679 +++ binutils-2.32-aros/ld/emulparams/aarch64elf_aros.sh 2019-01-19 17:10:54.000000000 +0100
680 @@ -0,0 +1 @@
681 +. ${srcdir}/emulparams/aarch64elf.sh
682 diff -ruN binutils-2.32/ld/emulparams/aarch64elfb_aros.sh binutils-2.32-aros/ld/emulparams/aarch64elfb_aros.sh
683 --- binutils-2.32/ld/emulparams/aarch64elfb_aros.sh 1970-01-01 01:00:00.000000000 +0100
684 +++ binutils-2.32-aros/ld/emulparams/aarch64elfb_aros.sh 2019-01-19 17:10:54.000000000 +0100
685 @@ -0,0 +1 @@
686 +. ${srcdir}/emulparams/aarch64elfb.sh
687 diff -ruN binutils-2.32/ld/emulparams/armelf_aros.sh binutils-2.32-aros/ld/emulparams/armelf_aros.sh
688 --- binutils-2.32/ld/emulparams/armelf_aros.sh 1970-01-01 01:00:00.000000000 +0100
689 +++ binutils-2.32-aros/ld/emulparams/armelf_aros.sh 2019-01-19 17:10:54.000000000 +0100
690 @@ -0,0 +1,7 @@
691 +. ${srcdir}/emulparams/armelf_linux_eabi.sh
692 +OUTPUT_FORMAT="elf32-littlearm-aros"
693 +BIG_OUTPUT_FORMAT="elf32-bigarm-aros"
694 +LITTLE_OUTPUT_FORMAT="elf32-littlearm-aros"
696 +TEXT_START_ADDR=0x80000000
697 +SEPARATE_CODE=yes
698 diff -ruN binutils-2.32/ld/emulparams/armelfb_aros.sh binutils-2.32-aros/ld/emulparams/armelfb_aros.sh
699 --- binutils-2.32/ld/emulparams/armelfb_aros.sh 1970-01-01 01:00:00.000000000 +0100
700 +++ binutils-2.32-aros/ld/emulparams/armelfb_aros.sh 2019-01-19 17:10:54.000000000 +0100
701 @@ -0,0 +1,4 @@
702 +. ${srcdir}/emulparams/armelf_aros.sh
703 +OUTPUT_FORMAT="elf32-bigarm-aros"
704 +BIG_OUTPUT_FORMAT="elf32-bigarm-aros"
705 +LITTLE_OUTPUT_FORMAT="elf32-littlearm-aros"