* values.c, value.h: New functions value_{headof,from_vtable_info}.
[deliverable/binutils-gdb.git] / ld / ld-emul.c
1 /* Copyright (C) 1991 Free Software Foundation, Inc.
2
3 This file is part of GLD, the Gnu Linker.
4
5 GLD is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 1, or (at your option)
8 any later version.
9
10 GLD is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GLD; see the file COPYING. If not, write to
17 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
18
19 /*
20 * $Id$
21 */
22
23 /*
24 * clearing house for ld emulation states
25 */
26
27 #include "sysdep.h"
28 #include "bfd.h"
29
30 #include "config.h"
31 #include "ld.h"
32 #include "ld-emul.h"
33 #include "ldmisc.h"
34
35 extern ld_emulation_xfer_type ld_lnk960_emulation;
36 extern ld_emulation_xfer_type ld_gldm88kbcs_emulation;
37 extern ld_emulation_xfer_type ld_gld_emulation;
38 extern ld_emulation_xfer_type ld_vanilla_emulation;
39 extern ld_emulation_xfer_type ld_gld68k_emulation;
40 extern ld_emulation_xfer_type ld_gld960_emulation;
41
42
43
44 ld_emulation_xfer_type *ld_emulation;
45
46 void
47 ldemul_hll(name)
48 char *name;
49 {
50 ld_emulation->hll(name);
51 }
52
53
54 void ldemul_syslib(name)
55 char *name;
56 {
57 ld_emulation->syslib(name);
58 }
59
60 void
61 ldemul_after_parse()
62 {
63 ld_emulation->after_parse();
64 }
65
66 void
67 ldemul_before_parse()
68 {
69 ld_emulation->before_parse();
70 }
71
72 void
73 ldemul_after_allocation()
74 {
75 ld_emulation->after_allocation();
76 }
77
78 void
79 ldemul_before_allocation()
80 {
81 if (ld_emulation->before_allocation) {
82 ld_emulation->before_allocation();
83 }
84 }
85
86
87 void
88 ldemul_set_output_arch()
89 {
90 ld_emulation->set_output_arch();
91 }
92
93 char *
94 ldemul_choose_target()
95 {
96 return ld_emulation->choose_target();
97 }
98
99 char *
100 ldemul_get_script()
101 {
102 return ld_emulation->get_script();
103 }
104
105 void
106 ldemul_choose_mode(target)
107 char *target;
108 {
109 if (strcmp(target,LNK960_EMULATION_NAME)==0) {
110 ld_emulation = &ld_lnk960_emulation;
111 }
112 else if (strcmp(target,GLD960_EMULATION_NAME)==0) {
113 ld_emulation = &ld_gld960_emulation;
114 }
115 else if (strcmp(target,GLDM88KBCS_EMULATION_NAME)==0) {
116 ld_emulation = &ld_gldm88kbcs_emulation;
117 }
118 #ifndef GNU960
119 else if (strcmp(target,GLD_EMULATION_NAME)==0) {
120 ld_emulation = &ld_gld_emulation;
121 }
122 else if (strcmp(target,VANILLA_EMULATION_NAME)==0) {
123 ld_emulation = &ld_vanilla_emulation;
124 }
125 else if (strcmp(target,GLD68K_EMULATION_NAME)==0) {
126 ld_emulation = &ld_gld68k_emulation;
127 }
128 #endif
129 else {
130 info("%P%F unrecognised emulation mode: %s\n",target);
131 }
132 }
133
134
135
This page took 0.030805 seconds and 4 git commands to generate.