summaryrefslogtreecommitdiff
path: root/bfd/binary.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-03-13 00:08:34 +0000
committerNick Clifton <nickc@redhat.com>2001-03-13 00:08:34 +0000
commit30aa7e6558c97ba488b74039fb57abfdf2efd5d4 (patch)
tree6288410eb9885b7590e9f929d2d75f17d0d324c2 /bfd/binary.c
parent77e9d6d4051afad585b104dbc5b585e6a54865d5 (diff)
downloadgdb-30aa7e6558c97ba488b74039fb57abfdf2efd5d4.tar.gz
Add --binary-architecture switch to objcopy to allow the output architecture
to be set when the input file type is binary.
Diffstat (limited to 'bfd/binary.c')
-rw-r--r--bfd/binary.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/bfd/binary.c b/bfd/binary.c
index b80343bed7c..a008f902971 100644
--- a/bfd/binary.c
+++ b/bfd/binary.c
@@ -55,6 +55,10 @@ static boolean binary_set_section_contents
PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
static int binary_sizeof_headers PARAMS ((bfd *, boolean));
+/* Set by external programs - specifies the BFD architecture
+ to use when creating binary BFDs. */
+enum bfd_architecture bfd_external_binary_architecture = bfd_arch_unknown;
+
/* Create a binary object. Invoked via bfd_set_format. */
static boolean
@@ -101,6 +105,13 @@ binary_object_p (abfd)
abfd->tdata.any = (PTR) sec;
+ if (bfd_get_arch_info (abfd) != NULL)
+ {
+ if ((bfd_get_arch_info (abfd)->arch == bfd_arch_unknown)
+ && (bfd_external_binary_architecture != bfd_arch_unknown))
+ bfd_set_arch_info (abfd, bfd_lookup_arch (bfd_external_binary_architecture, 0));
+ }
+
return abfd->xvec;
}