160484Sobrien/* BFD back-end for ARM PECOFF files.
2218822Sdim   Copyright 1995, 1996, 1999, 2000, 2001, 2002, 2007
3218822Sdim   Free Software Foundation, Inc.
460484Sobrien
560484SobrienThis file is part of BFD, the Binary File Descriptor library.
660484Sobrien
760484SobrienThis program is free software; you can redistribute it and/or modify
860484Sobrienit under the terms of the GNU General Public License as published by
960484Sobrienthe Free Software Foundation; either version 2 of the License, or
1060484Sobrien(at your option) any later version.
1160484Sobrien
1260484SobrienThis program is distributed in the hope that it will be useful,
1360484Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
1460484SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1560484SobrienGNU General Public License for more details.
1660484Sobrien
1760484SobrienYou should have received a copy of the GNU General Public License
1860484Sobrienalong with this program; if not, write to the Free Software
19218822SdimFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
2060484Sobrien
21218822Sdim/* Do this before including bfd.h, so we prototype the right functions.  */
22218822Sdim
23218822Sdim#ifndef bfd_arm_allocate_interworking_sections
24218822Sdim#define bfd_arm_allocate_interworking_sections \
25218822Sdim  bfd_armpe_allocate_interworking_sections
26218822Sdim#define bfd_arm_get_bfd_for_interworking \
27218822Sdim  bfd_armpe_get_bfd_for_interworking
28218822Sdim#define bfd_arm_process_before_allocation \
29218822Sdim  bfd_armpe_process_before_allocation
30218822Sdim#endif
31218822Sdim
32218822Sdim#include "sysdep.h"
3360484Sobrien#include "bfd.h"
3460484Sobrien
3560484Sobrien#ifndef TARGET_LITTLE_SYM
3660484Sobrien#define TARGET_LITTLE_SYM    armpe_little_vec
3760484Sobrien#define TARGET_LITTLE_NAME   "pe-arm-little"
3860484Sobrien#define TARGET_BIG_SYM       armpe_big_vec
3960484Sobrien#define TARGET_BIG_NAME      "pe-arm-big"
4060484Sobrien#endif
4160484Sobrien
4260484Sobrien#define COFF_WITH_PE
43130561Sobrien#define PCRELOFFSET          TRUE
4460484Sobrien#define COFF_LONG_SECTION_NAMES
4560484Sobrien
46218822Sdim#define COFF_SECTION_ALIGNMENT_ENTRIES \
47218822Sdim{ COFF_SECTION_NAME_EXACT_MATCH (".bss"), \
48218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
49218822Sdim{ COFF_SECTION_NAME_EXACT_MATCH (".data"), \
50218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
51218822Sdim{ COFF_SECTION_NAME_EXACT_MATCH (".rdata"), \
52218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
53218822Sdim{ COFF_SECTION_NAME_EXACT_MATCH (".text"), \
54218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
55218822Sdim{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
56218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
57218822Sdim{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
58218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
59218822Sdim{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
60218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }, \
61218822Sdim{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
62218822Sdim  COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
6377298Sobrien
6460484Sobrien#include "coff-arm.c"
65