Change arch info to be const, initialized at compile time.
* archures.c: Reindent many functions. Change CONST to const. (bfd_arch_info_type): Make arch_name const. Remove disassemble; nothing set it anyhow. Make next const. (bfd_arch_info_list): Remove. (bfd_archures_list): Rename from archures_init_table. Change from a table of function pointers to a table of bfd_arch_info_type structure addresses. (bfd_scan_arch): Rewrite accordingly. Return a const pointer. (bfd_lookup_arch): Likewise. (bfd_set_arch_info): Rewrite accordingly. Change argument to be a const pointer. (bfd_default_arch_struct): Make const. (bfd_arch_init, bfd_arch_linkin): Remove. (bfd_get_arch_info): Return a const pointer. * init.c (bfd_init): Don't call bfd_arch_init. * bfd.c (struct _bfd): Make arch_info const. * bfd-in2.h: Rebuild. * libbfd.h: Rebuild. * configure.in: Put & before everything in $selarchs. * configure: Rebuild. * cpu-*.c: Change bfd_*_arch from a function which calls bfd_arch_linkin to a const structure. * ieee.c (ieee_object_p): Make arch const.
This commit is contained in:
parent
8f4670da40
commit
2ffbb79ae4
@ -1,3 +1,30 @@
|
||||
Fri Sep 22 17:44:47 1995 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
Change arch info to be const, initialized at compile time.
|
||||
* archures.c: Reindent many functions. Change CONST to const.
|
||||
(bfd_arch_info_type): Make arch_name const. Remove disassemble;
|
||||
nothing set it anyhow. Make next const.
|
||||
(bfd_arch_info_list): Remove.
|
||||
(bfd_archures_list): Rename from archures_init_table. Change from
|
||||
a table of function pointers to a table of bfd_arch_info_type
|
||||
structure addresses.
|
||||
(bfd_scan_arch): Rewrite accordingly. Return a const pointer.
|
||||
(bfd_lookup_arch): Likewise.
|
||||
(bfd_set_arch_info): Rewrite accordingly. Change argument to be a
|
||||
const pointer.
|
||||
(bfd_default_arch_struct): Make const.
|
||||
(bfd_arch_init, bfd_arch_linkin): Remove.
|
||||
(bfd_get_arch_info): Return a const pointer.
|
||||
* init.c (bfd_init): Don't call bfd_arch_init.
|
||||
* bfd.c (struct _bfd): Make arch_info const.
|
||||
* bfd-in2.h: Rebuild.
|
||||
* libbfd.h: Rebuild.
|
||||
* configure.in: Put & before everything in $selarchs.
|
||||
* configure: Rebuild.
|
||||
* cpu-*.c: Change bfd_*_arch from a function which calls
|
||||
bfd_arch_linkin to a const structure.
|
||||
* ieee.c (ieee_object_p): Make arch const.
|
||||
|
||||
Fri Sep 22 16:23:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||
|
||||
* reloc.c (bfd_reloc_code_type): Add relocations to support all of
|
||||
|
@ -1079,39 +1079,32 @@ typedef struct bfd_arch_info
|
||||
int bits_per_byte;
|
||||
enum bfd_architecture arch;
|
||||
unsigned long mach;
|
||||
char *arch_name;
|
||||
CONST char *printable_name;
|
||||
const char *arch_name;
|
||||
const char *printable_name;
|
||||
unsigned int section_align_power;
|
||||
/* true if this is the default machine for the architecture */
|
||||
boolean the_default;
|
||||
CONST struct bfd_arch_info * (*compatible)
|
||||
PARAMS ((CONST struct bfd_arch_info *a,
|
||||
CONST struct bfd_arch_info *b));
|
||||
const struct bfd_arch_info * (*compatible)
|
||||
PARAMS ((const struct bfd_arch_info *a,
|
||||
const struct bfd_arch_info *b));
|
||||
|
||||
boolean (*scan) PARAMS ((CONST struct bfd_arch_info *, CONST char *));
|
||||
/* How to disassemble an instruction, producing a printable
|
||||
representation on a specified stdio stream. This isn't
|
||||
defined for most processors at present, because of the size
|
||||
of the additional tables it would drag in, and because gdb
|
||||
wants to use a different interface. */
|
||||
unsigned int (*disassemble) PARAMS ((bfd_vma addr, CONST char *data,
|
||||
PTR stream));
|
||||
boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
|
||||
|
||||
struct bfd_arch_info *next;
|
||||
const struct bfd_arch_info *next;
|
||||
} bfd_arch_info_type;
|
||||
CONST char *
|
||||
const char *
|
||||
bfd_printable_name PARAMS ((bfd *abfd));
|
||||
|
||||
bfd_arch_info_type *
|
||||
bfd_scan_arch PARAMS ((CONST char *string));
|
||||
const bfd_arch_info_type *
|
||||
bfd_scan_arch PARAMS ((const char *string));
|
||||
|
||||
CONST bfd_arch_info_type *
|
||||
const bfd_arch_info_type *
|
||||
bfd_arch_get_compatible PARAMS ((
|
||||
CONST bfd *abfd,
|
||||
CONST bfd *bbfd));
|
||||
const bfd *abfd,
|
||||
const bfd *bbfd));
|
||||
|
||||
void
|
||||
bfd_set_arch_info PARAMS ((bfd *abfd, bfd_arch_info_type *arg));
|
||||
bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg));
|
||||
|
||||
enum bfd_architecture
|
||||
bfd_get_arch PARAMS ((bfd *abfd));
|
||||
@ -1125,16 +1118,16 @@ bfd_arch_bits_per_byte PARAMS ((bfd *abfd));
|
||||
unsigned int
|
||||
bfd_arch_bits_per_address PARAMS ((bfd *abfd));
|
||||
|
||||
bfd_arch_info_type *
|
||||
const bfd_arch_info_type *
|
||||
bfd_get_arch_info PARAMS ((bfd *abfd));
|
||||
|
||||
bfd_arch_info_type *
|
||||
const bfd_arch_info_type *
|
||||
bfd_lookup_arch
|
||||
PARAMS ((enum bfd_architecture
|
||||
arch,
|
||||
unsigned long machine));
|
||||
|
||||
CONST char *
|
||||
const char *
|
||||
bfd_printable_arch_mach
|
||||
PARAMS ((enum bfd_architecture arch, unsigned long machine));
|
||||
|
||||
@ -1849,7 +1842,7 @@ struct _bfd
|
||||
struct symbol_cache_entry **outsymbols;
|
||||
|
||||
/* Pointer to structure which contains architecture information*/
|
||||
struct bfd_arch_info *arch_info;
|
||||
const struct bfd_arch_info *arch_info;
|
||||
|
||||
/* Stuff only useful for archives:*/
|
||||
PTR arelt_data;
|
||||
|
@ -127,7 +127,7 @@ CODE_FRAGMENT
|
||||
. struct symbol_cache_entry **outsymbols;
|
||||
.
|
||||
. {* Pointer to structure which contains architecture information*}
|
||||
. struct bfd_arch_info *arch_info;
|
||||
. const struct bfd_arch_info *arch_info;
|
||||
.
|
||||
. {* Stuff only useful for archives:*}
|
||||
. PTR arelt_data;
|
||||
|
2
bfd/configure
vendored
2
bfd/configure
vendored
@ -1424,7 +1424,7 @@ else # all_targets is true
|
||||
test -n "$selvecs" &&
|
||||
selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
test -n "$selarchs" &&
|
||||
selarchs=`echo $selarchs | sed -e 's/ \(.\)/,\1/g'`
|
||||
selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
fi # all_targets is true
|
||||
|
||||
case ${host64}-${target64}-${want64} in
|
||||
|
@ -469,7 +469,7 @@ else # all_targets is true
|
||||
test -n "$selvecs" &&
|
||||
selvecs=`echo $selvecs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
test -n "$selarchs" &&
|
||||
selarchs=`echo $selarchs | sed -e 's/ \(.\)/,\1/g'`
|
||||
selarchs=`echo $selarchs | sed -e 's/^/\&/' -e 's/ \(.\)/,\&\1/g'`
|
||||
fi # all_targets is true
|
||||
|
||||
case ${host64}-${target64}-${want64} in
|
||||
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
static bfd_arch_info_type arch_info_struct =
|
||||
const bfd_arch_info_type bfd_a29k_arch =
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
@ -37,9 +37,3 @@ static bfd_arch_info_type arch_info_struct =
|
||||
bfd_default_scan ,
|
||||
0,
|
||||
};
|
||||
|
||||
void
|
||||
bfd_a29k_arch ()
|
||||
{
|
||||
bfd_arch_linkin(&arch_info_struct);
|
||||
}
|
||||
|
@ -25,9 +25,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
int bfd_default_scan_num_mach();
|
||||
|
||||
static boolean
|
||||
DEFUN(scan_mach,(info, string),
|
||||
CONST struct bfd_arch_info *info AND
|
||||
CONST char *string)
|
||||
scan_mach (info, string)
|
||||
const struct bfd_arch_info *info;
|
||||
const char *string;
|
||||
{
|
||||
if (strcmp(string,"rce") == 0) return true;
|
||||
if (strcmp(string,"RCE") == 0) return true;
|
||||
@ -39,10 +39,10 @@ CONST char *string)
|
||||
/* This routine is provided two arch_infos and returns whether
|
||||
they'd be compatible */
|
||||
|
||||
static CONST bfd_arch_info_type *
|
||||
static const bfd_arch_info_type *
|
||||
DEFUN(compatible,(a,b),
|
||||
CONST bfd_arch_info_type *a AND
|
||||
CONST bfd_arch_info_type *b)
|
||||
const bfd_arch_info_type *a AND
|
||||
const bfd_arch_info_type *b)
|
||||
{
|
||||
if (a->arch != b->arch || a->mach != b->mach)
|
||||
return NULL;
|
||||
@ -50,29 +50,18 @@ DEFUN(compatible,(a,b),
|
||||
}
|
||||
#endif
|
||||
|
||||
static bfd_arch_info_type arch_info_struct[] =
|
||||
{
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_rce,
|
||||
0, /* only 1 machine */
|
||||
"RCE", /* arch_name */
|
||||
"RCE", /* printable name */
|
||||
1,
|
||||
true, /* the default machine */
|
||||
bfd_default_compatible,
|
||||
scan_mach,
|
||||
0,
|
||||
0,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
|
||||
void
|
||||
DEFUN_VOID(bfd_rce_arch)
|
||||
const bfd_arch_info_type bfd_rce_arch =
|
||||
{
|
||||
bfd_arch_linkin(&arch_info_struct[0]);
|
||||
}
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_rce,
|
||||
0, /* only 1 machine */
|
||||
"RCE", /* arch_name */
|
||||
"RCE", /* printable name */
|
||||
1,
|
||||
true, /* the default machine */
|
||||
bfd_default_compatible,
|
||||
scan_mach,
|
||||
0,
|
||||
};
|
||||
|
21
bfd/init.c
21
bfd/init.c
@ -1,5 +1,5 @@
|
||||
/* bfd initialization stuff
|
||||
Copyright (C) 1990-1991 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
|
||||
Written by Steve Chamberlain of Cygnus Support.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@ -16,13 +16,13 @@ GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
extern void DEFUN_VOID (bfd_section_init);
|
||||
extern void bfd_section_init ();
|
||||
|
||||
static boolean initialized = false;
|
||||
|
||||
@ -41,18 +41,17 @@ SYNOPSIS
|
||||
void bfd_init(void);
|
||||
|
||||
DESCRIPTION
|
||||
This routine must be called before any other libbfd function to
|
||||
This routine must be called before any other BFD function to
|
||||
initialize magical internal data structures.
|
||||
*/
|
||||
|
||||
void
|
||||
bfd_init ()
|
||||
{
|
||||
if (initialized == false) {
|
||||
initialized = true;
|
||||
|
||||
bfd_arch_init();
|
||||
}
|
||||
if (initialized == false)
|
||||
{
|
||||
initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -64,9 +63,9 @@ SYNOPSIS
|
||||
void bfd_check_init(void);
|
||||
|
||||
DESCRIPTION
|
||||
This routine is called before any other libbfd function using
|
||||
This routine is called before any other BFD function using
|
||||
initialized data. It ensures that the structures have
|
||||
been initialized. Soon this function will go away, and the bfd
|
||||
been initialized. Soon this function will go away, and the BFD
|
||||
library will assume that <<bfd_init>> has been called.
|
||||
*/
|
||||
|
||||
|
16
bfd/libbfd.h
16
bfd/libbfd.h
@ -663,25 +663,19 @@ bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
|
||||
boolean relocateable,
|
||||
asymbol **symbols));
|
||||
|
||||
extern bfd_arch_info_type bfd_default_arch_struct;
|
||||
extern const bfd_arch_info_type bfd_default_arch_struct;
|
||||
boolean
|
||||
bfd_default_set_arch_mach PARAMS ((bfd *abfd,
|
||||
enum bfd_architecture arch,
|
||||
unsigned long mach));
|
||||
|
||||
void
|
||||
bfd_arch_init PARAMS ((void));
|
||||
|
||||
void
|
||||
bfd_arch_linkin PARAMS ((bfd_arch_info_type *ptr));
|
||||
|
||||
CONST bfd_arch_info_type *
|
||||
const bfd_arch_info_type *
|
||||
bfd_default_compatible
|
||||
PARAMS ((CONST bfd_arch_info_type *a,
|
||||
CONST bfd_arch_info_type *b));
|
||||
PARAMS ((const bfd_arch_info_type *a,
|
||||
const bfd_arch_info_type *b));
|
||||
|
||||
boolean
|
||||
bfd_default_scan PARAMS ((CONST struct bfd_arch_info *info, CONST char *string));
|
||||
bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string));
|
||||
|
||||
struct elf_internal_shdr *
|
||||
bfd_elf_find_section PARAMS ((bfd *abfd, char *name));
|
||||
|
Loading…
Reference in New Issue
Block a user