1/* BFD backend for local host's a.out binaries 2 Copyright 1990, 1991, 1992, 1994, 1995, 2001, 2007 3 Free Software Foundation, Inc. 4 Written by Cygnus Support. Probably John Gilmore's fault. 5 6 This file is part of BFD, the Binary File Descriptor library. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 21 MA 02110-1301, USA. */ 22 23#include "sysdep.h" 24#include "bfd.h" 25#include "libbfd.h" 26 27#define ARCH_SIZE 32 28 29/* When porting to a new system, you must supply: 30 31 HOST_PAGE_SIZE (optional) 32 HOST_SEGMENT_SIZE (optional -- defaults to page size) 33 HOST_MACHINE_ARCH (optional) 34 HOST_MACHINE_MACHINE (optional) 35 HOST_TEXT_START_ADDR (optional) 36 HOST_STACK_END_ADDR (not used, except by trad-core ???) 37 HOST_BIG_ENDIAN_P (required -- define if big-endian) 38 39 in the ./hosts/h-systemname.h file. */ 40 41#ifdef TRAD_HEADER 42#include TRAD_HEADER 43#endif 44 45#ifdef HOST_PAGE_SIZE 46#define TARGET_PAGE_SIZE HOST_PAGE_SIZE 47#endif 48 49#ifdef HOST_SEGMENT_SIZE 50#define SEGMENT_SIZE HOST_SEGMENT_SIZE 51#else 52#define SEGMENT_SIZE TARGET_PAGE_SIZE 53#endif 54 55#ifdef HOST_TEXT_START_ADDR 56#define TEXT_START_ADDR HOST_TEXT_START_ADDR 57#endif 58 59#ifdef HOST_STACK_END_ADDR 60#define STACK_END_ADDR HOST_STACK_END_ADDR 61#endif 62 63#ifdef HOST_BIG_ENDIAN_P 64#define TARGET_IS_BIG_ENDIAN_P 65#else 66#undef TARGET_IS_BIG_ENDIAN_P 67#endif 68 69#include "libaout.h" /* BFD a.out internal data structures */ 70#include "aout/aout64.h" 71 72#ifdef HOST_MACHINE_ARCH 73#ifdef HOST_MACHINE_MACHINE 74#define SET_ARCH_MACH(abfd, execp) \ 75 bfd_default_set_arch_mach(abfd, HOST_MACHINE_ARCH, HOST_MACHINE_MACHINE) 76#else 77#define SET_ARCH_MACH(abfd, execp) \ 78 bfd_default_set_arch_mach(abfd, HOST_MACHINE_ARCH, 0) 79#endif 80#endif /* HOST_MACHINE_ARCH */ 81 82/* Do not "beautify" the CONCAT* macro args. Traditional C will not 83 remove whitespace added here, and thus will fail to concatenate 84 the tokens. */ 85#define MY(OP) CONCAT2 (host_aout_,OP) 86#define TARGETNAME "a.out" 87 88#include "aout-target.h" 89