This commit was generated by cvs2svn to track changes on a CVS vendor
[external/binutils.git] / bfd / coff-pmac.c
1 /* BFD back-end for Apple et al PowerPC Mac "XCOFF" files.
2    Copyright 1990, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
3    FIXME: Can someone provide a transliteration of this name into ASCII?
4    Using the following chars caused a compiler warning on HIUX (so I replaced
5    them with octal escapes), and isn't useful without an understanding of what
6    character set it is.
7    Written by Metin G. Ozisik, Mimi Ph\373\364ng-Th\345o V\365, 
8      and John Gilmore.
9    Contributed by IBM Corporation and Cygnus Support.
10
11 This file is part of BFD, the Binary File Descriptor library.
12
13 This program is free software; you can redistribute it and/or modify
14 it under the terms of the GNU General Public License as published by
15 the Free Software Foundation; either version 2 of the License, or
16 (at your option) any later version.
17
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
26
27 /* (eventually lose this) */
28 /* coffcode.h modifies itself based on this flag.  */
29 #define RS6000COFF_C 1
30
31 /* Tweak coffcode.h based on this being a PowerMac instead of RS/6000. */
32
33 #define POWERMAC
34
35 #include "coff-rs6000.c"
36
37 \f
38 const bfd_target pmac_xcoff_vec =
39 {
40   "xcoff-powermac",             /* name */
41   bfd_target_coff_flavour,      
42   true,                         /* data byte order is big */
43   true,                         /* header byte order is big */
44
45   (HAS_RELOC | EXEC_P |         /* object flags */
46    HAS_LINENO | HAS_DEBUG | DYNAMIC |
47    HAS_SYMS | HAS_LOCALS | WP_TEXT),
48
49   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
50   0,                            /* leading char */
51   '/',                          /* ar_pad_char */
52   15,                           /* ar_max_namelen??? FIXMEmgo */
53
54   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
55      bfd_getb32, bfd_getb_signed_32, bfd_putb32,
56      bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */
57   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
58      bfd_getb32, bfd_getb_signed_32, bfd_putb32,
59      bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */
60
61   {_bfd_dummy_target, coff_object_p,    /* bfd_check_format */
62      xcoff_archive_p, _bfd_dummy_target},
63   {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
64      bfd_false},
65   {bfd_false, coff_write_object_contents,       /* bfd_write_contents */
66      xcoff_write_archive_contents, bfd_false},
67
68      BFD_JUMP_TABLE_GENERIC (coff),
69      BFD_JUMP_TABLE_COPY (coff),
70      BFD_JUMP_TABLE_CORE (_bfd_nocore),
71      BFD_JUMP_TABLE_ARCHIVE (xcoff),
72      BFD_JUMP_TABLE_SYMBOLS (coff),
73      BFD_JUMP_TABLE_RELOCS (coff),
74      BFD_JUMP_TABLE_WRITE (coff),
75      BFD_JUMP_TABLE_LINK (_bfd_xcoff),
76      BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
77
78   COFF_SWAP_TABLE,
79 };