]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - binutils/binemul.c
* ld-elfcomm/elfcomm.exp: Run $READELF not readelf.
[thirdparty/binutils-gdb.git] / binutils / binemul.c
CommitLineData
eb1e0e80 1/* Binutils emulation layer.
32866df7 2 Copyright 2002, 2003, 2007 Free Software Foundation, Inc.
ad94be02 3 Written by Tom Rix, Red Hat Inc.
eb1e0e80
NC
4
5 This file is part of GNU Binutils.
6
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
32866df7 9 the Free Software Foundation; either version 3 of the License, or
eb1e0e80
NC
10 (at your option) any later version.
11
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
32866df7
NC
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
eb1e0e80
NC
21
22#include "binemul.h"
23
24extern bin_emulation_xfer_type bin_dummy_emulation;
25
26void
2da42df6 27ar_emul_usage (FILE *fp)
eb1e0e80
NC
28{
29 if (bin_dummy_emulation.ar_usage)
30 bin_dummy_emulation.ar_usage (fp);
31}
32
33void
2da42df6 34ar_emul_default_usage (FILE *fp)
eb1e0e80
NC
35{
36 AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp);
37 /* xgettext:c-format */
38 fprintf (fp, _(" No emulation specific options\n"));
39}
40
b34976b6 41bfd_boolean
2da42df6 42ar_emul_append (bfd **after_bfd, char *file_name, bfd_boolean verbose)
eb1e0e80
NC
43{
44 if (bin_dummy_emulation.ar_append)
45 return bin_dummy_emulation.ar_append (after_bfd, file_name, verbose);
46
b34976b6 47 return FALSE;
eb1e0e80
NC
48}
49
b34976b6 50bfd_boolean
2da42df6
AJ
51ar_emul_default_append (bfd **after_bfd, char *file_name,
52 bfd_boolean verbose)
eb1e0e80
NC
53{
54 bfd *temp;
55
56 temp = *after_bfd;
57 *after_bfd = bfd_openr (file_name, NULL);
58
59 AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
60 AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name);
61
cc481421 62 (*after_bfd)->archive_next = temp;
eb1e0e80 63
b34976b6 64 return TRUE;
eb1e0e80
NC
65}
66
b34976b6 67bfd_boolean
2da42df6 68ar_emul_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
eb1e0e80
NC
69{
70 if (bin_dummy_emulation.ar_replace)
71 return bin_dummy_emulation.ar_replace (after_bfd, file_name, verbose);
72
b34976b6 73 return FALSE;
eb1e0e80
NC
74}
75
b34976b6 76bfd_boolean
2da42df6
AJ
77ar_emul_default_replace (bfd **after_bfd, char *file_name,
78 bfd_boolean verbose)
eb1e0e80
NC
79{
80 bfd *temp;
81
82 temp = *after_bfd;
83 *after_bfd = bfd_openr (file_name, NULL);
84
85 AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
86 AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
87
cc481421 88 (*after_bfd)->archive_next = temp;
eb1e0e80 89
b34976b6 90 return TRUE;
eb1e0e80
NC
91}
92
b34976b6 93bfd_boolean
2da42df6 94ar_emul_parse_arg (char *arg)
eb1e0e80
NC
95{
96 if (bin_dummy_emulation.ar_parse_arg)
97 return bin_dummy_emulation.ar_parse_arg (arg);
98
b34976b6 99 return FALSE;
eb1e0e80
NC
100}
101
b34976b6 102bfd_boolean
2da42df6 103ar_emul_default_parse_arg (char *arg ATTRIBUTE_UNUSED)
eb1e0e80 104{
b34976b6 105 return FALSE;
eb1e0e80 106}