diff options
-rw-r--r-- | bfd/ChangeLog | 13 | ||||
-rw-r--r-- | bfd/bfd-in.h | 140 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 140 | ||||
-rw-r--r-- | bfd/coff-arm.c | 2 | ||||
-rw-r--r-- | bfd/coff-arm.h | 29 | ||||
-rw-r--r-- | bfd/cpu-arm.c | 1 | ||||
-rw-r--r-- | bfd/cpu-arm.h | 39 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 2 | ||||
-rw-r--r-- | bfd/elf32-arm.h | 121 | ||||
-rw-r--r-- | bfd/pe-arm-wince.c | 17 | ||||
-rw-r--r-- | bfd/pe-arm.c | 21 | ||||
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 1 | ||||
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/armelf.em | 1 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 23 |
16 files changed, 246 insertions, 313 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 06b09a1..c1f82cd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,18 @@ 2019-09-23 Alan Modra <amodra@gmail.com> + * bfd-in.h: Move arm declaraions.. + * cpu-arm.h: ..to here, new file.. + * coff-arm.h: ..and here, new file.. + * elf32-arm.h: ..and here, new file. + * cpu-arm.c: Include cpu-arm.h. + * coff-arm.c: Include cpu-arm.h and coff-arm.h. + * elf32-arm.c: Include cpu-arm.h and elf32-arm.h. + * pe-arm.c: Move function rename defines later. + * pe-arm-wince.c: Likewise and include sysdep.h and bfd.h early. + * bfd-in2.h: Regenerate. + +2019-09-23 Alan Modra <amodra@gmail.com> + * bfd-in.h: Move tic6x function declaration.. * elf32-tic6x.h: ..to here. * bfd-in2.h: Regenerate. diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index c923e54..124a0c2 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -763,143 +763,3 @@ union internal_auxent; extern bfd_boolean bfd_coff_set_symbol_class (bfd *, struct bfd_symbol *, unsigned int); - -/* ARM VFP11 erratum workaround support. */ -typedef enum -{ - BFD_ARM_VFP11_FIX_DEFAULT, - BFD_ARM_VFP11_FIX_NONE, - BFD_ARM_VFP11_FIX_SCALAR, - BFD_ARM_VFP11_FIX_VECTOR -} bfd_arm_vfp11_fix; - -extern void bfd_elf32_arm_init_maps - (bfd *); - -extern void bfd_elf32_arm_set_vfp11_fix - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_set_cortex_a8_fix - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_vfp11_fix_veneer_locations - (bfd *, struct bfd_link_info *); - -/* ARM STM STM32L4XX erratum workaround support. */ -typedef enum -{ - BFD_ARM_STM32L4XX_FIX_NONE, - BFD_ARM_STM32L4XX_FIX_DEFAULT, - BFD_ARM_STM32L4XX_FIX_ALL -} bfd_arm_stm32l4xx_fix; - -extern void bfd_elf32_arm_set_stm32l4xx_fix - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations - (bfd *, struct bfd_link_info *); - -/* ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_arm_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_arm_process_before_allocation - (bfd *, struct bfd_link_info *, int); - -extern bfd_boolean bfd_arm_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -/* PE ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_arm_pe_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_arm_pe_process_before_allocation - (bfd *, struct bfd_link_info *, int); - -extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -/* ELF ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_process_before_allocation - (bfd *, struct bfd_link_info *); - -struct elf32_arm_params { - char *thumb_entry_symbol; - int byteswap_code; - int target1_is_rel; - char * target2_type; - int fix_v4bx; - int use_blx; - bfd_arm_vfp11_fix vfp11_denorm_fix; - bfd_arm_stm32l4xx_fix stm32l4xx_fix; - int no_enum_size_warning; - int no_wchar_size_warning; - int pic_veneer; - int fix_cortex_a8; - int fix_arm1176; - int merge_exidx_entries; - int cmse_implib; - bfd *in_implib_bfd; -}; - -void bfd_elf32_arm_set_target_params - (bfd *, struct bfd_link_info *, struct elf32_arm_params *); - -extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_keep_private_stub_output_sections - (struct bfd_link_info *); - -/* ELF ARM mapping symbol support. */ -#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0) -#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1) -#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2) -#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0) - -extern bfd_boolean bfd_is_arm_special_symbol_name - (const char *, int); - -extern void bfd_elf32_arm_set_byteswap_code - (struct bfd_link_info *, int); - -extern void bfd_elf32_arm_use_long_plt (void); - -/* ARM Note section processing. */ -extern bfd_boolean bfd_arm_merge_machines - (bfd *, bfd *); - -extern bfd_boolean bfd_arm_update_notes - (bfd *, const char *); - -extern unsigned int bfd_arm_get_mach_from_notes - (bfd *, const char *); - -/* ARM stub generation support. Called from the linker. */ -extern int elf32_arm_setup_section_lists - (bfd *, struct bfd_link_info *); -extern void elf32_arm_next_input_section - (struct bfd_link_info *, struct bfd_section *); -extern bfd_boolean elf32_arm_size_stubs - (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, - struct bfd_section * (*) (const char *, struct bfd_section *, - struct bfd_section *, unsigned int), - void (*) (void)); -extern bfd_boolean elf32_arm_build_stubs - (struct bfd_link_info *); - -/* ARM unwind section editing support. */ -extern bfd_boolean elf32_arm_fix_exidx_coverage -(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean); diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 74aaf3c..052a826 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -770,146 +770,6 @@ union internal_auxent; extern bfd_boolean bfd_coff_set_symbol_class (bfd *, struct bfd_symbol *, unsigned int); - -/* ARM VFP11 erratum workaround support. */ -typedef enum -{ - BFD_ARM_VFP11_FIX_DEFAULT, - BFD_ARM_VFP11_FIX_NONE, - BFD_ARM_VFP11_FIX_SCALAR, - BFD_ARM_VFP11_FIX_VECTOR -} bfd_arm_vfp11_fix; - -extern void bfd_elf32_arm_init_maps - (bfd *); - -extern void bfd_elf32_arm_set_vfp11_fix - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_set_cortex_a8_fix - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_vfp11_fix_veneer_locations - (bfd *, struct bfd_link_info *); - -/* ARM STM STM32L4XX erratum workaround support. */ -typedef enum -{ - BFD_ARM_STM32L4XX_FIX_NONE, - BFD_ARM_STM32L4XX_FIX_DEFAULT, - BFD_ARM_STM32L4XX_FIX_ALL -} bfd_arm_stm32l4xx_fix; - -extern void bfd_elf32_arm_set_stm32l4xx_fix - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations - (bfd *, struct bfd_link_info *); - -/* ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_arm_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_arm_process_before_allocation - (bfd *, struct bfd_link_info *, int); - -extern bfd_boolean bfd_arm_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -/* PE ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_arm_pe_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_arm_pe_process_before_allocation - (bfd *, struct bfd_link_info *, int); - -extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -/* ELF ARM Interworking support. Called from linker. */ -extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections - (struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_process_before_allocation - (bfd *, struct bfd_link_info *); - -struct elf32_arm_params { - char *thumb_entry_symbol; - int byteswap_code; - int target1_is_rel; - char * target2_type; - int fix_v4bx; - int use_blx; - bfd_arm_vfp11_fix vfp11_denorm_fix; - bfd_arm_stm32l4xx_fix stm32l4xx_fix; - int no_enum_size_warning; - int no_wchar_size_warning; - int pic_veneer; - int fix_cortex_a8; - int fix_arm1176; - int merge_exidx_entries; - int cmse_implib; - bfd *in_implib_bfd; -}; - -void bfd_elf32_arm_set_target_params - (bfd *, struct bfd_link_info *, struct elf32_arm_params *); - -extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking - (bfd *, struct bfd_link_info *); - -extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd - (bfd *, struct bfd_link_info *); - -extern void bfd_elf32_arm_keep_private_stub_output_sections - (struct bfd_link_info *); - -/* ELF ARM mapping symbol support. */ -#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0) -#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1) -#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2) -#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0) - -extern bfd_boolean bfd_is_arm_special_symbol_name - (const char *, int); - -extern void bfd_elf32_arm_set_byteswap_code - (struct bfd_link_info *, int); - -extern void bfd_elf32_arm_use_long_plt (void); - -/* ARM Note section processing. */ -extern bfd_boolean bfd_arm_merge_machines - (bfd *, bfd *); - -extern bfd_boolean bfd_arm_update_notes - (bfd *, const char *); - -extern unsigned int bfd_arm_get_mach_from_notes - (bfd *, const char *); - -/* ARM stub generation support. Called from the linker. */ -extern int elf32_arm_setup_section_lists - (bfd *, struct bfd_link_info *); -extern void elf32_arm_next_input_section - (struct bfd_link_info *, struct bfd_section *); -extern bfd_boolean elf32_arm_size_stubs - (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, - struct bfd_section * (*) (const char *, struct bfd_section *, - struct bfd_section *, unsigned int), - void (*) (void)); -extern bfd_boolean elf32_arm_build_stubs - (struct bfd_link_info *); - -/* ARM unwind section editing support. */ -extern bfd_boolean elf32_arm_fix_exidx_coverage -(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean); /* Extracted from init.c. */ unsigned int bfd_init (void); diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c index cbc5257..c9a7c09 100644 --- a/bfd/coff-arm.c +++ b/bfd/coff-arm.c @@ -24,6 +24,8 @@ #include "libbfd.h" #include "coff/arm.h" #include "coff/internal.h" +#include "cpu-arm.h" +#include "coff-arm.h" #ifdef COFF_WITH_PE #include "coff/pe.h" diff --git a/bfd/coff-arm.h b/bfd/coff-arm.h new file mode 100644 index 0000000..e0a93d6 --- /dev/null +++ b/bfd/coff-arm.h @@ -0,0 +1,29 @@ +/* BFD back-end for ARM COFF files. + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +/* ARM Interworking support. Called from linker. */ +extern bfd_boolean bfd_arm_allocate_interworking_sections + (struct bfd_link_info *); + +extern bfd_boolean bfd_arm_process_before_allocation + (bfd *, struct bfd_link_info *, int); + +extern bfd_boolean bfd_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c index 71a78da..4a8c340 100644 --- a/bfd/cpu-arm.c +++ b/bfd/cpu-arm.c @@ -23,6 +23,7 @@ #include "bfd.h" #include "libbfd.h" #include "libiberty.h" +#include "cpu-arm.h" /* This routine is provided two arch_infos and works out which ARM machine which would be compatible with both and returns a pointer diff --git a/bfd/cpu-arm.h b/bfd/cpu-arm.h new file mode 100644 index 0000000..116b040 --- /dev/null +++ b/bfd/cpu-arm.h @@ -0,0 +1,39 @@ +/* BFD support for the ARM processor + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +/* ARM Note section processing. */ +extern bfd_boolean bfd_arm_merge_machines + (bfd *, bfd *); + +extern bfd_boolean bfd_arm_update_notes + (bfd *, const char *); + +extern unsigned int bfd_arm_get_mach_from_notes + (bfd *, const char *); + +/* ELF ARM mapping symbol support. */ +#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0) +#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1) +#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2) +#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0) + +extern bfd_boolean bfd_is_arm_special_symbol_name + (const char *, int); + diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 1c4887a..bb53e03 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -28,6 +28,8 @@ #include "elf-nacl.h" #include "elf-vxworks.h" #include "elf/arm.h" +#include "elf32-arm.h" +#include "cpu-arm.h" /* Return the relocation section associated with NAME. HTAB is the bfd's elf32_arm_link_hash_entry. */ diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h new file mode 100644 index 0000000..ba6c236 --- /dev/null +++ b/bfd/elf32-arm.h @@ -0,0 +1,121 @@ +/* 32-bit ELF support for ARM + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + + +/* ARM VFP11 erratum workaround support. */ +typedef enum +{ + BFD_ARM_VFP11_FIX_DEFAULT, + BFD_ARM_VFP11_FIX_NONE, + BFD_ARM_VFP11_FIX_SCALAR, + BFD_ARM_VFP11_FIX_VECTOR +} bfd_arm_vfp11_fix; + +extern void bfd_elf32_arm_init_maps + (bfd *); + +extern void bfd_elf32_arm_set_vfp11_fix + (bfd *, struct bfd_link_info *); + +extern void bfd_elf32_arm_set_cortex_a8_fix + (bfd *, struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_vfp11_erratum_scan + (bfd *, struct bfd_link_info *); + +extern void bfd_elf32_arm_vfp11_fix_veneer_locations + (bfd *, struct bfd_link_info *); + +/* ARM STM STM32L4XX erratum workaround support. */ +typedef enum +{ + BFD_ARM_STM32L4XX_FIX_NONE, + BFD_ARM_STM32L4XX_FIX_DEFAULT, + BFD_ARM_STM32L4XX_FIX_ALL +} bfd_arm_stm32l4xx_fix; + +extern void bfd_elf32_arm_set_stm32l4xx_fix + (bfd *, struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan + (bfd *, struct bfd_link_info *); + +extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations + (bfd *, struct bfd_link_info *); + +/* ELF ARM Interworking support. Called from linker. */ +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections + (struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_process_before_allocation + (bfd *, struct bfd_link_info *); + +struct elf32_arm_params { + char *thumb_entry_symbol; + int byteswap_code; + int target1_is_rel; + char * target2_type; + int fix_v4bx; + int use_blx; + bfd_arm_vfp11_fix vfp11_denorm_fix; + bfd_arm_stm32l4xx_fix stm32l4xx_fix; + int no_enum_size_warning; + int no_wchar_size_warning; + int pic_veneer; + int fix_cortex_a8; + int fix_arm1176; + int merge_exidx_entries; + int cmse_implib; + bfd *in_implib_bfd; +}; + +void bfd_elf32_arm_set_target_params + (bfd *, struct bfd_link_info *, struct elf32_arm_params *); + +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking + (bfd *, struct bfd_link_info *); + +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd + (bfd *, struct bfd_link_info *); + +extern void bfd_elf32_arm_keep_private_stub_output_sections + (struct bfd_link_info *); + +extern void bfd_elf32_arm_set_byteswap_code + (struct bfd_link_info *, int); + +extern void bfd_elf32_arm_use_long_plt (void); + +/* ARM stub generation support. Called from the linker. */ +extern int elf32_arm_setup_section_lists + (bfd *, struct bfd_link_info *); +extern void elf32_arm_next_input_section + (struct bfd_link_info *, struct bfd_section *); +extern bfd_boolean elf32_arm_size_stubs + (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, + struct bfd_section * (*) (const char *, struct bfd_section *, + struct bfd_section *, unsigned int), + void (*) (void)); +extern bfd_boolean elf32_arm_build_stubs + (struct bfd_link_info *); + +/* ARM unwind section editing support. */ +extern bfd_boolean elf32_arm_fix_exidx_coverage +(struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean); diff --git a/bfd/pe-arm-wince.c b/bfd/pe-arm-wince.c index d3d52ee..733b838 100644 --- a/bfd/pe-arm-wince.c +++ b/bfd/pe-arm-wince.c @@ -18,6 +18,9 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#include "sysdep.h" +#include "bfd.h" + #define TARGET_UNDERSCORE 0 #define USER_LABEL_PREFIX "" @@ -26,6 +29,11 @@ #define TARGET_BIG_SYM arm_pe_wince_be_vec #define TARGET_BIG_NAME "pe-arm-wince-big" +#define LOCAL_LABEL_PREFIX "." + +#undef bfd_pe_print_pdata +#define bfd_pe_print_pdata _bfd_pe_print_ce_compressed_pdata + #define bfd_arm_allocate_interworking_sections \ bfd_arm_wince_pe_allocate_interworking_sections #define bfd_arm_get_bfd_for_interworking \ @@ -33,13 +41,4 @@ #define bfd_arm_process_before_allocation \ bfd_arm_wince_pe_process_before_allocation -#define LOCAL_LABEL_PREFIX "." - -#include "sysdep.h" -#include "bfd.h" - -#undef bfd_pe_print_pdata -#define bfd_pe_print_pdata _bfd_pe_print_ce_compressed_pdata - #include "pe-arm.c" - diff --git a/bfd/pe-arm.c b/bfd/pe-arm.c index 2d1b7ea..4667046 100644 --- a/bfd/pe-arm.c +++ b/bfd/pe-arm.c @@ -18,18 +18,6 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - -/* Do this before including bfd.h, so we prototype the right functions. */ - -#ifndef bfd_arm_allocate_interworking_sections -#define bfd_arm_allocate_interworking_sections \ - bfd_armpe_allocate_interworking_sections -#define bfd_arm_get_bfd_for_interworking \ - bfd_armpe_get_bfd_for_interworking -#define bfd_arm_process_before_allocation \ - bfd_armpe_process_before_allocation -#endif - #include "sysdep.h" #include "bfd.h" @@ -64,4 +52,13 @@ { COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 } +#ifndef bfd_arm_allocate_interworking_sections +#define bfd_arm_allocate_interworking_sections \ + bfd_armpe_allocate_interworking_sections +#define bfd_arm_get_bfd_for_interworking \ + bfd_armpe_get_bfd_for_interworking +#define bfd_arm_process_before_allocation \ + bfd_armpe_process_before_allocation +#endif + #include "coff-arm.c" diff --git a/gas/ChangeLog b/gas/ChangeLog index 39537f8..cab918a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2019-09-23 Alan Modra <amodra@gmail.com> + + * config/tc-arm.c: Include cpu-arm.h. + 2019-09-21 Alan Modra <amodra@gmail.com> * config/tc-i386.c (md_parse_option): Fix warning on vexwig assignment. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index b0f1507..7760d18 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -32,6 +32,7 @@ #include "obstack.h" #include "libiberty.h" #include "opcode/arm.h" +#include "cpu-arm.h" #ifdef OBJ_ELF #include "elf/arm.h" diff --git a/ld/ChangeLog b/ld/ChangeLog index 378fcea..f0fcd20 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,10 @@ 2019-09-23 Alan Modra <amodra@gmail.com> + * emultempl/armelf.em: Include elf32-arm.h. + * emultempl/pe.em: Move func defines later and include coff-arm.h. + +2019-09-23 Alan Modra <amodra@gmail.com> + * emultempl/aarch64elf.em: Include elfxx-aarch64.h. 2019-09-23 Alan Modra <amodra@gmail.com> diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em index 0cbfcc7..9a1bc9a 100644 --- a/ld/emultempl/armelf.em +++ b/ld/emultempl/armelf.em @@ -27,6 +27,7 @@ fragment <<EOF #include "ldctor.h" #include "elf/arm.h" +#include "elf32-arm.h" static struct elf32_arm_params params = { diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 150c982..c1932d7 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -37,18 +37,6 @@ fragment <<EOF #define TARGET_IS_${EMULATION_NAME} -/* Do this before including bfd.h, so we prototype the right functions. */ - -#if defined(TARGET_IS_armpe) \ - || defined(TARGET_IS_arm_wince_pe) -#define bfd_arm_allocate_interworking_sections \ - bfd_${EMULATION_NAME}_allocate_interworking_sections -#define bfd_arm_get_bfd_for_interworking \ - bfd_${EMULATION_NAME}_get_bfd_for_interworking -#define bfd_arm_process_before_allocation \ - bfd_${EMULATION_NAME}_process_before_allocation -#endif - #include "sysdep.h" #include "bfd.h" #include "bfdlink.h" @@ -78,6 +66,17 @@ fragment <<EOF #include "../bfd/libcoff.h" #include "../bfd/libpei.h" +#if defined(TARGET_IS_armpe) \ + || defined(TARGET_IS_arm_wince_pe) +#define bfd_arm_allocate_interworking_sections \ + bfd_${EMULATION_NAME}_allocate_interworking_sections +#define bfd_arm_get_bfd_for_interworking \ + bfd_${EMULATION_NAME}_get_bfd_for_interworking +#define bfd_arm_process_before_allocation \ + bfd_${EMULATION_NAME}_process_before_allocation +#include "coff-arm.h" +#endif + #include "deffile.h" #include "pe-dll.h" #include "safe-ctype.h" |