* aix386-core.c: Remove use of PTR and PARAMS macros.
[deliverable/binutils-gdb.git] / bfd / pc532-mach.c
CommitLineData
252b5132 1/* BFD back-end for Mach3/532 a.out-ish binaries.
4a056f14 2 Copyright 1990, 1991, 1992, 1994, 1995, 2000, 2001, 2002, 2005, 2007, 2009
7898deda 3 Free Software Foundation, Inc.
252b5132 4
cd123cb7 5 This file is part of BFD, the Binary File Descriptor library.
252b5132 6
cd123cb7
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
252b5132 11
cd123cb7
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132 21
252b5132
RH
22
23/* Written by Ian Dall
cd123cb7
NC
24 19-Apr-94
25
26 Formerly part of aout-pc532-mach.c. Split out to allow more
27 flexibility with multiple formats. */
28
252b5132 29/* This architecture has N_TXTOFF and N_TXTADDR defined as if
cd123cb7
NC
30 N_HEADER_IN_TEXT, but the a_text entry (text size) does not include the
31 space for the header. So we have N_HEADER_IN_TEXT defined to
32 1 and specially define our own N_TXTSIZE. */
252b5132
RH
33
34#define N_HEADER_IN_TEXT(x) 1
35#define N_TXTSIZE(x) ((x).a_text)
36
252b5132
RH
37#define TEXT_START_ADDR 0x10000 /* from old ld */
38#define TARGET_PAGE_SIZE 0x1000 /* from old ld, 032 & 532 are really 512/4k */
39
40/* Use a_entry of 0 to distinguish object files from OMAGIC executables */
41#define N_TXTADDR(x) \
42 (N_MAGIC(x) == OMAGIC ? \
43 ((x).a_entry < TEXT_START_ADDR? 0: TEXT_START_ADDR): \
44 (N_MAGIC(x) == NMAGIC? TEXT_START_ADDR: \
45 TEXT_START_ADDR + EXEC_BYTES_SIZE))
46
47#define SEGMENT_SIZE TARGET_PAGE_SIZE
48
252b5132
RH
49#define SEGMENT_SIZE TARGET_PAGE_SIZE
50#define DEFAULT_ARCH bfd_arch_ns32k
892339ee 51
e43d48cc
AM
52/* Do not "beautify" the CONCAT* macro args. Traditional C will not
53 remove whitespace added here, and thus will fail to concatenate
54 the tokens. */
55#define MY(OP) CONCAT2 (pc532machaout_,OP)
252b5132
RH
56
57/* Must be the same as aout-ns32k.c */
e43d48cc 58#define NAME(x,y) CONCAT3 (ns32kaout,_32_,y)
252b5132
RH
59
60#define TARGETNAME "a.out-pc532-mach"
61
252b5132 62#include "sysdep.h"
3db64b00 63#include "bfd.h"
252b5132
RH
64#include "libaout.h"
65#include "libbfd.h"
66#include "aout/aout64.h"
67
252b5132
RH
68#define MY_bfd_reloc_type_lookup ns32kaout_bfd_reloc_type_lookup
69
892339ee 70/* libaout doesn't use NAME for these ... */
252b5132
RH
71
72#define MY_get_section_contents aout_32_get_section_contents
73
74#define MY_text_includes_header 1
75
76#define MY_exec_header_not_counted 1
892339ee 77
dc810e39 78reloc_howto_type *ns32kaout_bfd_reloc_type_lookup
2c3fc389 79 (bfd *abfd, bfd_reloc_code_real_type code);
252b5132 80
b34976b6 81static bfd_boolean
2c3fc389 82MY(write_object_contents) (bfd *abfd)
252b5132
RH
83{
84 struct external_exec exec_bytes;
85 struct internal_exec *execp = exec_hdr (abfd);
892339ee 86
252b5132 87 obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
892339ee 88
252b5132
RH
89 BFD_ASSERT (bfd_get_arch (abfd) == bfd_arch_ns32k);
90 switch (bfd_get_mach (abfd))
91 {
92 case 32032:
93 N_SET_MACHTYPE (*execp, M_NS32032);
94 break;
95 case 32532:
96 default:
97 N_SET_MACHTYPE (*execp, M_NS32532);
98 break;
99 }
100 N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
892339ee 101
252b5132 102 WRITE_HEADERS(abfd, execp);
892339ee 103
b34976b6 104 return TRUE;
252b5132
RH
105}
106
107#define MY_write_object_contents MY(write_object_contents)
108
109#include "aout-target.h"
This page took 1.05076 seconds and 4 git commands to generate.