source: trunk/src/binutils/bfd/sparclynx.c@ 610

Last change on this file since 610 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 7.2 KB
Line 
1/* BFD support for Sparc binaries under LynxOS.
2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000,
3 2001, 2002, 2003 Free Software Foundation, Inc.
4
5This file is part of BFD, the Binary File Descriptor library.
6
7This program is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program; if not, write to the Free Software
19Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20
21#if 0
22#define N_SHARED_LIB(x) 0
23
24#define TEXT_START_ADDR 0
25#define TARGET_PAGE_SIZE 4096
26#define SEGMENT_SIZE TARGET_PAGE_SIZE
27#define DEFAULT_ARCH bfd_arch_sparc
28
29#endif
30
31/* Do not "beautify" the CONCAT* macro args. Traditional C will not
32 remove whitespace added here, and thus will fail to concatenate
33 the tokens. */
34#define MY(OP) CONCAT2 (sparclynx_aout_,OP)
35#define TARGETNAME "a.out-sparc-lynx"
36
37#include "bfd.h"
38#include "sysdep.h"
39#include "libbfd.h"
40
41#include "aout/sun4.h"
42#include "libaout.h" /* BFD a.out internal data structures */
43
44#include "aout/aout64.h"
45#include "aout/stab_gnu.h"
46#include "aout/ar.h"
47
48void NAME (lynx,set_arch_mach) PARAMS ((bfd *, unsigned long));
49static void choose_reloc_size PARAMS ((bfd *));
50static bfd_boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *));
51
52/* This is needed to reject a NewsOS file, e.g. in
53 gdb/testsuite/gdb.t10/crossload.exp. <[email protected]>
54 I needed to add M_UNKNOWN to recognize a 68000 object, so this will
55 probably no longer reject a NewsOS object. <[email protected]>. */
56#define MACHTYPE_OK(mtype) ((mtype) == M_UNKNOWN \
57 || (mtype) == M_68010 \
58 || (mtype) == M_68020 \
59 || (mtype) == M_SPARC)
60
61/* The file @code{aoutf1.h} contains the code for BFD's
62 a.out back end. Control over the generated back end is given by these
63 two preprocessor names:
64 @table @code
65 @item ARCH_SIZE
66 This value should be either 32 or 64, depending upon the size of an
67 int in the target format. It changes the sizes of the structs which
68 perform the memory/disk mapping of structures.
69
70 The 64 bit backend may only be used if the host compiler supports 64
71 ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}.
72 With this name defined, @emph{all} bfd operations are performed with 64bit
73 arithmetic, not just those to a 64bit target.
74
75 @item TARGETNAME
76 The name put into the target vector.
77 @item
78 @end table */
79
80void
81NAME(lynx,set_arch_mach) (abfd, machtype)
82 bfd *abfd;
83 unsigned long machtype;
84{
85 /* Determine the architecture and machine type of the object file. */
86 enum bfd_architecture arch;