Import of Binutils from the FSF 2.12 branch (just post-.0 release).
These bits are taken from the FSF anoncvs repo on 20-March-2002 13:33:33 PST.
This commit is contained in:
parent
eb1d121cb5
commit
55ba99bb8d
@ -1,3 +1,8 @@
|
||||
2002-02-23 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* config.guess: Import from master sources, rev 1.232.
|
||||
* config.sub: Import from master sources, rev 1.246.
|
||||
|
||||
2002-02-09 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
Contribute sh64-elf.
|
||||
|
@ -1,3 +1,58 @@
|
||||
2002-03-20 Tom Rix <trix@redhat.com>
|
||||
|
||||
* coff-rs6000.c (_bfd_xcoff_stat_arch_elt): Renamed from
|
||||
_bfd_xcoff_generic_stat_arch_elt. Fix format check.
|
||||
* coff64-rs6000.c : Use _bfd_xcoff_stat_arch_elt.
|
||||
|
||||
Mon Mar 18 18:06:54 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* cpu-i386.c (bfd_x86_64_arch): Rename to "i386:x86-64"
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* configure.in: Set is_release=y for 2.12 release.
|
||||
* configure: Likewise.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* configure.in: Bump version to 2.12.
|
||||
* configure: Likewise.
|
||||
|
||||
2002-03-05 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* configure.in (WIN32LIBADD): Don't eval PICFLAG assignment.
|
||||
* configure: Regenerate.
|
||||
|
||||
2002-02-26 Andrew Macleod <amacleod@cygnus.com>
|
||||
|
||||
* elflink.h (elf_bfd_final_link): Don't crash on SHN_UNDEF local
|
||||
dynsyms.
|
||||
|
||||
2002-02-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_check_relocs): Warning fix.
|
||||
(ppc64_elf_relocate_section): Don't generate power4 style branch
|
||||
hints for *_BRTAKEN and *_BRNTAKEN relocs.
|
||||
|
||||
* elf64-ppc.c (STFD_FR0_0R1, LFD_FR0_0R1, BLR): Define.
|
||||
(struct ppc_link_hash_table): Add sfpr.
|
||||
(ppc64_elf_link_hash_table_create): Init it.
|
||||
(ppc64_elf_create_dynamic_sections): Split creation of .stub and
|
||||
.glink out to..
|
||||
(create_linkage_sections): ..here. Make .sfpr too.
|
||||
(ppc64_elf_check_relocs): Call create_linkage_sections, and set
|
||||
dynobj early.
|
||||
(MIN_SAVE_FPR, MAX_SAVE_FPR): Define.
|
||||
(ppc64_elf_func_desc_adjust): Look for missing ._savef* and
|
||||
._restf* functions, and create as needed.
|
||||
(func_desc_adjust): Only force_local for shared libs.
|
||||
|
||||
2002-02-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf64-sh64.c (sh_elf64_relocate_section): Fix a typo from my
|
||||
last patch.
|
||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
|
||||
|
||||
2002-02-20 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||
|
||||
* osf-core.c (osf_core_vec): OSF/1 (Digital Unix) core files are
|
||||
@ -527,6 +582,7 @@
|
||||
sym check if we find one.
|
||||
* elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
|
||||
* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
|
||||
* elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
|
||||
* elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
|
||||
(elf_s390_grok_prstatus): Add missing prototype.
|
||||
|
||||
|
@ -46,7 +46,7 @@ extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
|
||||
extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *));
|
||||
extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
|
||||
extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
|
||||
extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
|
||||
extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
|
||||
extern boolean _bfd_xcoff_write_armap
|
||||
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
|
||||
extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
|
||||
@ -1389,7 +1389,7 @@ _bfd_xcoff_openr_next_archived_file (archive, last_file)
|
||||
/* Stat an element in an XCOFF archive. */
|
||||
|
||||
int
|
||||
_bfd_xcoff_generic_stat_arch_elt (abfd, s)
|
||||
_bfd_xcoff_stat_arch_elt (abfd, s)
|
||||
bfd *abfd;
|
||||
struct stat *s;
|
||||
{
|
||||
@ -1399,7 +1399,7 @@ _bfd_xcoff_generic_stat_arch_elt (abfd, s)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (! xcoff_big_format_p (abfd))
|
||||
if (! xcoff_big_format_p (abfd->my_archive))
|
||||
{
|
||||
struct xcoff_ar_hdr *hdrp = arch_xhdr (abfd);
|
||||
|
||||
@ -3536,7 +3536,7 @@ const bfd_target rs6000coff_vec =
|
||||
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
|
||||
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
|
||||
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
|
||||
_bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
|
||||
_bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
|
||||
/* XCOFF archives do not have
|
||||
a timestamp. */
|
||||
bfd_true, /* _update_armap_timestamp */
|
||||
@ -3797,7 +3797,7 @@ const bfd_target pmac_xcoff_vec =
|
||||
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
|
||||
_bfd_xcoff_openr_next_archived_file, /* _openr_next_archived_file */
|
||||
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
|
||||
_bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
|
||||
_bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
|
||||
/* XCOFF archives do not have
|
||||
a timestamp. */
|
||||
bfd_true, /* _update_armap_timestamp */
|
||||
|
@ -103,7 +103,7 @@ extern reloc_howto_type * xcoff64_reloc_type_lookup
|
||||
extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *));
|
||||
extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *));
|
||||
extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *));
|
||||
extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
|
||||
extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *));
|
||||
extern boolean _bfd_xcoff_write_armap
|
||||
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
|
||||
extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *));
|
||||
@ -2577,9 +2577,9 @@ const bfd_target rs6000coff64_vec =
|
||||
bfd_dont_truncate_arname, /* _truncate_arname */
|
||||
_bfd_xcoff_write_armap, /* _write_armap */
|
||||
_bfd_xcoff_read_ar_hdr, /* _read_ar_hdr */
|
||||
xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
|
||||
xcoff64_openr_next_archived_file, /* _openr_next_archived_file */
|
||||
_bfd_generic_get_elt_at_index, /* _get_elt_at_index */
|
||||
_bfd_xcoff_generic_stat_arch_elt, /* _generic_dtat_arch_elt */
|
||||
_bfd_xcoff_stat_arch_elt, /* _generic_stat_arch_elt */
|
||||
/* XCOFF archives do not have
|
||||
a timestamp. */
|
||||
bfd_true, /* _update_armap_timestamp */
|
||||
|
596
contrib/binutils/bfd/configure
vendored
596
contrib/binutils/bfd/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -7,9 +7,9 @@ AC_INIT(libbfd.c)
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ISC_POSIX
|
||||
|
||||
AM_INIT_AUTOMAKE(bfd, 2.11.93)
|
||||
AM_INIT_AUTOMAKE(bfd, 2.12)
|
||||
# Uncomment the next line to remove the date from the reported bfd version
|
||||
#is_release=y
|
||||
is_release=y
|
||||
|
||||
changequote(,)dnl
|
||||
bfd_version=`echo "${VERSION}" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$/\1\2\3\4\5/'`
|
||||
@ -424,11 +424,10 @@ case "${host}" in
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
PICFLAG=
|
||||
changequote(,)dnl
|
||||
eval `grep "^[ ]*PICFLAG[ ]*=" ../libiberty/Makefile | sed -e "s/[ ]*//g"`
|
||||
changequote([,])dnl
|
||||
if test -n "$PICFLAG"; then
|
||||
changequote(,)dnl
|
||||
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | tail -1`
|
||||
changequote([,])dnl
|
||||
if test -n "$x"; then
|
||||
WIN32LIBADD="-L../libiberty/pic -liberty"
|
||||
fi
|
||||
;;
|
||||
|
@ -44,8 +44,8 @@ const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_i386,
|
||||
bfd_mach_x86_64_intel_syntax,
|
||||
"x86-64:intel",
|
||||
"x86-64:intel",
|
||||
"i386:intel",
|
||||
"i386:x86-64:intel",
|
||||
3,
|
||||
true,
|
||||
bfd_default_compatible,
|
||||
@ -75,8 +75,8 @@ const bfd_arch_info_type bfd_x86_64_arch =
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_i386,
|
||||
bfd_mach_x86_64,
|
||||
"x86-64",
|
||||
"x86-64",
|
||||
"i386",
|
||||
"i386:x86-64",
|
||||
3,
|
||||
true,
|
||||
bfd_default_compatible,
|
||||
|
@ -35,8 +35,8 @@ and 68020 and 68030 for Motorola 68020 and 68030.
|
||||
@example
|
||||
enum bfd_architecture
|
||||
@{
|
||||
bfd_arch_unknown, /* File arch not known */
|
||||
bfd_arch_obscure, /* Arch known, not one of these */
|
||||
bfd_arch_unknown, /* File arch not known. */
|
||||
bfd_arch_obscure, /* Arch known, not one of these. */
|
||||
bfd_arch_m68k, /* Motorola 68xxx */
|
||||
#define bfd_mach_m68000 1
|
||||
#define bfd_mach_m68008 2
|
||||
@ -58,7 +58,7 @@ enum bfd_architecture
|
||||
available to machines with higher numbers.
|
||||
The exception is the "ca", which is
|
||||
incompatible with all other machines except
|
||||
"core". */
|
||||
"core". */
|
||||
|
||||
#define bfd_mach_i960_core 1
|
||||
#define bfd_mach_i960_ka_sa 2
|
||||
@ -69,6 +69,8 @@ enum bfd_architecture
|
||||
#define bfd_mach_i960_jx 7
|
||||
#define bfd_mach_i960_hx 8
|
||||
|
||||
bfd_arch_or32, /* OpenRISC 32 */
|
||||
|
||||
bfd_arch_a29k, /* AMD 29000 */
|
||||
bfd_arch_sparc, /* SPARC */
|
||||
#define bfd_mach_sparc 1
|
||||
@ -76,12 +78,12 @@ enum bfd_architecture
|
||||
#define bfd_mach_sparc_sparclet 2
|
||||
#define bfd_mach_sparc_sparclite 3
|
||||
#define bfd_mach_sparc_v8plus 4
|
||||
#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns */
|
||||
#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
|
||||
#define bfd_mach_sparc_sparclite_le 6
|
||||
#define bfd_mach_sparc_v9 7
|
||||
#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns */
|
||||
#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns */
|
||||
#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns */
|
||||
#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
|
||||
#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
|
||||
#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
|
||||
/* Nonzero if MACH has the v9 instruction set. */
|
||||
#define bfd_mach_sparc_v9_p(mach) \
|
||||
((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
|
||||
@ -103,11 +105,10 @@ enum bfd_architecture
|
||||
#define bfd_mach_mips10000 10000
|
||||
#define bfd_mach_mips12000 12000
|
||||
#define bfd_mach_mips16 16
|
||||
#define bfd_mach_mips32 32
|
||||
#define bfd_mach_mips32_4k 3204113 /* 32, 04, octal 'K' */
|
||||
#define bfd_mach_mips5 5
|
||||
#define bfd_mach_mips64 64
|
||||
#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
|
||||
#define bfd_mach_mipsisa32 32
|
||||
#define bfd_mach_mipsisa64 64
|
||||
bfd_arch_i386, /* Intel 386 */
|
||||
#define bfd_mach_i386_i386 0
|
||||
#define bfd_mach_i386_i8086 1
|
||||
@ -127,8 +128,10 @@ enum bfd_architecture
|
||||
#define bfd_mach_h8300 1
|
||||
#define bfd_mach_h8300h 2
|
||||
#define bfd_mach_h8300s 3
|
||||
bfd_arch_pdp11, /* DEC PDP-11 */
|
||||
bfd_arch_powerpc, /* PowerPC */
|
||||
#define bfd_mach_ppc 0
|
||||
#define bfd_mach_ppc64 1
|
||||
#define bfd_mach_ppc_403 403
|
||||
#define bfd_mach_ppc_403gc 4030
|
||||
#define bfd_mach_ppc_505 505
|
||||
@ -170,11 +173,12 @@ enum bfd_architecture
|
||||
#define bfd_mach_sh3_dsp 0x3d
|
||||
#define bfd_mach_sh3e 0x3e
|
||||
#define bfd_mach_sh4 0x40
|
||||
#define bfd_mach_sh5 0x50
|
||||
bfd_arch_alpha, /* Dec Alpha */
|
||||
#define bfd_mach_alpha_ev4 0x10
|
||||
#define bfd_mach_alpha_ev5 0x20
|
||||
#define bfd_mach_alpha_ev6 0x30
|
||||
bfd_arch_arm, /* Advanced Risc Machines ARM */
|
||||
bfd_arch_arm, /* Advanced Risc Machines ARM. */
|
||||
#define bfd_mach_arm_2 1
|
||||
#define bfd_mach_arm_2a 2
|
||||
#define bfd_mach_arm_3 3
|
||||
@ -200,7 +204,7 @@ enum bfd_architecture
|
||||
#define bfd_mach_arc_7 2
|
||||
#define bfd_mach_arc_8 3
|
||||
bfd_arch_m32r, /* Mitsubishi M32R/D */
|
||||
#define bfd_mach_m32r 0 /* backwards compatibility */
|
||||
#define bfd_mach_m32r 0 /* For backwards compatibility. */
|
||||
#define bfd_mach_m32rx 'x'
|
||||
bfd_arch_mn10200, /* Matsushita MN10200 */
|
||||
bfd_arch_mn10300, /* Matsushita MN10300 */
|
||||
@ -213,13 +217,20 @@ enum bfd_architecture
|
||||
#define bfd_mach_ia64_elf64 0
|
||||
#define bfd_mach_ia64_elf32 1
|
||||
bfd_arch_pj,
|
||||
bfd_arch_avr, /* Atmel AVR microcontrollers */
|
||||
bfd_arch_avr, /* Atmel AVR microcontrollers. */
|
||||
#define bfd_mach_avr1 1
|
||||
#define bfd_mach_avr2 2
|
||||
#define bfd_mach_avr3 3
|
||||
#define bfd_mach_avr4 4
|
||||
#define bfd_mach_avr5 5
|
||||
bfd_arch_cris, /* Axis CRIS */
|
||||
bfd_arch_s390, /* IBM s390 */
|
||||
#define bfd_mach_s390_esa 0
|
||||
#define bfd_mach_s390_esame 1
|
||||
bfd_arch_openrisc, /* OpenRISC */
|
||||
bfd_arch_mmix, /* Donald Knuth's educational processor. */
|
||||
bfd_arch_xstormy16,
|
||||
#define bfd_mach_xstormy16 0
|
||||
bfd_arch_last
|
||||
@};
|
||||
@end example
|
||||
@ -251,7 +262,9 @@ typedef struct bfd_arch_info
|
||||
boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
|
||||
|
||||
const struct bfd_arch_info *next;
|
||||
@} bfd_arch_info_type;
|
||||
@}
|
||||
bfd_arch_info_type;
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_printable_name
|
||||
|
@ -12,121 +12,118 @@ to the rest of the data.
|
||||
|
||||
struct _bfd
|
||||
@{
|
||||
/* The filename the application opened the BFD with. */
|
||||
CONST char *filename;
|
||||
/* The filename the application opened the BFD with. */
|
||||
const char *filename;
|
||||
|
||||
/* A pointer to the target jump table. */
|
||||
const struct bfd_target *xvec;
|
||||
/* A pointer to the target jump table. */
|
||||
const struct bfd_target *xvec;
|
||||
|
||||
/* To avoid dragging too many header files into every file that
|
||||
includes `@code{bfd.h}', IOSTREAM has been declared as a "char
|
||||
*", and MTIME as a "long". Their correct types, to which they
|
||||
are cast when used, are "FILE *" and "time_t". The iostream
|
||||
is the result of an fopen on the filename. However, if the
|
||||
BFD_IN_MEMORY flag is set, then iostream is actually a pointer
|
||||
to a bfd_in_memory struct. */
|
||||
PTR iostream;
|
||||
/* To avoid dragging too many header files into every file that
|
||||
includes `@code{bfd.h}', IOSTREAM has been declared as a "char *",
|
||||
and MTIME as a "long". Their correct types, to which they
|
||||
are cast when used, are "FILE *" and "time_t". The iostream
|
||||
is the result of an fopen on the filename. However, if the
|
||||
BFD_IN_MEMORY flag is set, then iostream is actually a pointer
|
||||
to a bfd_in_memory struct. */
|
||||
PTR iostream;
|
||||
|
||||
/* Is the file descriptor being cached? That is, can it be closed as
|
||||
needed, and re-opened when accessed later? */
|
||||
/* Is the file descriptor being cached? That is, can it be closed as
|
||||
needed, and re-opened when accessed later? */
|
||||
boolean cacheable;
|
||||
|
||||
boolean cacheable;
|
||||
/* Marks whether there was a default target specified when the
|
||||
BFD was opened. This is used to select which matching algorithm
|
||||
to use to choose the back end. */
|
||||
boolean target_defaulted;
|
||||
|
||||
/* Marks whether there was a default target specified when the
|
||||
BFD was opened. This is used to select which matching algorithm
|
||||
to use to choose the back end. */
|
||||
/* The caching routines use these to maintain a
|
||||
least-recently-used list of BFDs. */
|
||||
struct _bfd *lru_prev, *lru_next;
|
||||
|
||||
boolean target_defaulted;
|
||||
/* When a file is closed by the caching routines, BFD retains
|
||||
state information on the file here... */
|
||||
ufile_ptr where;
|
||||
|
||||
/* The caching routines use these to maintain a
|
||||
least-recently-used list of BFDs */
|
||||
/* ... and here: (``once'' means at least once). */
|
||||
boolean opened_once;
|
||||
|
||||
struct _bfd *lru_prev, *lru_next;
|
||||
/* Set if we have a locally maintained mtime value, rather than
|
||||
getting it from the file each time. */
|
||||
boolean mtime_set;
|
||||
|
||||
/* When a file is closed by the caching routines, BFD retains
|
||||
state information on the file here: */
|
||||
/* File modified time, if mtime_set is true. */
|
||||
long mtime;
|
||||
|
||||
file_ptr where;
|
||||
/* Reserved for an unimplemented file locking extension. */
|
||||
int ifd;
|
||||
|
||||
/* and here: (``once'' means at least once) */
|
||||
/* The format which belongs to the BFD. (object, core, etc.) */
|
||||
bfd_format format;
|
||||
|
||||
boolean opened_once;
|
||||
/* The direction with which the BFD was opened. */
|
||||
enum bfd_direction
|
||||
@{
|
||||
no_direction = 0,
|
||||
read_direction = 1,
|
||||
write_direction = 2,
|
||||
both_direction = 3
|
||||
@}
|
||||
direction;
|
||||
|
||||
/* Set if we have a locally maintained mtime value, rather than
|
||||
getting it from the file each time: */
|
||||
/* Format_specific flags. */
|
||||
flagword flags;
|
||||
|
||||
boolean mtime_set;
|
||||
/* Currently my_archive is tested before adding origin to
|
||||
anything. I believe that this can become always an add of
|
||||
origin, with origin set to 0 for non archive files. */
|
||||
ufile_ptr origin;
|
||||
|
||||
/* File modified time, if mtime_set is true: */
|
||||
/* Remember when output has begun, to stop strange things
|
||||
from happening. */
|
||||
boolean output_has_begun;
|
||||
|
||||
long mtime;
|
||||
/* A hash table for section names. */
|
||||
struct bfd_hash_table section_htab;
|
||||
|
||||
/* Reserved for an unimplemented file locking extension.*/
|
||||
/* Pointer to linked list of sections. */
|
||||
struct sec *sections;
|
||||
|
||||
int ifd;
|
||||
/* The place where we add to the section list. */
|
||||
struct sec **section_tail;
|
||||
|
||||
/* The format which belongs to the BFD. (object, core, etc.) */
|
||||
/* The number of sections. */
|
||||
unsigned int section_count;
|
||||
|
||||
bfd_format format;
|
||||
/* Stuff only useful for object files:
|
||||
The start address. */
|
||||
bfd_vma start_address;
|
||||
|
||||
/* The direction the BFD was opened with*/
|
||||
/* Used for input and output. */
|
||||
unsigned int symcount;
|
||||
|
||||
enum bfd_direction @{no_direction = 0,
|
||||
read_direction = 1,
|
||||
write_direction = 2,
|
||||
both_direction = 3@} direction;
|
||||
/* Symbol table for output BFD (with symcount entries). */
|
||||
struct symbol_cache_entry **outsymbols;
|
||||
|
||||
/* Format_specific flags*/
|
||||
/* Pointer to structure which contains architecture information. */
|
||||
const struct bfd_arch_info *arch_info;
|
||||
|
||||
flagword flags;
|
||||
/* Stuff only useful for archives. */
|
||||
PTR arelt_data;
|
||||
struct _bfd *my_archive; /* The containing archive BFD. */
|
||||
struct _bfd *next; /* The next BFD in the archive. */
|
||||
struct _bfd *archive_head; /* The first BFD in the archive. */
|
||||
boolean has_armap;
|
||||
|
||||
/* Currently my_archive is tested before adding origin to
|
||||
anything. I believe that this can become always an add of
|
||||
origin, with origin set to 0 for non archive files. */
|
||||
/* A chain of BFD structures involved in a link. */
|
||||
struct _bfd *link_next;
|
||||
|
||||
file_ptr origin;
|
||||
/* A field used by _bfd_generic_link_add_archive_symbols. This will
|
||||
be used only for archive elements. */
|
||||
int archive_pass;
|
||||
|
||||
/* Remember when output has begun, to stop strange things
|
||||
from happening. */
|
||||
boolean output_has_begun;
|
||||
|
||||
/* Pointer to linked list of sections*/
|
||||
struct sec *sections;
|
||||
|
||||
/* The number of sections */
|
||||
unsigned int section_count;
|
||||
|
||||
/* Stuff only useful for object files:
|
||||
The start address. */
|
||||
bfd_vma start_address;
|
||||
|
||||
/* Used for input and output*/
|
||||
unsigned int symcount;
|
||||
|
||||
/* Symbol table for output BFD (with symcount entries) */
|
||||
struct symbol_cache_entry **outsymbols;
|
||||
|
||||
/* Pointer to structure which contains architecture information*/
|
||||
const struct bfd_arch_info *arch_info;
|
||||
|
||||
/* Stuff only useful for archives:*/
|
||||
PTR arelt_data;
|
||||
struct _bfd *my_archive; /* The containing archive BFD. */
|
||||
struct _bfd *next; /* The next BFD in the archive. */
|
||||
struct _bfd *archive_head; /* The first BFD in the archive. */
|
||||
boolean has_armap;
|
||||
|
||||
/* A chain of BFD structures involved in a link. */
|
||||
struct _bfd *link_next;
|
||||
|
||||
/* A field used by _bfd_generic_link_add_archive_symbols. This will
|
||||
be used only for archive elements. */
|
||||
int archive_pass;
|
||||
|
||||
/* Used by the back end to hold private data. */
|
||||
|
||||
union
|
||||
@{
|
||||
/* Used by the back end to hold private data. */
|
||||
union
|
||||
@{
|
||||
struct aout_data_struct *aout_data;
|
||||
struct artdata *aout_ar_data;
|
||||
struct _oasys_data *oasys_obj_data;
|
||||
@ -143,6 +140,7 @@ struct _bfd
|
||||
struct elf_obj_tdata *elf_obj_data;
|
||||
struct nlm_obj_tdata *nlm_obj_data;
|
||||
struct bout_data_struct *bout_data;
|
||||
struct mmo_data_struct *mmo_data;
|
||||
struct sun_core_struct *sun_core_data;
|
||||
struct sco5_core_struct *sco5_core_data;
|
||||
struct trad_core_struct *trad_core_data;
|
||||
@ -156,15 +154,16 @@ struct _bfd
|
||||
struct versados_data_struct *versados_data;
|
||||
struct netbsd_core_struct *netbsd_core_data;
|
||||
PTR any;
|
||||
@} tdata;
|
||||
@}
|
||||
tdata;
|
||||
|
||||
/* Used by the application to hold private data*/
|
||||
PTR usrdata;
|
||||
/* Used by the application to hold private data. */
|
||||
PTR usrdata;
|
||||
|
||||
/* Where all the allocated stuff under this BFD goes. This is a
|
||||
struct objalloc *, but we use PTR to avoid requiring the inclusion of
|
||||
objalloc.h. */
|
||||
PTR memory;
|
||||
PTR memory;
|
||||
@};
|
||||
|
||||
@end example
|
||||
@ -192,6 +191,7 @@ typedef enum bfd_error
|
||||
bfd_error_system_call,
|
||||
bfd_error_invalid_target,
|
||||
bfd_error_wrong_format,
|
||||
bfd_error_wrong_object_format,
|
||||
bfd_error_invalid_operation,
|
||||
bfd_error_no_memory,
|
||||
bfd_error_no_symbols,
|
||||
@ -207,7 +207,8 @@ typedef enum bfd_error
|
||||
bfd_error_file_truncated,
|
||||
bfd_error_file_too_big,
|
||||
bfd_error_invalid_error_code
|
||||
@} bfd_error_type;
|
||||
@}
|
||||
bfd_error_type;
|
||||
|
||||
@end example
|
||||
@findex bfd_get_error
|
||||
@ -232,7 +233,7 @@ Set the BFD error condition to be @var{error_tag}.
|
||||
@subsubsection @code{bfd_errmsg}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
CONST char *bfd_errmsg (bfd_error_type error_tag);
|
||||
const char *bfd_errmsg (bfd_error_type error_tag);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return a string describing the error @var{error_tag}, or
|
||||
@ -242,7 +243,7 @@ the system error if @var{error_tag} is @code{bfd_error_system_call}.
|
||||
@subsubsection @code{bfd_perror}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_perror (CONST char *message);
|
||||
void bfd_perror (const char *message);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Print to the standard error stream a string describing the
|
||||
@ -295,6 +296,17 @@ bfd_error_handler_type bfd_get_error_handler (void);
|
||||
@strong{Description}@*
|
||||
Return the BFD error handler function.
|
||||
|
||||
@findex bfd_archive_filename
|
||||
@subsubsection @code{bfd_archive_filename}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
const char *bfd_archive_filename (bfd *);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
For a BFD that is a component of an archive, returns a string
|
||||
with both the archive name and file name. For other BFDs, just
|
||||
returns the file name.
|
||||
|
||||
@section Symbols
|
||||
|
||||
|
||||
@ -336,7 +348,7 @@ reasons.
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_set_reloc
|
||||
(bfd *abfd, asection *sec, arelent **rel, unsigned int count)
|
||||
(bfd *abfd, asection *sec, arelent **rel, unsigned int count);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Set the relocation pointer and count within
|
||||
@ -456,7 +468,7 @@ size reasonable?".
|
||||
@subsubsection @code{bfd_get_gp_size}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
int bfd_get_gp_size(bfd *abfd);
|
||||
unsigned int bfd_get_gp_size(bfd *abfd);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return the maximum size of objects to be optimized using the GP
|
||||
@ -467,7 +479,7 @@ argument to the compiler, assembler or linker.
|
||||
@subsubsection @code{bfd_set_gp_size}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_set_gp_size(bfd *abfd, int i);
|
||||
void bfd_set_gp_size(bfd *abfd, unsigned int i);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Set the maximum size of objects to be optimized using the GP
|
||||
@ -478,7 +490,7 @@ the @code{-G} argument to the compiler, assembler or linker.
|
||||
@subsubsection @code{bfd_scan_vma}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
bfd_vma bfd_scan_vma(CONST char *string, CONST char **end, int base);
|
||||
bfd_vma bfd_scan_vma(const char *string, const char **end, int base);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Convert, like @code{strtoul}, a numerical expression
|
||||
@ -598,6 +610,9 @@ Stuff which should be documented:
|
||||
#define bfd_gc_sections(abfd, link_info) \
|
||||
BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
|
||||
|
||||
#define bfd_merge_sections(abfd, link_info) \
|
||||
BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
|
||||
|
||||
#define bfd_link_hash_table_create(abfd) \
|
||||
BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
|
||||
|
||||
@ -632,3 +647,16 @@ extern bfd_byte *bfd_get_relocated_section_contents
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_alt_mach_code
|
||||
@subsubsection @code{bfd_alt_mach_code}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
boolean bfd_alt_mach_code(bfd *abfd, int index);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
When more than one machine code number is available for the
|
||||
same machine type, this function can be used to switch between
|
||||
the preferred one (index == 0) and any others. Currently,
|
||||
only ELF supports this feature, with up to two alternate
|
||||
machine codes.
|
||||
|
||||
|
@ -211,39 +211,37 @@ The hidden information for an @code{asymbol} is described in a
|
||||
|
||||
typedef struct coff_ptr_struct
|
||||
@{
|
||||
/* Remembers the offset from the first symbol in the file for
|
||||
this symbol. Generated by coff_renumber_symbols. */
|
||||
unsigned int offset;
|
||||
|
||||
/* Remembers the offset from the first symbol in the file for
|
||||
this symbol. Generated by coff_renumber_symbols. */
|
||||
unsigned int offset;
|
||||
/* Should the value of this symbol be renumbered. Used for
|
||||
XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */
|
||||
unsigned int fix_value : 1;
|
||||
|
||||
/* Should the value of this symbol be renumbered. Used for
|
||||
XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */
|
||||
unsigned int fix_value : 1;
|
||||
/* Should the tag field of this symbol be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_tag : 1;
|
||||
|
||||
/* Should the tag field of this symbol be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_tag : 1;
|
||||
/* Should the endidx field of this symbol be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_end : 1;
|
||||
|
||||
/* Should the endidx field of this symbol be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_end : 1;
|
||||
/* Should the x_csect.x_scnlen field be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_scnlen : 1;
|
||||
|
||||
/* Should the x_csect.x_scnlen field be renumbered.
|
||||
Created by coff_pointerize_aux. */
|
||||
unsigned int fix_scnlen : 1;
|
||||
/* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the
|
||||
index into the line number entries. Set by coff_slurp_symbol_table. */
|
||||
unsigned int fix_line : 1;
|
||||
|
||||
/* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the
|
||||
index into the line number entries. Set by
|
||||
coff_slurp_symbol_table. */
|
||||
unsigned int fix_line : 1;
|
||||
|
||||
/* The container for the symbol structure as read and translated
|
||||
from the file. */
|
||||
|
||||
union @{
|
||||
union internal_auxent auxent;
|
||||
struct internal_syment syment;
|
||||
@} u;
|
||||
/* The container for the symbol structure as read and translated
|
||||
from the file. */
|
||||
union
|
||||
@{
|
||||
union internal_auxent auxent;
|
||||
struct internal_syment syment;
|
||||
@} u;
|
||||
@} combined_entry_type;
|
||||
|
||||
|
||||
@ -251,17 +249,17 @@ union @{
|
||||
|
||||
typedef struct coff_symbol_struct
|
||||
@{
|
||||
/* The actual symbol which the rest of BFD works with */
|
||||
asymbol symbol;
|
||||
/* The actual symbol which the rest of BFD works with */
|
||||
asymbol symbol;
|
||||
|
||||
/* A pointer to the hidden information for this symbol */
|
||||
combined_entry_type *native;
|
||||
/* A pointer to the hidden information for this symbol */
|
||||
combined_entry_type *native;
|
||||
|
||||
/* A pointer to the linenumber information for this symbol */
|
||||
struct lineno_cache_entry *lineno;
|
||||
/* A pointer to the linenumber information for this symbol */
|
||||
struct lineno_cache_entry *lineno;
|
||||
|
||||
/* Have the line numbers been relocated yet ? */
|
||||
boolean done_lineno;
|
||||
/* Have the line numbers been relocated yet ? */
|
||||
boolean done_lineno;
|
||||
@} coff_symbol_type;
|
||||
@end example
|
||||
@findex bfd_coff_backend_data
|
||||
@ -289,234 +287,166 @@ Special entry points for gdb to swap in coff symbol table parts:
|
||||
@example
|
||||
typedef struct
|
||||
@{
|
||||
void (*_bfd_coff_swap_aux_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
int type,
|
||||
int class,
|
||||
int indaux,
|
||||
int numaux,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_aux_in)
|
||||
PARAMS ((bfd *, PTR, int, int, int, int, PTR));
|
||||
|
||||
void (*_bfd_coff_swap_sym_in) PARAMS ((
|
||||
bfd *abfd ,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_sym_in)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
void (*_bfd_coff_swap_lineno_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_lineno_in)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
@end example
|
||||
Special entry points for gas to swap out coff parts:
|
||||
@example
|
||||
unsigned int (*_bfd_coff_swap_aux_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
int type,
|
||||
int class,
|
||||
int indaux,
|
||||
int numaux,
|
||||
PTR ext));
|
||||
unsigned int (*_bfd_coff_swap_aux_out)
|
||||
PARAMS ((bfd *, PTR, int, int, int, int, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_sym_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
PTR ext));
|
||||
unsigned int (*_bfd_coff_swap_sym_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_lineno_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
PTR ext));
|
||||
unsigned int (*_bfd_coff_swap_lineno_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_reloc_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR src,
|
||||
PTR dst));
|
||||
unsigned int (*_bfd_coff_swap_reloc_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_filehdr_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
PTR out));
|
||||
unsigned int (*_bfd_coff_swap_filehdr_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_aouthdr_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
PTR out));
|
||||
unsigned int (*_bfd_coff_swap_aouthdr_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
unsigned int (*_bfd_coff_swap_scnhdr_out) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR in,
|
||||
PTR out));
|
||||
unsigned int (*_bfd_coff_swap_scnhdr_out)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
@end example
|
||||
Special entry points for generic COFF routines to call target
|
||||
dependent COFF routines:
|
||||
@example
|
||||
unsigned int _bfd_filhsz;
|
||||
unsigned int _bfd_aoutsz;
|
||||
unsigned int _bfd_scnhsz;
|
||||
unsigned int _bfd_symesz;
|
||||
unsigned int _bfd_auxesz;
|
||||
unsigned int _bfd_relsz;
|
||||
unsigned int _bfd_linesz;
|
||||
unsigned int _bfd_filnmlen;
|
||||
boolean _bfd_coff_long_filenames;
|
||||
boolean _bfd_coff_long_section_names;
|
||||
unsigned int _bfd_coff_default_section_alignment_power;
|
||||
boolean _bfd_coff_force_symnames_in_strings;
|
||||
unsigned int _bfd_coff_debug_string_prefix_length;
|
||||
void (*_bfd_coff_swap_filehdr_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_aouthdr_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_scnhdr_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
void (*_bfd_coff_swap_reloc_in) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR ext,
|
||||
PTR in));
|
||||
boolean (*_bfd_coff_bad_format_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR internal_filehdr));
|
||||
boolean (*_bfd_coff_set_arch_mach_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR internal_filehdr));
|
||||
PTR (*_bfd_coff_mkobject_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR internal_filehdr,
|
||||
PTR internal_aouthdr));
|
||||
flagword (*_bfd_styp_to_sec_flags_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
PTR internal_scnhdr,
|
||||
const char *name,
|
||||
asection *section));
|
||||
void (*_bfd_set_alignment_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
asection *sec,
|
||||
PTR internal_scnhdr));
|
||||
boolean (*_bfd_coff_slurp_symbol_table) PARAMS ((
|
||||
bfd *abfd));
|
||||
boolean (*_bfd_coff_symname_in_debug) PARAMS ((
|
||||
bfd *abfd,
|
||||
struct internal_syment *sym));
|
||||
boolean (*_bfd_coff_pointerize_aux_hook) PARAMS ((
|
||||
bfd *abfd,
|
||||
combined_entry_type *table_base,
|
||||
combined_entry_type *symbol,
|
||||
unsigned int indaux,
|
||||
combined_entry_type *aux));
|
||||
boolean (*_bfd_coff_print_aux) PARAMS ((
|
||||
bfd *abfd,
|
||||
FILE *file,
|
||||
combined_entry_type *table_base,
|
||||
combined_entry_type *symbol,
|
||||
combined_entry_type *aux,
|
||||
unsigned int indaux));
|
||||
void (*_bfd_coff_reloc16_extra_cases) PARAMS ((
|
||||
bfd *abfd,
|
||||
struct bfd_link_info *link_info,
|
||||
struct bfd_link_order *link_order,
|
||||
arelent *reloc,
|
||||
bfd_byte *data,
|
||||
unsigned int *src_ptr,
|
||||
unsigned int *dst_ptr));
|
||||
int (*_bfd_coff_reloc16_estimate) PARAMS ((
|
||||
bfd *abfd,
|
||||
asection *input_section,
|
||||
arelent *r,
|
||||
unsigned int shrink,
|
||||
struct bfd_link_info *link_info));
|
||||
enum coff_symbol_classification (*_bfd_coff_classify_symbol) PARAMS ((
|
||||
bfd *abfd,
|
||||
struct internal_syment *));
|
||||
boolean (*_bfd_coff_compute_section_file_positions) PARAMS ((
|
||||
bfd *abfd));
|
||||
boolean (*_bfd_coff_start_final_link) PARAMS ((
|
||||
bfd *output_bfd,
|
||||
struct bfd_link_info *info));
|
||||
boolean (*_bfd_coff_relocate_section) PARAMS ((
|
||||
bfd *output_bfd,
|
||||
struct bfd_link_info *info,
|
||||
bfd *input_bfd,
|
||||
asection *input_section,
|
||||
bfd_byte *contents,
|
||||
struct internal_reloc *relocs,
|
||||
struct internal_syment *syms,
|
||||
asection **sections));
|
||||
reloc_howto_type *(*_bfd_coff_rtype_to_howto) PARAMS ((
|
||||
bfd *abfd,
|
||||
asection *sec,
|
||||
struct internal_reloc *rel,
|
||||
struct coff_link_hash_entry *h,
|
||||
struct internal_syment *sym,
|
||||
bfd_vma *addendp));
|
||||
boolean (*_bfd_coff_adjust_symndx) PARAMS ((
|
||||
bfd *obfd,
|
||||
struct bfd_link_info *info,
|
||||
bfd *ibfd,
|
||||
asection *sec,
|
||||
struct internal_reloc *reloc,
|
||||
boolean *adjustedp));
|
||||
boolean (*_bfd_coff_link_add_one_symbol) PARAMS ((
|
||||
struct bfd_link_info *info,
|
||||
bfd *abfd,
|
||||
const char *name,
|
||||
flagword flags,
|
||||
asection *section,
|
||||
bfd_vma value,
|
||||
const char *string,
|
||||
boolean copy,
|
||||
boolean collect,
|
||||
struct bfd_link_hash_entry **hashp));
|
||||
unsigned int _bfd_filhsz;
|
||||
unsigned int _bfd_aoutsz;
|
||||
unsigned int _bfd_scnhsz;
|
||||
unsigned int _bfd_symesz;
|
||||
unsigned int _bfd_auxesz;
|
||||
unsigned int _bfd_relsz;
|
||||
unsigned int _bfd_linesz;
|
||||
unsigned int _bfd_filnmlen;
|
||||
boolean _bfd_coff_long_filenames;
|
||||
boolean _bfd_coff_long_section_names;
|
||||
unsigned int _bfd_coff_default_section_alignment_power;
|
||||
boolean _bfd_coff_force_symnames_in_strings;
|
||||
unsigned int _bfd_coff_debug_string_prefix_length;
|
||||
|
||||
boolean (*_bfd_coff_link_output_has_begun) PARAMS ((
|
||||
bfd * abfd,
|
||||
struct coff_final_link_info * pfinfo));
|
||||
boolean (*_bfd_coff_final_link_postscript) PARAMS ((
|
||||
bfd * abfd,
|
||||
struct coff_final_link_info * pfinfo));
|
||||
void (*_bfd_coff_swap_filehdr_in)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
void (*_bfd_coff_swap_aouthdr_in)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
void (*_bfd_coff_swap_scnhdr_in)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
void (*_bfd_coff_swap_reloc_in)
|
||||
PARAMS ((bfd *abfd, PTR, PTR));
|
||||
|
||||
boolean (*_bfd_coff_bad_format_hook)
|
||||
PARAMS ((bfd *, PTR));
|
||||
|
||||
boolean (*_bfd_coff_set_arch_mach_hook)
|
||||
PARAMS ((bfd *, PTR));
|
||||
|
||||
PTR (*_bfd_coff_mkobject_hook)
|
||||
PARAMS ((bfd *, PTR, PTR));
|
||||
|
||||
boolean (*_bfd_styp_to_sec_flags_hook)
|
||||
PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
|
||||
|
||||
void (*_bfd_set_alignment_hook)
|
||||
PARAMS ((bfd *, asection *, PTR));
|
||||
|
||||
boolean (*_bfd_coff_slurp_symbol_table)
|
||||
PARAMS ((bfd *));
|
||||
|
||||
boolean (*_bfd_coff_symname_in_debug)
|
||||
PARAMS ((bfd *, struct internal_syment *));
|
||||
|
||||
boolean (*_bfd_coff_pointerize_aux_hook)
|
||||
PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
|
||||
unsigned int, combined_entry_type *));
|
||||
|
||||
boolean (*_bfd_coff_print_aux)
|
||||
PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
|
||||
combined_entry_type *, unsigned int));
|
||||
|
||||
void (*_bfd_coff_reloc16_extra_cases)
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
|
||||
bfd_byte *, unsigned int *, unsigned int *));
|
||||
|
||||
int (*_bfd_coff_reloc16_estimate)
|
||||
PARAMS ((bfd *, asection *, arelent *, unsigned int,
|
||||
struct bfd_link_info *));
|
||||
|
||||
enum coff_symbol_classification (*_bfd_coff_classify_symbol)
|
||||
PARAMS ((bfd *, struct internal_syment *));
|
||||
|
||||
boolean (*_bfd_coff_compute_section_file_positions)
|
||||
PARAMS ((bfd *));
|
||||
|
||||
boolean (*_bfd_coff_start_final_link)
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
|
||||
boolean (*_bfd_coff_relocate_section)
|
||||
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
|
||||
struct internal_reloc *, struct internal_syment *, asection **));
|
||||
|
||||
reloc_howto_type *(*_bfd_coff_rtype_to_howto)
|
||||
PARAMS ((bfd *, asection *, struct internal_reloc *,
|
||||
struct coff_link_hash_entry *, struct internal_syment *,
|
||||
bfd_vma *));
|
||||
|
||||
boolean (*_bfd_coff_adjust_symndx)\
|
||||
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
|
||||
struct internal_reloc *, boolean *));
|
||||
|
||||
boolean (*_bfd_coff_link_add_one_symbol)
|
||||
PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
|
||||
asection *, bfd_vma, const char *, boolean, boolean,
|
||||
struct bfd_link_hash_entry **));
|
||||
|
||||
boolean (*_bfd_coff_link_output_has_begun)
|
||||
PARAMS ((bfd *, struct coff_final_link_info *));
|
||||
|
||||
boolean (*_bfd_coff_final_link_postscript)
|
||||
PARAMS ((bfd *, struct coff_final_link_info *));
|
||||
|
||||
@} bfd_coff_backend_data;
|
||||
|
||||
#define coff_backend_info(abfd) ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
|
||||
#define coff_backend_info(abfd) \
|
||||
((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
|
||||
|
||||
#define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
|
||||
((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
|
||||
((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
|
||||
|
||||
#define bfd_coff_swap_sym_in(a,e,i) \
|
||||
((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
|
||||
((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
|
||||
|
||||
#define bfd_coff_swap_lineno_in(a,e,i) \
|
||||
((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
|
||||
((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
|
||||
|
||||
#define bfd_coff_swap_reloc_out(abfd, i, o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_lineno_out(abfd, i, o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
|
||||
((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
|
||||
((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
|
||||
|
||||
#define bfd_coff_swap_sym_out(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_scnhdr_out(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_filehdr_out(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_aouthdr_out(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
|
||||
#define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
|
||||
@ -526,90 +456,91 @@ dependent COFF routines:
|
||||
#define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz)
|
||||
#define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
|
||||
#define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
|
||||
#define bfd_coff_long_filenames(abfd) (coff_backend_info (abfd)->_bfd_coff_long_filenames)
|
||||
#define bfd_coff_long_filenames(abfd) \
|
||||
(coff_backend_info (abfd)->_bfd_coff_long_filenames)
|
||||
#define bfd_coff_long_section_names(abfd) \
|
||||
(coff_backend_info (abfd)->_bfd_coff_long_section_names)
|
||||
(coff_backend_info (abfd)->_bfd_coff_long_section_names)
|
||||
#define bfd_coff_default_section_alignment_power(abfd) \
|
||||
(coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
|
||||
(coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
|
||||
#define bfd_coff_swap_filehdr_in(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_aouthdr_in(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_scnhdr_in(abfd, i,o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_swap_reloc_in(abfd, i, o) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
|
||||
((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
|
||||
|
||||
#define bfd_coff_bad_format_hook(abfd, filehdr) \
|
||||
((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
|
||||
((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
|
||||
|
||||
#define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
|
||||
((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
|
||||
#define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr))
|
||||
((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr))
|
||||
|
||||
#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section)\
|
||||
((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
|
||||
(abfd, scnhdr, name, section))
|
||||
#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
|
||||
((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
|
||||
(abfd, scnhdr, name, section, flags_ptr))
|
||||
|
||||
#define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
|
||||
((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
|
||||
((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
|
||||
|
||||
#define bfd_coff_slurp_symbol_table(abfd)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
|
||||
((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
|
||||
|
||||
#define bfd_coff_symname_in_debug(abfd, sym)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
|
||||
((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
|
||||
|
||||
#define bfd_coff_force_symnames_in_strings(abfd)\
|
||||
(coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
|
||||
(coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
|
||||
|
||||
#define bfd_coff_debug_string_prefix_length(abfd)\
|
||||
(coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
|
||||
(coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
|
||||
|
||||
#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_print_aux)\
|
||||
(abfd, file, base, symbol, aux, indaux))
|
||||
((coff_backend_info (abfd)->_bfd_coff_print_aux)\
|
||||
(abfd, file, base, symbol, aux, indaux))
|
||||
|
||||
#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
|
||||
(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
|
||||
((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
|
||||
(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
|
||||
|
||||
#define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
|
||||
(abfd, section, reloc, shrink, link_info))
|
||||
((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
|
||||
(abfd, section, reloc, shrink, link_info))
|
||||
|
||||
#define bfd_coff_classify_symbol(abfd, sym)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
|
||||
(abfd, sym))
|
||||
((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
|
||||
(abfd, sym))
|
||||
|
||||
#define bfd_coff_compute_section_file_positions(abfd)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
|
||||
(abfd))
|
||||
((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
|
||||
(abfd))
|
||||
|
||||
#define bfd_coff_start_final_link(obfd, info)\
|
||||
((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
|
||||
(obfd, info))
|
||||
((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
|
||||
(obfd, info))
|
||||
#define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
|
||||
((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
|
||||
(obfd, info, ibfd, o, con, rel, isyms, secs))
|
||||
((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
|
||||
(obfd, info, ibfd, o, con, rel, isyms, secs))
|
||||
#define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
|
||||
(abfd, sec, rel, h, sym, addendp))
|
||||
((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
|
||||
(abfd, sec, rel, h, sym, addendp))
|
||||
#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
|
||||
(obfd, info, ibfd, sec, rel, adjustedp))
|
||||
((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
|
||||
(obfd, info, ibfd, sec, rel, adjustedp))
|
||||
#define bfd_coff_link_add_one_symbol(info,abfd,name,flags,section,value,string,cp,coll,hashp)\
|
||||
((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
|
||||
(info, abfd, name, flags, section, value, string, cp, coll, hashp))
|
||||
((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
|
||||
(info, abfd, name, flags, section, value, string, cp, coll, hashp))
|
||||
|
||||
#define bfd_coff_link_output_has_begun(a,p) \
|
||||
((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a,p))
|
||||
((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a,p))
|
||||
#define bfd_coff_final_link_postscript(a,p) \
|
||||
((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p))
|
||||
((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p))
|
||||
|
||||
@end example
|
||||
@subsubsection Writing relocations
|
||||
|
@ -8,7 +8,7 @@ These are functions pertaining to core files.
|
||||
@subsubsection @code{bfd_core_file_failing_command}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
CONST char *bfd_core_file_failing_command(bfd *abfd);
|
||||
const char *bfd_core_file_failing_command(bfd *abfd);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return a read-only string explaining which program was running
|
||||
|
@ -99,7 +99,7 @@ is not open for writing, then an error occurs.
|
||||
@subsubsection @code{bfd_format_string}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
CONST char *bfd_format_string(bfd_format format);
|
||||
const char *bfd_format_string(bfd_format format);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return a pointer to a const string
|
||||
|
@ -10,7 +10,7 @@ completeness.
|
||||
@subsubsection @code{bfd_write_bigendian_4byte_int}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_write_bigendian_4byte_int(bfd *abfd, int i);
|
||||
void bfd_write_bigendian_4byte_int (bfd *, unsigned int);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Write a 4 byte integer @var{i} to the output BFD @var{abfd}, in big
|
||||
@ -47,9 +47,9 @@ To detect calling these with less than a @code{bfd_vma}, use
|
||||
#define bfd_put_signed_8 \
|
||||
bfd_put_8
|
||||
#define bfd_get_8(abfd, ptr) \
|
||||
(*(unsigned char *) (ptr))
|
||||
(*(unsigned char *) (ptr) & 0xff)
|
||||
#define bfd_get_signed_8(abfd, ptr) \
|
||||
((*(unsigned char *) (ptr) ^ 0x80) - 0x80)
|
||||
(((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
|
||||
|
||||
#define bfd_put_16(abfd, val, ptr) \
|
||||
BFD_SEND(abfd, bfd_putx16, ((val),(ptr)))
|
||||
@ -79,14 +79,14 @@ To detect calling these with less than a @code{bfd_vma}, use
|
||||
BFD_SEND(abfd, bfd_getx_signed_64, (ptr))
|
||||
|
||||
#define bfd_get(bits, abfd, ptr) \
|
||||
((bits) == 8 ? bfd_get_8 (abfd, ptr) \
|
||||
( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
|
||||
: (bits) == 16 ? bfd_get_16 (abfd, ptr) \
|
||||
: (bits) == 32 ? bfd_get_32 (abfd, ptr) \
|
||||
: (bits) == 64 ? bfd_get_64 (abfd, ptr) \
|
||||
: (abort (), (bfd_vma) - 1))
|
||||
|
||||
#define bfd_put(bits, abfd, val, ptr) \
|
||||
((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
|
||||
( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
|
||||
: (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
|
||||
: (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
|
||||
: (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
|
||||
@ -98,7 +98,7 @@ To detect calling these with less than a @code{bfd_vma}, use
|
||||
@subsubsection @code{bfd_h_put_size}
|
||||
@strong{Description}@*
|
||||
These macros have the same function as their @code{bfd_get_x}
|
||||
bretheren, except that they are used for removing information
|
||||
brethren, except that they are used for removing information
|
||||
for the header records of object files. Believe it or not,
|
||||
some object files keep their header records in big endian
|
||||
order and their data in little endian order.
|
||||
@ -107,40 +107,88 @@ order and their data in little endian order.
|
||||
/* Byte swapping macros for file header data. */
|
||||
|
||||
#define bfd_h_put_8(abfd, val, ptr) \
|
||||
bfd_put_8 (abfd, val, ptr)
|
||||
bfd_put_8 (abfd, val, ptr)
|
||||
#define bfd_h_put_signed_8(abfd, val, ptr) \
|
||||
bfd_put_8 (abfd, val, ptr)
|
||||
bfd_put_8 (abfd, val, ptr)
|
||||
#define bfd_h_get_8(abfd, ptr) \
|
||||
bfd_get_8 (abfd, ptr)
|
||||
bfd_get_8 (abfd, ptr)
|
||||
#define bfd_h_get_signed_8(abfd, ptr) \
|
||||
bfd_get_signed_8 (abfd, ptr)
|
||||
bfd_get_signed_8 (abfd, ptr)
|
||||
|
||||
#define bfd_h_put_16(abfd, val, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_putx16,(val,ptr))
|
||||
BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
|
||||
#define bfd_h_put_signed_16 \
|
||||
bfd_h_put_16
|
||||
bfd_h_put_16
|
||||
#define bfd_h_get_16(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx16,(ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx16, (ptr))
|
||||
#define bfd_h_get_signed_16(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx_signed_16, (ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
|
||||
|
||||
#define bfd_h_put_32(abfd, val, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_putx32,(val,ptr))
|
||||
BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
|
||||
#define bfd_h_put_signed_32 \
|
||||
bfd_h_put_32
|
||||
bfd_h_put_32
|
||||
#define bfd_h_get_32(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx32,(ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx32, (ptr))
|
||||
#define bfd_h_get_signed_32(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx_signed_32, (ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
|
||||
|
||||
#define bfd_h_put_64(abfd, val, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_putx64,(val, ptr))
|
||||
BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
|
||||
#define bfd_h_put_signed_64 \
|
||||
bfd_h_put_64
|
||||
bfd_h_put_64
|
||||
#define bfd_h_get_64(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx64,(ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx64, (ptr))
|
||||
#define bfd_h_get_signed_64(abfd, ptr) \
|
||||
BFD_SEND(abfd, bfd_h_getx_signed_64, (ptr))
|
||||
BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
|
||||
|
||||
/* Refinements on the above, which should eventually go away. Save
|
||||
cluttering the source with (bfd_vma) and (bfd_byte *) casts. */
|
||||
|
||||
#define H_PUT_64(abfd, val, where) \
|
||||
bfd_h_put_64 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_32(abfd, val, where) \
|
||||
bfd_h_put_32 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_16(abfd, val, where) \
|
||||
bfd_h_put_16 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_8 bfd_h_put_8
|
||||
|
||||
#define H_PUT_S64(abfd, val, where) \
|
||||
bfd_h_put_signed_64 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_S32(abfd, val, where) \
|
||||
bfd_h_put_signed_32 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_S16(abfd, val, where) \
|
||||
bfd_h_put_signed_16 ((abfd), (bfd_vma) (val), (bfd_byte *) (where))
|
||||
|
||||
#define H_PUT_S8 bfd_h_put_signed_8
|
||||
|
||||
#define H_GET_64(abfd, where) \
|
||||
bfd_h_get_64 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_32(abfd, where) \
|
||||
bfd_h_get_32 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_16(abfd, where) \
|
||||
bfd_h_get_16 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_8 bfd_h_get_8
|
||||
|
||||
#define H_GET_S64(abfd, where) \
|
||||
bfd_h_get_signed_64 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_S32(abfd, where) \
|
||||
bfd_h_get_signed_32 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_S16(abfd, where) \
|
||||
bfd_h_get_signed_16 ((abfd), (bfd_byte *) (where))
|
||||
|
||||
#define H_GET_S8 bfd_h_get_signed_8
|
||||
|
||||
|
||||
@end example
|
||||
|
||||
@ -148,9 +196,9 @@ order and their data in little endian order.
|
||||
@subsubsection @code{bfd_log2}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
unsigned int bfd_log2(bfd_vma x);
|
||||
unsigned int bfd_log2 (bfd_vma x);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return the log base 2 of the value supplied, rounded up. E.g., an
|
||||
@var{x} of 1025 returns 11.
|
||||
@var{x} of 1025 returns 11. A @var{x} of 0 returns 0.
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
@subsubsection @code{bfd_openr}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
bfd *bfd_openr(CONST char *filename, CONST char *target);
|
||||
bfd *bfd_openr(const char *filename, const char *target);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Open the file @var{filename} (using @code{fopen}) with the target
|
||||
@ -21,7 +21,7 @@ are @code{bfd_error_no_memory}, @code{bfd_error_invalid_target} or @code{system_
|
||||
@subsubsection @code{bfd_fdopenr}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
bfd *bfd_fdopenr(CONST char *filename, CONST char *target, int fd);
|
||||
bfd *bfd_fdopenr(const char *filename, const char *target, int fd);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
@code{bfd_fdopenr} is to @code{bfd_fopenr} much like @code{fdopen} is to @code{fopen}.
|
||||
@ -55,7 +55,7 @@ the BFD is passed to @code{bfd_close}, the stream will be closed.
|
||||
@subsubsection @code{bfd_openw}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
bfd *bfd_openw(CONST char *filename, CONST char *target);
|
||||
bfd *bfd_openw(const char *filename, const char *target);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Create a BFD, associated with file @var{filename}, using the
|
||||
@ -108,7 +108,7 @@ All memory attached to the BFD is released.
|
||||
@subsubsection @code{bfd_create}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
bfd *bfd_create(CONST char *filename, bfd *templ);
|
||||
bfd *bfd_create(const char *filename, bfd *templ);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Create a new BFD in the manner of
|
||||
|
@ -27,31 +27,31 @@ This is the structure of a relocation entry:
|
||||
|
||||
typedef enum bfd_reloc_status
|
||||
@{
|
||||
/* No errors detected */
|
||||
/* No errors detected. */
|
||||
bfd_reloc_ok,
|
||||
|
||||
/* The relocation was performed, but there was an overflow. */
|
||||
/* The relocation was performed, but there was an overflow. */
|
||||
bfd_reloc_overflow,
|
||||
|
||||
/* The address to relocate was not within the section supplied. */
|
||||
/* The address to relocate was not within the section supplied. */
|
||||
bfd_reloc_outofrange,
|
||||
|
||||
/* Used by special functions */
|
||||
/* Used by special functions. */
|
||||
bfd_reloc_continue,
|
||||
|
||||
/* Unsupported relocation size requested. */
|
||||
/* Unsupported relocation size requested. */
|
||||
bfd_reloc_notsupported,
|
||||
|
||||
/* Unused */
|
||||
/* Unused. */
|
||||
bfd_reloc_other,
|
||||
|
||||
/* The symbol to relocate against was undefined. */
|
||||
/* The symbol to relocate against was undefined. */
|
||||
bfd_reloc_undefined,
|
||||
|
||||
/* The relocation was performed, but may not be ok - presently
|
||||
generated only when linking i960 coff files with i960 b.out
|
||||
symbols. If this type is returned, the error_message argument
|
||||
to bfd_perform_relocation will be set. */
|
||||
/* The relocation was performed, but may not be ok - presently
|
||||
generated only when linking i960 coff files with i960 b.out
|
||||
symbols. If this type is returned, the error_message argument
|
||||
to bfd_perform_relocation will be set. */
|
||||
bfd_reloc_dangerous
|
||||
@}
|
||||
bfd_reloc_status_type;
|
||||
@ -59,19 +59,21 @@ typedef enum bfd_reloc_status
|
||||
|
||||
typedef struct reloc_cache_entry
|
||||
@{
|
||||
/* A pointer into the canonical table of pointers */
|
||||
/* A pointer into the canonical table of pointers. */
|
||||
struct symbol_cache_entry **sym_ptr_ptr;
|
||||
|
||||
/* offset in section */
|
||||
/* offset in section. */
|
||||
bfd_size_type address;
|
||||
|
||||
/* addend for relocation value */
|
||||
/* addend for relocation value. */
|
||||
bfd_vma addend;
|
||||
|
||||
/* Pointer to how to perform the required relocation */
|
||||
/* Pointer to how to perform the required relocation. */
|
||||
reloc_howto_type *howto;
|
||||
|
||||
@} arelent;
|
||||
@}
|
||||
arelent;
|
||||
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Here is a description of each of the fields within an @code{arelent}:
|
||||
@ -230,19 +232,19 @@ performing a relocation.
|
||||
|
||||
enum complain_overflow
|
||||
@{
|
||||
/* Do not complain on overflow. */
|
||||
/* Do not complain on overflow. */
|
||||
complain_overflow_dont,
|
||||
|
||||
/* Complain if the bitfield overflows, whether it is considered
|
||||
as signed or unsigned. */
|
||||
/* Complain if the bitfield overflows, whether it is considered
|
||||
as signed or unsigned. */
|
||||
complain_overflow_bitfield,
|
||||
|
||||
/* Complain if the value overflows when considered as signed
|
||||
number. */
|
||||
/* Complain if the value overflows when considered as signed
|
||||
number. */
|
||||
complain_overflow_signed,
|
||||
|
||||
/* Complain if the value overflows when considered as an
|
||||
unsigned number. */
|
||||
/* Complain if the value overflows when considered as an
|
||||
unsigned number. */
|
||||
complain_overflow_unsigned
|
||||
@};
|
||||
@end example
|
||||
@ -252,117 +254,114 @@ information that libbfd needs to know to tie up a back end's data.
|
||||
|
||||
|
||||
@example
|
||||
struct symbol_cache_entry; /* Forward declaration */
|
||||
struct symbol_cache_entry; /* Forward declaration. */
|
||||
|
||||
struct reloc_howto_struct
|
||||
@{
|
||||
/* The type field has mainly a documentary use - the back end can
|
||||
do what it wants with it, though normally the back end's
|
||||
external idea of what a reloc number is stored
|
||||
in this field. For example, a PC relative word relocation
|
||||
in a coff environment has the type 023 - because that's
|
||||
what the outside world calls a R_PCRWORD reloc. */
|
||||
/* The type field has mainly a documentary use - the back end can
|
||||
do what it wants with it, though normally the back end's
|
||||
external idea of what a reloc number is stored
|
||||
in this field. For example, a PC relative word relocation
|
||||
in a coff environment has the type 023 - because that's
|
||||
what the outside world calls a R_PCRWORD reloc. */
|
||||
unsigned int type;
|
||||
|
||||
/* The value the final relocation is shifted right by. This drops
|
||||
unwanted data from the relocation. */
|
||||
/* The value the final relocation is shifted right by. This drops
|
||||
unwanted data from the relocation. */
|
||||
unsigned int rightshift;
|
||||
|
||||
/* The size of the item to be relocated. This is *not* a
|
||||
power-of-two measure. To get the number of bytes operated
|
||||
on by a type of relocation, use bfd_get_reloc_size. */
|
||||
/* The size of the item to be relocated. This is *not* a
|
||||
power-of-two measure. To get the number of bytes operated
|
||||
on by a type of relocation, use bfd_get_reloc_size. */
|
||||
int size;
|
||||
|
||||
/* The number of bits in the item to be relocated. This is used
|
||||
when doing overflow checking. */
|
||||
/* The number of bits in the item to be relocated. This is used
|
||||
when doing overflow checking. */
|
||||
unsigned int bitsize;
|
||||
|
||||
/* Notes that the relocation is relative to the location in the
|
||||
data section of the addend. The relocation function will
|
||||
subtract from the relocation value the address of the location
|
||||
being relocated. */
|
||||
/* Notes that the relocation is relative to the location in the
|
||||
data section of the addend. The relocation function will
|
||||
subtract from the relocation value the address of the location
|
||||
being relocated. */
|
||||
boolean pc_relative;
|
||||
|
||||
/* The bit position of the reloc value in the destination.
|
||||
The relocated value is left shifted by this amount. */
|
||||
/* The bit position of the reloc value in the destination.
|
||||
The relocated value is left shifted by this amount. */
|
||||
unsigned int bitpos;
|
||||
|
||||
/* What type of overflow error should be checked for when
|
||||
relocating. */
|
||||
/* What type of overflow error should be checked for when
|
||||
relocating. */
|
||||
enum complain_overflow complain_on_overflow;
|
||||
|
||||
/* If this field is non null, then the supplied function is
|
||||
called rather than the normal function. This allows really
|
||||
strange relocation methods to be accomodated (e.g., i960 callj
|
||||
instructions). */
|
||||
/* If this field is non null, then the supplied function is
|
||||
called rather than the normal function. This allows really
|
||||
strange relocation methods to be accomodated (e.g., i960 callj
|
||||
instructions). */
|
||||
bfd_reloc_status_type (*special_function)
|
||||
PARAMS ((bfd *abfd,
|
||||
arelent *reloc_entry,
|
||||
struct symbol_cache_entry *symbol,
|
||||
PTR data,
|
||||
asection *input_section,
|
||||
bfd *output_bfd,
|
||||
char **error_message));
|
||||
PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *,
|
||||
bfd *, char **));
|
||||
|
||||
/* The textual name of the relocation type. */
|
||||
/* The textual name of the relocation type. */
|
||||
char *name;
|
||||
|
||||
/* Some formats record a relocation addend in the section contents
|
||||
rather than with the relocation. For ELF formats this is the
|
||||
distinction between USE_REL and USE_RELA (though the code checks
|
||||
for USE_REL == 1/0). The value of this field is TRUE if the
|
||||
addend is recorded with the section contents; when performing a
|
||||
partial link (ld -r) the section contents (the data) will be
|
||||
modified. The value of this field is FALSE if addends are
|
||||
recorded with the relocation (in arelent.addend); when performing
|
||||
a partial link the relocation will be modified.
|
||||
All relocations for all ELF USE_RELA targets should set this field
|
||||
to FALSE (values of TRUE should be looked on with suspicion).
|
||||
However, the converse is not true: not all relocations of all ELF
|
||||
USE_REL targets set this field to TRUE. Why this is so is peculiar
|
||||
to each particular target. For relocs that aren't used in partial
|
||||
links (e.g. GOT stuff) it doesn't matter what this is set to. */
|
||||
/* Some formats record a relocation addend in the section contents
|
||||
rather than with the relocation. For ELF formats this is the
|
||||
distinction between USE_REL and USE_RELA (though the code checks
|
||||
for USE_REL == 1/0). The value of this field is TRUE if the
|
||||
addend is recorded with the section contents; when performing a
|
||||
partial link (ld -r) the section contents (the data) will be
|
||||
modified. The value of this field is FALSE if addends are
|
||||
recorded with the relocation (in arelent.addend); when performing
|
||||
a partial link the relocation will be modified.
|
||||
All relocations for all ELF USE_RELA targets should set this field
|
||||
to FALSE (values of TRUE should be looked on with suspicion).
|
||||
However, the converse is not true: not all relocations of all ELF
|
||||
USE_REL targets set this field to TRUE. Why this is so is peculiar
|
||||
to each particular target. For relocs that aren't used in partial
|
||||
links (e.g. GOT stuff) it doesn't matter what this is set to. */
|
||||
boolean partial_inplace;
|
||||
|
||||
/* The src_mask selects which parts of the read in data
|
||||
are to be used in the relocation sum. E.g., if this was an 8 bit
|
||||
byte of data which we read and relocated, this would be
|
||||
0x000000ff. When we have relocs which have an addend, such as
|
||||
sun4 extended relocs, the value in the offset part of a
|
||||
relocating field is garbage so we never use it. In this case
|
||||
the mask would be 0x00000000. */
|
||||
/* The src_mask selects which parts of the read in data
|
||||
are to be used in the relocation sum. E.g., if this was an 8 bit
|
||||
byte of data which we read and relocated, this would be
|
||||
0x000000ff. When we have relocs which have an addend, such as
|
||||
sun4 extended relocs, the value in the offset part of a
|
||||
relocating field is garbage so we never use it. In this case
|
||||
the mask would be 0x00000000. */
|
||||
bfd_vma src_mask;
|
||||
|
||||
/* The dst_mask selects which parts of the instruction are replaced
|
||||
into the instruction. In most cases src_mask == dst_mask,
|
||||
except in the above special case, where dst_mask would be
|
||||
0x000000ff, and src_mask would be 0x00000000. */
|
||||
/* The dst_mask selects which parts of the instruction are replaced
|
||||
into the instruction. In most cases src_mask == dst_mask,
|
||||
except in the above special case, where dst_mask would be
|
||||
0x000000ff, and src_mask would be 0x00000000. */
|
||||
bfd_vma dst_mask;
|
||||
|
||||
/* When some formats create PC relative instructions, they leave
|
||||
the value of the pc of the place being relocated in the offset
|
||||
slot of the instruction, so that a PC relative relocation can
|
||||
be made just by adding in an ordinary offset (e.g., sun3 a.out).
|
||||
Some formats leave the displacement part of an instruction
|
||||
empty (e.g., m88k bcs); this flag signals the fact.*/
|
||||
/* When some formats create PC relative instructions, they leave
|
||||
the value of the pc of the place being relocated in the offset
|
||||
slot of the instruction, so that a PC relative relocation can
|
||||
be made just by adding in an ordinary offset (e.g., sun3 a.out).
|
||||
Some formats leave the displacement part of an instruction
|
||||
empty (e.g., m88k bcs); this flag signals the fact. */
|
||||
boolean pcrel_offset;
|
||||
|
||||
@};
|
||||
|
||||
@end example
|
||||
@findex The HOWTO Macro
|
||||
@subsubsection @code{The HOWTO Macro}
|
||||
@strong{Description}@*
|
||||
The HOWTO define is horrible and will go away.
|
||||
@example
|
||||
#define HOWTO(C, R,S,B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
|
||||
@{(unsigned)C,R,S,B, P, BI, O,SF,NAME,INPLACE,MASKSRC,MASKDST,PC@}
|
||||
#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
|
||||
@{ (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC @}
|
||||
@end example
|
||||
|
||||
@strong{Description}@*
|
||||
And will be replaced with the totally magic way. But for the
|
||||
moment, we are compatible, so do it this way.
|
||||
@example
|
||||
#define NEWHOWTO( FUNCTION, NAME,SIZE,REL,IN) HOWTO(0,0,SIZE,0,REL,0,complain_overflow_dont,FUNCTION, NAME,false,0,0,IN)
|
||||
#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
|
||||
HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
|
||||
NAME, false, 0, 0, IN)
|
||||
|
||||
@end example
|
||||
|
||||
@ -370,24 +369,29 @@ moment, we are compatible, so do it this way.
|
||||
This is used to fill in an empty howto entry in an array.
|
||||
@example
|
||||
#define EMPTY_HOWTO(C) \
|
||||
HOWTO((C),0,0,0,false,0,complain_overflow_dont,NULL,NULL,false,0,0,false)
|
||||
HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \
|
||||
NULL, false, 0, 0, false)
|
||||
|
||||
@end example
|
||||
|
||||
@strong{Description}@*
|
||||
Helper routine to turn a symbol into a relocation value.
|
||||
@example
|
||||
#define HOWTO_PREPARE(relocation, symbol) \
|
||||
@{ \
|
||||
if (symbol != (asymbol *)NULL) @{ \
|
||||
if (bfd_is_com_section (symbol->section)) @{ \
|
||||
relocation = 0; \
|
||||
@} \
|
||||
else @{ \
|
||||
relocation = symbol->value; \
|
||||
@} \
|
||||
@} \
|
||||
@}
|
||||
#define HOWTO_PREPARE(relocation, symbol) \
|
||||
@{ \
|
||||
if (symbol != (asymbol *) NULL) \
|
||||
@{ \
|
||||
if (bfd_is_com_section (symbol->section)) \
|
||||
@{ \
|
||||
relocation = 0; \
|
||||
@} \
|
||||
else \
|
||||
@{ \
|
||||
relocation = symbol->value; \
|
||||
@} \
|
||||
@} \
|
||||
@}
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_get_reloc_size
|
||||
@ -405,10 +409,13 @@ this returns the number of bytes operated on.
|
||||
@strong{Description}@*
|
||||
How relocs are tied together in an @code{asection}:
|
||||
@example
|
||||
typedef struct relent_chain @{
|
||||
typedef struct relent_chain
|
||||
@{
|
||||
arelent relent;
|
||||
struct relent_chain *next;
|
||||
@} arelent_chain;
|
||||
struct relent_chain *next;
|
||||
@}
|
||||
arelent_chain;
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_check_overflow
|
||||
@ -531,10 +538,12 @@ The 24-bit relocation is used in some Intel 960 configurations.
|
||||
@deffnx {} BFD_RELOC_HI16_GOTOFF
|
||||
@deffnx {} BFD_RELOC_HI16_S_GOTOFF
|
||||
@deffnx {} BFD_RELOC_8_GOTOFF
|
||||
@deffnx {} BFD_RELOC_64_PLT_PCREL
|
||||
@deffnx {} BFD_RELOC_32_PLT_PCREL
|
||||
@deffnx {} BFD_RELOC_24_PLT_PCREL
|
||||
@deffnx {} BFD_RELOC_16_PLT_PCREL
|
||||
@deffnx {} BFD_RELOC_8_PLT_PCREL
|
||||
@deffnx {} BFD_RELOC_64_PLTOFF
|
||||
@deffnx {} BFD_RELOC_32_PLTOFF
|
||||
@deffnx {} BFD_RELOC_16_PLTOFF
|
||||
@deffnx {} BFD_RELOC_LO16_PLTOFF
|
||||
@ -625,6 +634,7 @@ I think these are specific to SPARC a.out (e.g., Sun 4).
|
||||
@deffnx {} BFD_RELOC_SPARC_6
|
||||
@deffnx {} BFD_RELOC_SPARC_5
|
||||
@deffnx {} BFD_RELOC_SPARC_DISP64
|
||||
@deffnx {} BFD_RELOC_SPARC_PLT32
|
||||
@deffnx {} BFD_RELOC_SPARC_PLT64
|
||||
@deffnx {} BFD_RELOC_SPARC_HIX22
|
||||
@deffnx {} BFD_RELOC_SPARC_LOX10
|
||||
@ -682,19 +692,6 @@ of instruction using the register:
|
||||
1 - "memory" fmt insn
|
||||
2 - byte-manipulation (byte offset reg)
|
||||
3 - jsr (target of branch)
|
||||
|
||||
The GNU linker currently doesn't do any of this optimizing.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_ALPHA_USER_LITERAL
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_LITUSE_BASE
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_LITUSE_JSR
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_GPDISP
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_GPRELHIGH
|
||||
@deffnx {} BFD_RELOC_ALPHA_USER_GPRELLOW
|
||||
The BFD_RELOC_ALPHA_USER_* relocations are used by the assembler to
|
||||
process the explicit !<reloc>!sequence relocations, and are mapped
|
||||
into the normal relocations at the end of processing.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_ALPHA_HINT
|
||||
The HINT relocation indicates a value that should be filled into the
|
||||
@ -709,6 +706,16 @@ which is filled by the linker.
|
||||
The CODEADDR relocation outputs a STO_CA in the object file,
|
||||
which is filled by the linker.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_ALPHA_GPREL_HI16
|
||||
@deffnx {} BFD_RELOC_ALPHA_GPREL_LO16
|
||||
The GPREL_HI/LO relocations together form a 32-bit offset from the
|
||||
GP register.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_ALPHA_BRSGP
|
||||
Like BFD_RELOC_23_PCREL_S2, except that the source and target must
|
||||
share a common GP, and the target address is adjusted for
|
||||
STO_ALPHA_STD_GPLOAD.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MIPS_JMP
|
||||
Bits 27..2 of the relocation address shifted right 2 bits;
|
||||
simple reloc otherwise.
|
||||
@ -737,15 +744,11 @@ Like BFD_RELOC_HI16_S, but PC relative.
|
||||
@deffn {} BFD_RELOC_PCREL_LO16
|
||||
Like BFD_RELOC_LO16, but PC relative.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MIPS_GPREL
|
||||
Relocation relative to the global pointer.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MIPS_LITERAL
|
||||
Relocation against a MIPS literal section.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MIPS_GOT16
|
||||
@deffnx {} BFD_RELOC_MIPS_CALL16
|
||||
@deffnx {} BFD_RELOC_MIPS_GPREL32
|
||||
@deffnx {} BFD_RELOC_MIPS_GOT_HI16
|
||||
@deffnx {} BFD_RELOC_MIPS_GOT_LO16
|
||||
@deffnx {} BFD_RELOC_MIPS_CALL_HI16
|
||||
@ -765,6 +768,55 @@ Relocation against a MIPS literal section.
|
||||
@deffnx {} BFD_RELOC_MIPS_REL16
|
||||
@deffnx {} BFD_RELOC_MIPS_RELGOT
|
||||
@deffnx {} BFD_RELOC_MIPS_JALR
|
||||
@deffnx {} BFD_RELOC_SH_GOT_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOT_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOT_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_GOT_HI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT_HI16
|
||||
@deffnx {} BFD_RELOC_SH_PLT_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_PLT_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_PLT_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_PLT_HI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTOFF_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTOFF_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTOFF_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTOFF_HI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPC_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPC_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPC_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_GOTPC_HI16
|
||||
@deffnx {} BFD_RELOC_SH_COPY64
|
||||
@deffnx {} BFD_RELOC_SH_GLOB_DAT64
|
||||
@deffnx {} BFD_RELOC_SH_JMP_SLOT64
|
||||
@deffnx {} BFD_RELOC_SH_RELATIVE64
|
||||
@deffnx {} BFD_RELOC_SH_GOT10BY4
|
||||
@deffnx {} BFD_RELOC_SH_GOT10BY8
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT10BY4
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT10BY8
|
||||
@deffnx {} BFD_RELOC_SH_GOTPLT32
|
||||
@deffnx {} BFD_RELOC_SH_SHMEDIA_CODE
|
||||
@deffnx {} BFD_RELOC_SH_IMMU5
|
||||
@deffnx {} BFD_RELOC_SH_IMMS6
|
||||
@deffnx {} BFD_RELOC_SH_IMMS6BY32
|
||||
@deffnx {} BFD_RELOC_SH_IMMU6
|
||||
@deffnx {} BFD_RELOC_SH_IMMS10
|
||||
@deffnx {} BFD_RELOC_SH_IMMS10BY2
|
||||
@deffnx {} BFD_RELOC_SH_IMMS10BY4
|
||||
@deffnx {} BFD_RELOC_SH_IMMS10BY8
|
||||
@deffnx {} BFD_RELOC_SH_IMMS16
|
||||
@deffnx {} BFD_RELOC_SH_IMMU16
|
||||
@deffnx {} BFD_RELOC_SH_IMM_LOW16
|
||||
@deffnx {} BFD_RELOC_SH_IMM_LOW16_PCREL
|
||||
@deffnx {} BFD_RELOC_SH_IMM_MEDLOW16
|
||||
@deffnx {} BFD_RELOC_SH_IMM_MEDLOW16_PCREL
|
||||
@deffnx {} BFD_RELOC_SH_IMM_MEDHI16
|
||||
@deffnx {} BFD_RELOC_SH_IMM_MEDHI16_PCREL
|
||||
@deffnx {} BFD_RELOC_SH_IMM_HI16
|
||||
@deffnx {} BFD_RELOC_SH_IMM_HI16_PCREL
|
||||
@deffnx {} BFD_RELOC_SH_PT_16
|
||||
MIPS ELF relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_386_GOT32
|
||||
@ -801,6 +853,10 @@ x86-64/elf relocations
|
||||
@deffnx {} BFD_RELOC_NS32K_DISP_32_PCREL
|
||||
ns32k relocations
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_PDP11_DISP_8_PCREL
|
||||
@deffnx {} BFD_RELOC_PDP11_DISP_6_PCREL
|
||||
PDP11 relocations
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_PJ_CODE_HI16
|
||||
@deffnx {} BFD_RELOC_PJ_CODE_LO16
|
||||
@deffnx {} BFD_RELOC_PJ_CODE_DIR16
|
||||
@ -839,6 +895,29 @@ Picojava relocs. Not all of these appear in object files.
|
||||
@deffnx {} BFD_RELOC_PPC_EMB_RELST_HA
|
||||
@deffnx {} BFD_RELOC_PPC_EMB_BIT_FLD
|
||||
@deffnx {} BFD_RELOC_PPC_EMB_RELSDA
|
||||
@deffnx {} BFD_RELOC_PPC64_HIGHER
|
||||
@deffnx {} BFD_RELOC_PPC64_HIGHER_S
|
||||
@deffnx {} BFD_RELOC_PPC64_HIGHEST
|
||||
@deffnx {} BFD_RELOC_PPC64_HIGHEST_S
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC16_LO
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC16_HI
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC16_HA
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16_LO
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16_HI
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16_HA
|
||||
@deffnx {} BFD_RELOC_PPC64_ADDR16_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_ADDR16_LO_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_GOT16_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_GOT16_LO_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_PLT16_LO_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_SECTOFF_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_SECTOFF_LO_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC16_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_TOC16_LO_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16_DS
|
||||
@deffnx {} BFD_RELOC_PPC64_PLTGOT16_LO_DS
|
||||
Power(rs6000) and PowerPC relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_I370_D12
|
||||
@ -1162,6 +1241,54 @@ short offset into 11 bits.
|
||||
@deffnx {} BFD_RELOC_MCORE_RVA
|
||||
Motorola Mcore relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_GETA
|
||||
@deffnx {} BFD_RELOC_MMIX_GETA_1
|
||||
@deffnx {} BFD_RELOC_MMIX_GETA_2
|
||||
@deffnx {} BFD_RELOC_MMIX_GETA_3
|
||||
These are relocations for the GETA instruction.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_CBRANCH
|
||||
@deffnx {} BFD_RELOC_MMIX_CBRANCH_J
|
||||
@deffnx {} BFD_RELOC_MMIX_CBRANCH_1
|
||||
@deffnx {} BFD_RELOC_MMIX_CBRANCH_2
|
||||
@deffnx {} BFD_RELOC_MMIX_CBRANCH_3
|
||||
These are relocations for a conditional branch instruction.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_PUSHJ
|
||||
@deffnx {} BFD_RELOC_MMIX_PUSHJ_1
|
||||
@deffnx {} BFD_RELOC_MMIX_PUSHJ_2
|
||||
@deffnx {} BFD_RELOC_MMIX_PUSHJ_3
|
||||
These are relocations for the PUSHJ instruction.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_JMP
|
||||
@deffnx {} BFD_RELOC_MMIX_JMP_1
|
||||
@deffnx {} BFD_RELOC_MMIX_JMP_2
|
||||
@deffnx {} BFD_RELOC_MMIX_JMP_3
|
||||
These are relocations for the JMP instruction.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_ADDR19
|
||||
This is a relocation for a relative address as in a GETA instruction or
|
||||
a branch.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_ADDR27
|
||||
This is a relocation for a relative address as in a JMP instruction.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_REG_OR_BYTE
|
||||
This is a relocation for an instruction field that may be a general
|
||||
register or a value 0..255.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_REG
|
||||
This is a relocation for an instruction field that may be a general
|
||||
register.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_BASE_PLUS_OFFSET
|
||||
This is a relocation for two instruction fields holding a register and
|
||||
an offset, the equivalent of the relocation.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_MMIX_LOCAL
|
||||
This relocation is an assertion that the expression is not allocated as
|
||||
a global register. It does not modify contents.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_AVR_7_PCREL
|
||||
This is a 16 bit reloc for the AVR that stores 8 bit pc relative
|
||||
short offset into 7 bits.
|
||||
@ -1230,6 +1357,57 @@ value of SUBI insn.
|
||||
This is a 32 bit reloc for the AVR that stores 23 bit value
|
||||
into 22 bits.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_12
|
||||
Direct 12 bit.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOT12
|
||||
12 bit GOT offset.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PLT32
|
||||
32 bit PC relative PLT address.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_COPY
|
||||
Copy symbol at runtime.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GLOB_DAT
|
||||
Create GOT entry.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_JMP_SLOT
|
||||
Create PLT entry.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_RELATIVE
|
||||
Adjust by program base.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOTPC
|
||||
32 bit PC relative offset to GOT.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOT16
|
||||
16 bit GOT offset.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PC16DBL
|
||||
PC relative 16 bit shifted by 1.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PLT16DBL
|
||||
16 bit PC rel. PLT shifted by 1.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PC32DBL
|
||||
PC relative 32 bit shifted by 1.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PLT32DBL
|
||||
32 bit PC rel. PLT shifted by 1.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOTPCDBL
|
||||
32 bit PC rel. GOT shifted by 1.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOT64
|
||||
64 bit GOT offset.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_PLT64
|
||||
64 bit PC relative PLT address.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_390_GOTENT
|
||||
32 bit rel. offset to GOT entry.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_VTABLE_INHERIT
|
||||
@deffnx {} BFD_RELOC_VTABLE_ENTRY
|
||||
These two relocations are used by the linker to determine which of
|
||||
@ -1287,6 +1465,8 @@ this offset in the reloc's section offset.
|
||||
@deffnx {} BFD_RELOC_IA64_PCREL64LSB
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR22
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64I
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR32MSB
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR32LSB
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64MSB
|
||||
@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64LSB
|
||||
@deffnx {} BFD_RELOC_IA64_SEGREL32MSB
|
||||
@ -1336,6 +1516,33 @@ This is the 3 bits of a value.
|
||||
These relocs are only used within the CRIS assembler. They are not
|
||||
(at present) written to any object files.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_COPY
|
||||
@deffnx {} BFD_RELOC_CRIS_GLOB_DAT
|
||||
@deffnx {} BFD_RELOC_CRIS_JUMP_SLOT
|
||||
@deffnx {} BFD_RELOC_CRIS_RELATIVE
|
||||
Relocs used in ELF shared libraries for CRIS.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_32_GOT
|
||||
32-bit offset to symbol-entry within GOT.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_16_GOT
|
||||
16-bit offset to symbol-entry within GOT.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_32_GOTPLT
|
||||
32-bit offset to symbol-entry within GOT, with PLT handling.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_16_GOTPLT
|
||||
16-bit offset to symbol-entry within GOT, with PLT handling.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_32_GOTREL
|
||||
32-bit offset to symbol, relative to GOT.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_32_PLT_GOTREL
|
||||
32-bit offset to symbol with PLT entry, relative to GOT.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_CRIS_32_PLT_PCREL
|
||||
32-bit offset to symbol with PLT entry, relative to this relocation.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_860_COPY
|
||||
@deffnx {} BFD_RELOC_860_GLOB_DAT
|
||||
@deffnx {} BFD_RELOC_860_JUMP_SLOT
|
||||
@ -1370,6 +1577,22 @@ These relocs are only used within the CRIS assembler. They are not
|
||||
@deffnx {} BFD_RELOC_860_HIGOTOFF
|
||||
Intel i860 Relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_OPENRISC_ABS_26
|
||||
@deffnx {} BFD_RELOC_OPENRISC_REL_26
|
||||
OpenRISC Relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_H8_DIR16A8
|
||||
@deffnx {} BFD_RELOC_H8_DIR16R8
|
||||
@deffnx {} BFD_RELOC_H8_DIR24A8
|
||||
@deffnx {} BFD_RELOC_H8_DIR24R8
|
||||
@deffnx {} BFD_RELOC_H8_DIR32A16
|
||||
H8 elf Relocations.
|
||||
@end deffn
|
||||
@deffn {} BFD_RELOC_XSTORMY16_REL_12
|
||||
@deffnx {} BFD_RELOC_XSTORMY16_24
|
||||
@deffnx {} BFD_RELOC_XSTORMY16_FPTR16
|
||||
Sony Xstormy16 Relocations.
|
||||
@end deffn
|
||||
|
||||
@example
|
||||
|
||||
@ -1432,6 +1655,17 @@ boolean bfd_generic_gc_sections
|
||||
Provides default handling for relaxing for back ends which
|
||||
don't do section gc -- i.e., does nothing.
|
||||
|
||||
@findex bfd_generic_merge_sections
|
||||
@subsubsection @code{bfd_generic_merge_sections}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
boolean bfd_generic_merge_sections
|
||||
(bfd *, struct bfd_link_info *);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Provides default handling for SEC_MERGE section merging for back ends
|
||||
which don't have SEC_MERGE support -- i.e., does nothing.
|
||||
|
||||
@findex bfd_generic_get_relocated_section_contents
|
||||
@subsubsection @code{bfd_generic_get_relocated_section_contents}
|
||||
@strong{Synopsis}
|
||||
|
@ -128,25 +128,20 @@ typedef struct sec
|
||||
@{
|
||||
/* The name of the section; the name isn't a copy, the pointer is
|
||||
the same as that passed to bfd_make_section. */
|
||||
|
||||
const char *name;
|
||||
|
||||
/* A unique sequence number. */
|
||||
|
||||
int id;
|
||||
|
||||
/* Which section is it; 0..nth. */
|
||||
|
||||
/* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
|
||||
int index;
|
||||
|
||||
/* The next section in the list belonging to the BFD, or NULL. */
|
||||
|
||||
struct sec *next;
|
||||
|
||||
/* The field flags contains attributes of the section. Some
|
||||
flags are read in from the object file, and some are
|
||||
synthesized from other information. */
|
||||
|
||||
flagword flags;
|
||||
|
||||
#define SEC_NO_FLAGS 0x000
|
||||
@ -163,9 +158,11 @@ typedef struct sec
|
||||
some relocation information too. */
|
||||
#define SEC_RELOC 0x004
|
||||
|
||||
#if 0 /* Obsolete ? */
|
||||
#define SEC_BALIGN 0x008
|
||||
#endif
|
||||
/* ELF reserves 4 processor specific bits and 8 operating system
|
||||
specific bits in sh_flags; at present we can get away with just
|
||||
one in communicating between the assembler and BFD, but this
|
||||
isn't a good long-term solution. */
|
||||
#define SEC_ARCH_BIT_0 0x008
|
||||
|
||||
/* A signal to the OS that the section contains read only data. */
|
||||
#define SEC_READONLY 0x010
|
||||
@ -248,9 +245,10 @@ typedef struct sec
|
||||
objects are to be further relocated. */
|
||||
#define SEC_EXCLUDE 0x40000
|
||||
|
||||
/* The contents of this section are to be sorted by the
|
||||
based on the address specified in the associated symbol
|
||||
table. */
|
||||
/* The contents of this section are to be sorted based on the sum of
|
||||
the symbol and addend values specified by the associated relocation
|
||||
entries. Entries without associated relocation entries will be
|
||||
appended to the end of the section in an unspecified order. */
|
||||
#define SEC_SORT_ENTRIES 0x80000
|
||||
|
||||
/* When linking, duplicate sections of the same name should be
|
||||
@ -308,6 +306,18 @@ typedef struct sec
|
||||
references found to any symbol in the section. */
|
||||
#define SEC_CLINK 0x10000000
|
||||
|
||||
/* Attempt to merge identical entities in the section.
|
||||
Entity size is given in the entsize field. */
|
||||
#define SEC_MERGE 0x20000000
|
||||
|
||||
/* If given with SEC_MERGE, entities to merge are zero terminated
|
||||
strings where entsize specifies character size instead of fixed
|
||||
size entries. */
|
||||
#define SEC_STRINGS 0x40000000
|
||||
|
||||
/* This section contains data about section groups. */
|
||||
#define SEC_GROUP 0x80000000
|
||||
|
||||
/* End of section flags. */
|
||||
|
||||
/* Some internal packed boolean fields. */
|
||||
@ -322,13 +332,14 @@ typedef struct sec
|
||||
unsigned int linker_mark : 1;
|
||||
|
||||
/* Another mark flag used by some of the linker backends. Set for
|
||||
output sections that have a input section. */
|
||||
output sections that have an input section. */
|
||||
unsigned int linker_has_input : 1;
|
||||
|
||||
/* A mark flag used by some linker backends for garbage collection. */
|
||||
unsigned int gc_mark : 1;
|
||||
|
||||
/* Used by the ELF code to mark sections which have been allocated to segments. */
|
||||
/* Used by the ELF code to mark sections which have been allocated
|
||||
to segments. */
|
||||
unsigned int segment_mark : 1;
|
||||
|
||||
/* End of internal packed boolean fields. */
|
||||
@ -339,25 +350,21 @@ typedef struct sec
|
||||
backend can assign addresses (for example, in @code{a.out}, where
|
||||
the default address for @code{.data} is dependent on the specific
|
||||
target and various flags). */
|
||||
|
||||
bfd_vma vma;
|
||||
|
||||
/* The load address of the section - where it would be in a
|
||||
rom image; really only used for writing section header
|
||||
information. */
|
||||
|
||||
information. */
|
||||
bfd_vma lma;
|
||||
|
||||
/* The size of the section in octets, as it will be output.
|
||||
Contains a value even if the section has no contents (e.g., the
|
||||
size of @code{.bss}). This will be filled in after relocation. */
|
||||
|
||||
bfd_size_type _cooked_size;
|
||||
|
||||
/* The original size on disk of the section, in octets. Normally this
|
||||
value is the same as the size, but if some relaxing has
|
||||
been done, then this value will be bigger. */
|
||||
|
||||
bfd_size_type _raw_size;
|
||||
|
||||
/* If this section is going to be output, then this value is the
|
||||
@ -367,49 +374,39 @@ typedef struct sec
|
||||
100th octet (8-bit quantity) in the output section, this value
|
||||
would be 100. However, if the target byte size is 16 bits
|
||||
(bfd_octets_per_byte is "2"), this value would be 50. */
|
||||
|
||||
bfd_vma output_offset;
|
||||
|
||||
/* The output section through which to map on output. */
|
||||
|
||||
struct sec *output_section;
|
||||
|
||||
/* The alignment requirement of the section, as an exponent of 2 -
|
||||
e.g., 3 aligns to 2^3 (or 8). */
|
||||
|
||||
unsigned int alignment_power;
|
||||
|
||||
/* If an input section, a pointer to a vector of relocation
|
||||
records for the data in this section. */
|
||||
|
||||
struct reloc_cache_entry *relocation;
|
||||
|
||||
/* If an output section, a pointer to a vector of pointers to
|
||||
relocation records for the data in this section. */
|
||||
|
||||
struct reloc_cache_entry **orelocation;
|
||||
|
||||
/* The number of relocation records in one of the above */
|
||||
|
||||
/* The number of relocation records in one of the above. */
|
||||
unsigned reloc_count;
|
||||
|
||||
/* Information below is back end specific - and not always used
|
||||
or updated. */
|
||||
|
||||
/* File position of section data. */
|
||||
|
||||
file_ptr filepos;
|
||||
|
||||
/* File position of relocation info. */
|
||||
|
||||
file_ptr rel_filepos;
|
||||
|
||||
/* File position of line data. */
|
||||
|
||||
file_ptr line_filepos;
|
||||
|
||||
/* Pointer to data for applications. */
|
||||
|
||||
PTR userdata;
|
||||
|
||||
/* If the SEC_IN_MEMORY flag is set, this points to the actual
|
||||
@ -417,48 +414,40 @@ typedef struct sec
|
||||
unsigned char *contents;
|
||||
|
||||
/* Attached line number information. */
|
||||
|
||||
alent *lineno;
|
||||
|
||||
/* Number of line number records. */
|
||||
|
||||
unsigned int lineno_count;
|
||||
|
||||
/* Entity size for merging purposes. */
|
||||
unsigned int entsize;
|
||||
|
||||
/* Optional information about a COMDAT entry; NULL if not COMDAT. */
|
||||
|
||||
struct bfd_comdat_info *comdat;
|
||||
|
||||
/* Points to the kept section if this section is a link-once section,
|
||||
and is discarded. */
|
||||
struct sec *kept_section;
|
||||
|
||||
/* When a section is being output, this value changes as more
|
||||
linenumbers are written out. */
|
||||
|
||||
file_ptr moving_line_filepos;
|
||||
|
||||
/* What the section number is in the target world. */
|
||||
|
||||
int target_index;
|
||||
|
||||
PTR used_by_bfd;
|
||||
|
||||
/* If this is a constructor section then here is a list of the
|
||||
relocations created to relocate items within it. */
|
||||
|
||||
struct relent_chain *constructor_chain;
|
||||
|
||||
/* The BFD which owns the section. */
|
||||
|
||||
bfd *owner;
|
||||
|
||||
/* A symbol which points at this section only */
|
||||
/* A symbol which points at this section only. */
|
||||
struct symbol_cache_entry *symbol;
|
||||
struct symbol_cache_entry **symbol_ptr_ptr;
|
||||
|
||||
struct bfd_link_order *link_order_head;
|
||||
struct bfd_link_order *link_order_tail;
|
||||
@} asection ;
|
||||
@} asection;
|
||||
|
||||
/* These sections are global, and are managed by BFD. The application
|
||||
and target back end are not permitted to change the values in
|
||||
@ -470,22 +459,28 @@ typedef struct sec
|
||||
#define BFD_COM_SECTION_NAME "*COM*"
|
||||
#define BFD_IND_SECTION_NAME "*IND*"
|
||||
|
||||
/* the absolute section */
|
||||
/* The absolute section. */
|
||||
extern const asection bfd_abs_section;
|
||||
#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
|
||||
#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
|
||||
/* Pointer to the undefined section */
|
||||
/* Pointer to the undefined section. */
|
||||
extern const asection bfd_und_section;
|
||||
#define bfd_und_section_ptr ((asection *) &bfd_und_section)
|
||||
#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
|
||||
/* Pointer to the common section */
|
||||
/* Pointer to the common section. */
|
||||
extern const asection bfd_com_section;
|
||||
#define bfd_com_section_ptr ((asection *) &bfd_com_section)
|
||||
/* Pointer to the indirect section */
|
||||
/* Pointer to the indirect section. */
|
||||
extern const asection bfd_ind_section;
|
||||
#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
|
||||
#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
|
||||
|
||||
#define bfd_is_const_section(SEC) \
|
||||
( ((SEC) == bfd_abs_section_ptr) \
|
||||
|| ((SEC) == bfd_und_section_ptr) \
|
||||
|| ((SEC) == bfd_com_section_ptr) \
|
||||
|| ((SEC) == bfd_ind_section_ptr))
|
||||
|
||||
extern const struct symbol_cache_entry * const bfd_abs_symbol;
|
||||
extern const struct symbol_cache_entry * const bfd_com_symbol;
|
||||
extern const struct symbol_cache_entry * const bfd_und_symbol;
|
||||
@ -496,12 +491,48 @@ extern const struct symbol_cache_entry * const bfd_ind_symbol;
|
||||
#define bfd_get_section_size_after_reloc(section) \
|
||||
((section)->reloc_done ? (section)->_cooked_size \
|
||||
: (abort (), (bfd_size_type) 1))
|
||||
|
||||
/* Macros to handle insertion and deletion of a bfd's sections. These
|
||||
only handle the list pointers, ie. do not adjust section_count,
|
||||
target_index etc. */
|
||||
#define bfd_section_list_remove(ABFD, PS) \
|
||||
do \
|
||||
@{ \
|
||||
asection **_ps = PS; \
|
||||
asection *_s = *_ps; \
|
||||
*_ps = _s->next; \
|
||||
if (_s->next == NULL) \
|
||||
(ABFD)->section_tail = _ps; \
|
||||
@} \
|
||||
while (0)
|
||||
#define bfd_section_list_insert(ABFD, PS, S) \
|
||||
do \
|
||||
@{ \
|
||||
asection **_ps = PS; \
|
||||
asection *_s = S; \
|
||||
_s->next = *_ps; \
|
||||
*_ps = _s; \
|
||||
if (_s->next == NULL) \
|
||||
(ABFD)->section_tail = &_s->next; \
|
||||
@} \
|
||||
while (0)
|
||||
|
||||
@end example
|
||||
|
||||
@node section prototypes, , typedef asection, Sections
|
||||
@subsection Section prototypes
|
||||
These are the functions exported by the section handling part of BFD.
|
||||
|
||||
@findex bfd_section_list_clear
|
||||
@subsubsection @code{bfd_section_list_clear}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_section_list_clear (bfd *);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Clears the section list, and also resets the section count and
|
||||
hash table entries.
|
||||
|
||||
@findex bfd_get_section_by_name
|
||||
@subsubsection @code{bfd_get_section_by_name}
|
||||
@strong{Synopsis}
|
||||
@ -662,11 +693,8 @@ Writing has started to the BFD, so setting the size is invalid.
|
||||
@subsubsection @code{bfd_set_section_contents}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
boolean bfd_set_section_contents
|
||||
(bfd *abfd,
|
||||
asection *section,
|
||||
PTR data,
|
||||
file_ptr offset,
|
||||
boolean bfd_set_section_contents (bfd *abfd, asection *section,
|
||||
PTR data, file_ptr offset,
|
||||
bfd_size_type count);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
@ -693,9 +721,9 @@ This routine is front end to the back end function
|
||||
@subsubsection @code{bfd_get_section_contents}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
boolean bfd_get_section_contents
|
||||
(bfd *abfd, asection *section, PTR location,
|
||||
file_ptr offset, bfd_size_type count);
|
||||
boolean bfd_get_section_contents (bfd *abfd, asection *section,
|
||||
PTR location, file_ptr offset,
|
||||
bfd_size_type count);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Read data from @var{section} in BFD @var{abfd}
|
||||
@ -713,7 +741,8 @@ with zeroes. If no errors occur, @code{true} is returned, else
|
||||
@subsubsection @code{bfd_copy_private_section_data}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
boolean bfd_copy_private_section_data(bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
|
||||
boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec,
|
||||
bfd *obfd, asection *osec);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Copy private section information from @var{isec} in the BFD
|
||||
|
@ -141,126 +141,125 @@ An @code{asymbol} has the form:
|
||||
|
||||
typedef struct symbol_cache_entry
|
||||
@{
|
||||
/* A pointer to the BFD which owns the symbol. This information
|
||||
is necessary so that a back end can work out what additional
|
||||
information (invisible to the application writer) is carried
|
||||
with the symbol.
|
||||
/* A pointer to the BFD which owns the symbol. This information
|
||||
is necessary so that a back end can work out what additional
|
||||
information (invisible to the application writer) is carried
|
||||
with the symbol.
|
||||
|
||||
This field is *almost* redundant, since you can use section->owner
|
||||
instead, except that some symbols point to the global sections
|
||||
bfd_@{abs,com,und@}_section. This could be fixed by making
|
||||
these globals be per-bfd (or per-target-flavor). FIXME. */
|
||||
This field is *almost* redundant, since you can use section->owner
|
||||
instead, except that some symbols point to the global sections
|
||||
bfd_@{abs,com,und@}_section. This could be fixed by making
|
||||
these globals be per-bfd (or per-target-flavor). FIXME. */
|
||||
struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
|
||||
|
||||
struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
|
||||
/* The text of the symbol. The name is left alone, and not copied; the
|
||||
application may not alter it. */
|
||||
const char *name;
|
||||
|
||||
/* The text of the symbol. The name is left alone, and not copied; the
|
||||
application may not alter it. */
|
||||
CONST char *name;
|
||||
|
||||
/* The value of the symbol. This really should be a union of a
|
||||
numeric value with a pointer, since some flags indicate that
|
||||
a pointer to another symbol is stored here. */
|
||||
/* The value of the symbol. This really should be a union of a
|
||||
numeric value with a pointer, since some flags indicate that
|
||||
a pointer to another symbol is stored here. */
|
||||
symvalue value;
|
||||
|
||||
/* Attributes of a symbol: */
|
||||
|
||||
/* Attributes of a symbol. */
|
||||
#define BSF_NO_FLAGS 0x00
|
||||
|
||||
/* The symbol has local scope; @code{static} in @code{C}. The value
|
||||
is the offset into the section of the data. */
|
||||
/* The symbol has local scope; @code{static} in @code{C}. The value
|
||||
is the offset into the section of the data. */
|
||||
#define BSF_LOCAL 0x01
|
||||
|
||||
/* The symbol has global scope; initialized data in @code{C}. The
|
||||
value is the offset into the section of the data. */
|
||||
/* The symbol has global scope; initialized data in @code{C}. The
|
||||
value is the offset into the section of the data. */
|
||||
#define BSF_GLOBAL 0x02
|
||||
|
||||
/* The symbol has global scope and is exported. The value is
|
||||
the offset into the section of the data. */
|
||||
#define BSF_EXPORT BSF_GLOBAL /* no real difference */
|
||||
/* The symbol has global scope and is exported. The value is
|
||||
the offset into the section of the data. */
|
||||
#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
|
||||
|
||||
/* A normal C symbol would be one of:
|
||||
@code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or
|
||||
@code{BSF_GLOBAL} */
|
||||
/* A normal C symbol would be one of:
|
||||
@code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or
|
||||
@code{BSF_GLOBAL}. */
|
||||
|
||||
/* The symbol is a debugging record. The value has an arbitary
|
||||
meaning, unless BSF_DEBUGGING_RELOC is also set. */
|
||||
/* The symbol is a debugging record. The value has an arbitary
|
||||
meaning, unless BSF_DEBUGGING_RELOC is also set. */
|
||||
#define BSF_DEBUGGING 0x08
|
||||
|
||||
/* The symbol denotes a function entry point. Used in ELF,
|
||||
perhaps others someday. */
|
||||
/* The symbol denotes a function entry point. Used in ELF,
|
||||
perhaps others someday. */
|
||||
#define BSF_FUNCTION 0x10
|
||||
|
||||
/* Used by the linker. */
|
||||
/* Used by the linker. */
|
||||
#define BSF_KEEP 0x20
|
||||
#define BSF_KEEP_G 0x40
|
||||
|
||||
/* A weak global symbol, overridable without warnings by
|
||||
a regular global symbol of the same name. */
|
||||
/* A weak global symbol, overridable without warnings by
|
||||
a regular global symbol of the same name. */
|
||||
#define BSF_WEAK 0x80
|
||||
|
||||
/* This symbol was created to point to a section, e.g. ELF's
|
||||
STT_SECTION symbols. */
|
||||
/* This symbol was created to point to a section, e.g. ELF's
|
||||
STT_SECTION symbols. */
|
||||
#define BSF_SECTION_SYM 0x100
|
||||
|
||||
/* The symbol used to be a common symbol, but now it is
|
||||
allocated. */
|
||||
/* The symbol used to be a common symbol, but now it is
|
||||
allocated. */
|
||||
#define BSF_OLD_COMMON 0x200
|
||||
|
||||
/* The default value for common data. */
|
||||
/* The default value for common data. */
|
||||
#define BFD_FORT_COMM_DEFAULT_VALUE 0
|
||||
|
||||
/* In some files the type of a symbol sometimes alters its
|
||||
location in an output file - ie in coff a @code{ISFCN} symbol
|
||||
which is also @code{C_EXT} symbol appears where it was
|
||||
declared and not at the end of a section. This bit is set
|
||||
by the target BFD part to convey this information. */
|
||||
|
||||
/* In some files the type of a symbol sometimes alters its
|
||||
location in an output file - ie in coff a @code{ISFCN} symbol
|
||||
which is also @code{C_EXT} symbol appears where it was
|
||||
declared and not at the end of a section. This bit is set
|
||||
by the target BFD part to convey this information. */
|
||||
#define BSF_NOT_AT_END 0x400
|
||||
|
||||
/* Signal that the symbol is the label of constructor section. */
|
||||
/* Signal that the symbol is the label of constructor section. */
|
||||
#define BSF_CONSTRUCTOR 0x800
|
||||
|
||||
/* Signal that the symbol is a warning symbol. The name is a
|
||||
warning. The name of the next symbol is the one to warn about;
|
||||
if a reference is made to a symbol with the same name as the next
|
||||
symbol, a warning is issued by the linker. */
|
||||
/* Signal that the symbol is a warning symbol. The name is a
|
||||
warning. The name of the next symbol is the one to warn about;
|
||||
if a reference is made to a symbol with the same name as the next
|
||||
symbol, a warning is issued by the linker. */
|
||||
#define BSF_WARNING 0x1000
|
||||
|
||||
/* Signal that the symbol is indirect. This symbol is an indirect
|
||||
pointer to the symbol with the same name as the next symbol. */
|
||||
/* Signal that the symbol is indirect. This symbol is an indirect
|
||||
pointer to the symbol with the same name as the next symbol. */
|
||||
#define BSF_INDIRECT 0x2000
|
||||
|
||||
/* BSF_FILE marks symbols that contain a file name. This is used
|
||||
for ELF STT_FILE symbols. */
|
||||
/* BSF_FILE marks symbols that contain a file name. This is used
|
||||
for ELF STT_FILE symbols. */
|
||||
#define BSF_FILE 0x4000
|
||||
|
||||
/* Symbol is from dynamic linking information. */
|
||||
/* Symbol is from dynamic linking information. */
|
||||
#define BSF_DYNAMIC 0x8000
|
||||
|
||||
/* The symbol denotes a data object. Used in ELF, and perhaps
|
||||
others someday. */
|
||||
/* The symbol denotes a data object. Used in ELF, and perhaps
|
||||
others someday. */
|
||||
#define BSF_OBJECT 0x10000
|
||||
|
||||
/* This symbol is a debugging symbol. The value is the offset
|
||||
into the section of the data. BSF_DEBUGGING should be set
|
||||
as well. */
|
||||
/* This symbol is a debugging symbol. The value is the offset
|
||||
into the section of the data. BSF_DEBUGGING should be set
|
||||
as well. */
|
||||
#define BSF_DEBUGGING_RELOC 0x20000
|
||||
|
||||
flagword flags;
|
||||
|
||||
/* A pointer to the section to which this symbol is
|
||||
relative. This will always be non NULL, there are special
|
||||
sections for undefined and absolute symbols. */
|
||||
/* A pointer to the section to which this symbol is
|
||||
relative. This will always be non NULL, there are special
|
||||
sections for undefined and absolute symbols. */
|
||||
struct sec *section;
|
||||
|
||||
/* Back end special data. */
|
||||
/* Back end special data. */
|
||||
union
|
||||
@{
|
||||
PTR p;
|
||||
bfd_vma i;
|
||||
@} udata;
|
||||
@}
|
||||
udata;
|
||||
@}
|
||||
asymbol;
|
||||
|
||||
@} asymbol;
|
||||
@end example
|
||||
|
||||
@node symbol handling functions, , typedef asymbol, Symbols
|
||||
@ -277,6 +276,7 @@ the BFD, then return 0. If an error occurs, return -1.
|
||||
@example
|
||||
#define bfd_get_symtab_upper_bound(abfd) \
|
||||
BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_is_local_label
|
||||
@ -303,6 +303,7 @@ local label.
|
||||
@example
|
||||
#define bfd_is_local_label_name(abfd, name) \
|
||||
BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_canonicalize_symtab
|
||||
@ -317,6 +318,7 @@ including the NULL.
|
||||
#define bfd_canonicalize_symtab(abfd, location) \
|
||||
BFD_SEND (abfd, _bfd_canonicalize_symtab,\
|
||||
(abfd, location))
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_set_symtab
|
||||
@ -334,7 +336,7 @@ will be written.
|
||||
@subsubsection @code{bfd_print_symbol_vandf}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
void bfd_print_symbol_vandf(PTR file, asymbol *symbol);
|
||||
void bfd_print_symbol_vandf(bfd *abfd, PTR file, asymbol *symbol);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Print the value and flags of the @var{symbol} supplied to the
|
||||
@ -353,8 +355,21 @@ information, and will cause problems later on.
|
||||
@example
|
||||
#define bfd_make_empty_symbol(abfd) \
|
||||
BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
|
||||
|
||||
@end example
|
||||
|
||||
@findex _bfd_generic_make_empty_symbol
|
||||
@subsubsection @code{_bfd_generic_make_empty_symbol}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
asymbol *_bfd_generic_make_empty_symbol (bfd *);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Create a new @code{asymbol} structure for the BFD @var{abfd}
|
||||
and return a pointer to it. Used by core file routines,
|
||||
binary back-end and anywhere else where no private info
|
||||
is needed.
|
||||
|
||||
@findex bfd_make_debug_symbol
|
||||
@subsubsection @code{bfd_make_debug_symbol}
|
||||
@strong{Description}@*
|
||||
@ -364,6 +379,7 @@ yet to be worked out.
|
||||
@example
|
||||
#define bfd_make_debug_symbol(abfd,ptr,size) \
|
||||
BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_decode_symclass
|
||||
@ -420,5 +436,6 @@ Not enough memory exists to create private data for @var{osec}.
|
||||
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
|
||||
BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
|
||||
(ibfd, isymbol, obfd, osymbol))
|
||||
|
||||
@end example
|
||||
|
||||
|
@ -101,6 +101,7 @@ For operations which index on the BFD format:
|
||||
(((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
|
||||
(bfd_assert (__FILE__,__LINE__), NULL))
|
||||
#endif
|
||||
|
||||
@end example
|
||||
This is the structure which defines the type of BFD this is. The
|
||||
@code{xvec} member of the struct @code{bfd} itself points here. Each
|
||||
@ -111,7 +112,8 @@ FIXME, these names should be rationalised with the names of
|
||||
the entry points which call them. Too bad we can't have one
|
||||
macro to define them both!
|
||||
@example
|
||||
enum bfd_flavour @{
|
||||
enum bfd_flavour
|
||||
@{
|
||||
bfd_target_unknown_flavour,
|
||||
bfd_target_aout_flavour,
|
||||
bfd_target_coff_flavour,
|
||||
@ -129,7 +131,8 @@ enum bfd_flavour @{
|
||||
bfd_target_versados_flavour,
|
||||
bfd_target_msdos_flavour,
|
||||
bfd_target_ovax_flavour,
|
||||
bfd_target_evax_flavour
|
||||
bfd_target_evax_flavour,
|
||||
bfd_target_mmo_flavour
|
||||
@};
|
||||
|
||||
enum bfd_endian @{ BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN @};
|
||||
@ -139,301 +142,287 @@ typedef struct bfd_link_info _bfd_link_info;
|
||||
|
||||
typedef struct bfd_target
|
||||
@{
|
||||
@end example
|
||||
Identifies the kind of target, e.g., SunOS4, Ultrix, etc.
|
||||
@example
|
||||
/* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
|
||||
char *name;
|
||||
@end example
|
||||
The "flavour" of a back end is a general indication about the contents
|
||||
of a file.
|
||||
@example
|
||||
enum bfd_flavour flavour;
|
||||
@end example
|
||||
The order of bytes within the data area of a file.
|
||||
@example
|
||||
enum bfd_endian byteorder;
|
||||
@end example
|
||||
The order of bytes within the header parts of a file.
|
||||
@example
|
||||
enum bfd_endian header_byteorder;
|
||||
@end example
|
||||
A mask of all the flags which an executable may have set -
|
||||
from the set @code{BFD_NO_FLAGS}, @code{HAS_RELOC}, ...@code{D_PAGED}.
|
||||
@example
|
||||
flagword object_flags;
|
||||
@end example
|
||||
A mask of all the flags which a section may have set - from
|
||||
the set @code{SEC_NO_FLAGS}, @code{SEC_ALLOC}, ...@code{SET_NEVER_LOAD}.
|
||||
@example
|
||||
flagword section_flags;
|
||||
@end example
|
||||
The character normally found at the front of a symbol
|
||||
(if any), perhaps `_'.
|
||||
@example
|
||||
char symbol_leading_char;
|
||||
@end example
|
||||
The pad character for file names within an archive header.
|
||||
@example
|
||||
char ar_pad_char;
|
||||
@end example
|
||||
The maximum number of characters in an archive header.
|
||||
@example
|
||||
unsigned short ar_max_namelen;
|
||||
@end example
|
||||
Entries for byte swapping for data. These are different from the other
|
||||
entry points, since they don't take a BFD asthe first argument.
|
||||
Certain other handlers could do the same.
|
||||
@example
|
||||
bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
|
||||
@end example
|
||||
Byte swapping for the headers
|
||||
@example
|
||||
bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
|
||||
@end example
|
||||
Format dependent routines: these are vectors of entry points
|
||||
within the target vector structure, one for each format to check.
|
||||
|
||||
Check the format of a file being read. Return a @code{bfd_target *} or zero.
|
||||
@example
|
||||
/* The "flavour" of a back end is a general indication about
|
||||
the contents of a file. */
|
||||
enum bfd_flavour flavour;
|
||||
|
||||
/* The order of bytes within the data area of a file. */
|
||||
enum bfd_endian byteorder;
|
||||
|
||||
/* The order of bytes within the header parts of a file. */
|
||||
enum bfd_endian header_byteorder;
|
||||
|
||||
/* A mask of all the flags which an executable may have set -
|
||||
from the set @code{BFD_NO_FLAGS}, @code{HAS_RELOC}, ...@code{D_PAGED}. */
|
||||
flagword object_flags;
|
||||
|
||||
/* A mask of all the flags which a section may have set - from
|
||||
the set @code{SEC_NO_FLAGS}, @code{SEC_ALLOC}, ...@code{SET_NEVER_LOAD}. */
|
||||
flagword section_flags;
|
||||
|
||||
/* The character normally found at the front of a symbol.
|
||||
(if any), perhaps `_'. */
|
||||
char symbol_leading_char;
|
||||
|
||||
/* The pad character for file names within an archive header. */
|
||||
char ar_pad_char;
|
||||
|
||||
/* The maximum number of characters in an archive header. */
|
||||
unsigned short ar_max_namelen;
|
||||
|
||||
/* Entries for byte swapping for data. These are different from the
|
||||
other entry points, since they don't take a BFD asthe first argument.
|
||||
Certain other handlers could do the same. */
|
||||
bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *));
|
||||
|
||||
/* Byte swapping for the headers. */
|
||||
bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *));
|
||||
bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *));
|
||||
bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *));
|
||||
void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *));
|
||||
|
||||
/* Format dependent routines: these are vectors of entry points
|
||||
within the target vector structure, one for each format to check. */
|
||||
|
||||
/* Check the format of a file being read. Return a @code{bfd_target *} or zero. */
|
||||
const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *));
|
||||
@end example
|
||||
Set the format of a file being written.
|
||||
@example
|
||||
boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
|
||||
@end example
|
||||
Write cached information into a file being written, at @code{bfd_close}.
|
||||
@example
|
||||
boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
|
||||
|
||||
/* Set the format of a file being written. */
|
||||
boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *));
|
||||
|
||||
/* Write cached information into a file being written, at @code{bfd_close}. */
|
||||
boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *));
|
||||
|
||||
@end example
|
||||
The general target vector. These vectors are initialized using the
|
||||
BFD_JUMP_TABLE macros.
|
||||
@example
|
||||
|
||||
/* Generic entry points. */
|
||||
#define BFD_JUMP_TABLE_GENERIC(NAME)\
|
||||
CAT(NAME,_close_and_cleanup),\
|
||||
CAT(NAME,_bfd_free_cached_info),\
|
||||
CAT(NAME,_new_section_hook),\
|
||||
CAT(NAME,_get_section_contents),\
|
||||
CAT(NAME,_get_section_contents_in_window)
|
||||
@end example
|
||||
Do not "beautify" the CONCAT* macro args. Traditional C will not
|
||||
remove whitespace added here, and thus will fail to concatenate
|
||||
the tokens.
|
||||
@example
|
||||
#define BFD_JUMP_TABLE_GENERIC(NAME) \
|
||||
CONCAT2 (NAME,_close_and_cleanup), \
|
||||
CONCAT2 (NAME,_bfd_free_cached_info), \
|
||||
CONCAT2 (NAME,_new_section_hook), \
|
||||
CONCAT2 (NAME,_get_section_contents), \
|
||||
CONCAT2 (NAME,_get_section_contents_in_window)
|
||||
|
||||
/* Called when the BFD is being closed to do any necessary cleanup. */
|
||||
boolean (*_close_and_cleanup) PARAMS ((bfd *));
|
||||
boolean (*_close_and_cleanup) PARAMS ((bfd *));
|
||||
/* Ask the BFD to free all cached information. */
|
||||
boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
|
||||
boolean (*_bfd_free_cached_info) PARAMS ((bfd *));
|
||||
/* Called when a new section is created. */
|
||||
boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
|
||||
boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr));
|
||||
/* Read the contents of a section. */
|
||||
boolean (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
|
||||
file_ptr, bfd_size_type));
|
||||
boolean (*_bfd_get_section_contents_in_window)
|
||||
PARAMS ((bfd *, sec_ptr, bfd_window *,
|
||||
file_ptr, bfd_size_type));
|
||||
boolean (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
|
||||
file_ptr, bfd_size_type));
|
||||
boolean (*_bfd_get_section_contents_in_window)
|
||||
PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type));
|
||||
|
||||
/* Entry points to copy private data. */
|
||||
#define BFD_JUMP_TABLE_COPY(NAME)\
|
||||
CAT(NAME,_bfd_copy_private_bfd_data),\
|
||||
CAT(NAME,_bfd_merge_private_bfd_data),\
|
||||
CAT(NAME,_bfd_copy_private_section_data),\
|
||||
CAT(NAME,_bfd_copy_private_symbol_data),\
|
||||
CAT(NAME,_bfd_set_private_flags),\
|
||||
CAT(NAME,_bfd_print_private_bfd_data)\
|
||||
#define BFD_JUMP_TABLE_COPY(NAME) \
|
||||
CONCAT2 (NAME,_bfd_copy_private_bfd_data), \
|
||||
CONCAT2 (NAME,_bfd_merge_private_bfd_data), \
|
||||
CONCAT2 (NAME,_bfd_copy_private_section_data), \
|
||||
CONCAT2 (NAME,_bfd_copy_private_symbol_data), \
|
||||
CONCAT2 (NAME,_bfd_set_private_flags), \
|
||||
CONCAT2 (NAME,_bfd_print_private_bfd_data) \
|
||||
/* Called to copy BFD general private data from one object file
|
||||
to another. */
|
||||
boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
|
||||
boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
|
||||
/* Called to merge BFD general private data from one object file
|
||||
to a common output file when linking. */
|
||||
boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
|
||||
boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
|
||||
/* Called to copy BFD private section data from one object file
|
||||
to another. */
|
||||
boolean (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
|
||||
bfd *, sec_ptr));
|
||||
boolean (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
|
||||
bfd *, sec_ptr));
|
||||
/* Called to copy BFD private symbol data from one symbol
|
||||
to another. */
|
||||
boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
|
||||
bfd *, asymbol *));
|
||||
/* Called to set private backend flags */
|
||||
boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
|
||||
boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *,
|
||||
bfd *, asymbol *));
|
||||
/* Called to set private backend flags. */
|
||||
boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
|
||||
|
||||
/* Called to print private BFD data */
|
||||
boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
|
||||
/* Called to print private BFD data. */
|
||||
boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR));
|
||||
|
||||
/* Core file entry points. */
|
||||
#define BFD_JUMP_TABLE_CORE(NAME)\
|
||||
CAT(NAME,_core_file_failing_command),\
|
||||
CAT(NAME,_core_file_failing_signal),\
|
||||
CAT(NAME,_core_file_matches_executable_p)
|
||||
#define BFD_JUMP_TABLE_CORE(NAME) \
|
||||
CONCAT2 (NAME,_core_file_failing_command), \
|
||||
CONCAT2 (NAME,_core_file_failing_signal), \
|
||||
CONCAT2 (NAME,_core_file_matches_executable_p)
|
||||
char * (*_core_file_failing_command) PARAMS ((bfd *));
|
||||
int (*_core_file_failing_signal) PARAMS ((bfd *));
|
||||
boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *));
|
||||
|
||||
/* Archive entry points. */
|
||||
#define BFD_JUMP_TABLE_ARCHIVE(NAME)\
|
||||
CAT(NAME,_slurp_armap),\
|
||||
CAT(NAME,_slurp_extended_name_table),\
|
||||
CAT(NAME,_construct_extended_name_table),\
|
||||
CAT(NAME,_truncate_arname),\
|
||||
CAT(NAME,_write_armap),\
|
||||
CAT(NAME,_read_ar_hdr),\
|
||||
CAT(NAME,_openr_next_archived_file),\
|
||||
CAT(NAME,_get_elt_at_index),\
|
||||
CAT(NAME,_generic_stat_arch_elt),\
|
||||
CAT(NAME,_update_armap_timestamp)
|
||||
#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
|
||||
CONCAT2 (NAME,_slurp_armap), \
|
||||
CONCAT2 (NAME,_slurp_extended_name_table), \
|
||||
CONCAT2 (NAME,_construct_extended_name_table), \
|
||||
CONCAT2 (NAME,_truncate_arname), \
|
||||
CONCAT2 (NAME,_write_armap), \
|
||||
CONCAT2 (NAME,_read_ar_hdr), \
|
||||
CONCAT2 (NAME,_openr_next_archived_file), \
|
||||
CONCAT2 (NAME,_get_elt_at_index), \
|
||||
CONCAT2 (NAME,_generic_stat_arch_elt), \
|
||||
CONCAT2 (NAME,_update_armap_timestamp)
|
||||
boolean (*_bfd_slurp_armap) PARAMS ((bfd *));
|
||||
boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *));
|
||||
boolean (*_bfd_construct_extended_name_table)
|
||||
PARAMS ((bfd *, char **, bfd_size_type *, const char **));
|
||||
void (*_bfd_truncate_arname) PARAMS ((bfd *, CONST char *, char *));
|
||||
boolean (*write_armap) PARAMS ((bfd *arch,
|
||||
unsigned int elength,
|
||||
struct orl *map,
|
||||
unsigned int orl_count,
|
||||
int stridx));
|
||||
PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
|
||||
bfd * (*openr_next_archived_file) PARAMS ((bfd *arch, bfd *prev));
|
||||
PARAMS ((bfd *, char **, bfd_size_type *, const char **));
|
||||
void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *));
|
||||
boolean (*write_armap)
|
||||
PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int));
|
||||
PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *));
|
||||
bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *));
|
||||
#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i))
|
||||
bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex));
|
||||
int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *));
|
||||
boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *));
|
||||
|
||||
/* Entry points used for symbols. */
|
||||
#define BFD_JUMP_TABLE_SYMBOLS(NAME)\
|
||||
CAT(NAME,_get_symtab_upper_bound),\
|
||||
CAT(NAME,_get_symtab),\
|
||||
CAT(NAME,_make_empty_symbol),\
|
||||
CAT(NAME,_print_symbol),\
|
||||
CAT(NAME,_get_symbol_info),\
|
||||
CAT(NAME,_bfd_is_local_label_name),\
|
||||
CAT(NAME,_get_lineno),\
|
||||
CAT(NAME,_find_nearest_line),\
|
||||
CAT(NAME,_bfd_make_debug_symbol),\
|
||||
CAT(NAME,_read_minisymbols),\
|
||||
CAT(NAME,_minisymbol_to_symbol)
|
||||
long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
|
||||
long (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
|
||||
struct symbol_cache_entry **));
|
||||
struct symbol_cache_entry *
|
||||
(*_bfd_make_empty_symbol) PARAMS ((bfd *));
|
||||
void (*_bfd_print_symbol) PARAMS ((bfd *, PTR,
|
||||
struct symbol_cache_entry *,
|
||||
bfd_print_symbol_type));
|
||||
#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
|
||||
CONCAT2 (NAME,_get_symtab_upper_bound), \
|
||||
CONCAT2 (NAME,_get_symtab), \
|
||||
CONCAT2 (NAME,_make_empty_symbol), \
|
||||
CONCAT2 (NAME,_print_symbol), \
|
||||
CONCAT2 (NAME,_get_symbol_info), \
|
||||
CONCAT2 (NAME,_bfd_is_local_label_name), \
|
||||
CONCAT2 (NAME,_get_lineno), \
|
||||
CONCAT2 (NAME,_find_nearest_line), \
|
||||
CONCAT2 (NAME,_bfd_make_debug_symbol), \
|
||||
CONCAT2 (NAME,_read_minisymbols), \
|
||||
CONCAT2 (NAME,_minisymbol_to_symbol)
|
||||
long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *));
|
||||
long (*_bfd_canonicalize_symtab) PARAMS ((bfd *,
|
||||
struct symbol_cache_entry **));
|
||||
struct symbol_cache_entry *
|
||||
(*_bfd_make_empty_symbol) PARAMS ((bfd *));
|
||||
void (*_bfd_print_symbol) PARAMS ((bfd *, PTR,
|
||||
struct symbol_cache_entry *,
|
||||
bfd_print_symbol_type));
|
||||
#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e))
|
||||
void (*_bfd_get_symbol_info) PARAMS ((bfd *,
|
||||
struct symbol_cache_entry *,
|
||||
symbol_info *));
|
||||
void (*_bfd_get_symbol_info) PARAMS ((bfd *,
|
||||
struct symbol_cache_entry *,
|
||||
symbol_info *));
|
||||
#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e))
|
||||
boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
|
||||
boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *));
|
||||
|
||||
alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
|
||||
boolean (*_bfd_find_nearest_line) PARAMS ((bfd *abfd,
|
||||
struct sec *section, struct symbol_cache_entry **symbols,
|
||||
bfd_vma offset, CONST char **file, CONST char **func,
|
||||
unsigned int *line));
|
||||
alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *));
|
||||
boolean (*_bfd_find_nearest_line)
|
||||
PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma,
|
||||
const char **, const char **, unsigned int *));
|
||||
/* Back-door to allow format-aware applications to create debug symbols
|
||||
while using BFD for everything else. Currently used by the assembler
|
||||
when creating COFF files. */
|
||||
asymbol * (*_bfd_make_debug_symbol) PARAMS ((
|
||||
bfd *abfd,
|
||||
void *ptr,
|
||||
unsigned long size));
|
||||
asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *,
|
||||
unsigned long size));
|
||||
#define bfd_read_minisymbols(b, d, m, s) \
|
||||
BFD_SEND (b, _read_minisymbols, (b, d, m, s))
|
||||
long (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *,
|
||||
unsigned int *));
|
||||
long (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *,
|
||||
unsigned int *));
|
||||
#define bfd_minisymbol_to_symbol(b, d, m, f) \
|
||||
BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
|
||||
asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR,
|
||||
asymbol *));
|
||||
|
||||
/* Routines for relocs. */
|
||||
#define BFD_JUMP_TABLE_RELOCS(NAME)\
|
||||
CAT(NAME,_get_reloc_upper_bound),\
|
||||
CAT(NAME,_canonicalize_reloc),\
|
||||
CAT(NAME,_bfd_reloc_type_lookup)
|
||||
long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
|
||||
long (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **,
|
||||
struct symbol_cache_entry **));
|
||||
#define BFD_JUMP_TABLE_RELOCS(NAME) \
|
||||
CONCAT2 (NAME,_get_reloc_upper_bound), \
|
||||
CONCAT2 (NAME,_canonicalize_reloc), \
|
||||
CONCAT2 (NAME,_bfd_reloc_type_lookup)
|
||||
long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr));
|
||||
long (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **,
|
||||
struct symbol_cache_entry **));
|
||||
/* See documentation on reloc types. */
|
||||
reloc_howto_type *
|
||||
(*reloc_type_lookup) PARAMS ((bfd *abfd,
|
||||
bfd_reloc_code_real_type code));
|
||||
(*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type));
|
||||
|
||||
/* Routines used when writing an object file. */
|
||||
#define BFD_JUMP_TABLE_WRITE(NAME)\
|
||||
CAT(NAME,_set_arch_mach),\
|
||||
CAT(NAME,_set_section_contents)
|
||||
boolean (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture,
|
||||
unsigned long));
|
||||
boolean (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
|
||||
file_ptr, bfd_size_type));
|
||||
#define BFD_JUMP_TABLE_WRITE(NAME) \
|
||||
CONCAT2 (NAME,_set_arch_mach), \
|
||||
CONCAT2 (NAME,_set_section_contents)
|
||||
boolean (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture,
|
||||
unsigned long));
|
||||
boolean (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR,
|
||||
file_ptr, bfd_size_type));
|
||||
|
||||
/* Routines used by the linker. */
|
||||
#define BFD_JUMP_TABLE_LINK(NAME)\
|
||||
CAT(NAME,_sizeof_headers),\
|
||||
CAT(NAME,_bfd_get_relocated_section_contents),\
|
||||
CAT(NAME,_bfd_relax_section),\
|
||||
CAT(NAME,_bfd_link_hash_table_create),\
|
||||
CAT(NAME,_bfd_link_add_symbols),\
|
||||
CAT(NAME,_bfd_final_link),\
|
||||
CAT(NAME,_bfd_link_split_section),\
|
||||
CAT(NAME,_bfd_gc_sections)
|
||||
int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
|
||||
bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *,
|
||||
struct bfd_link_info *, struct bfd_link_order *,
|
||||
bfd_byte *data, boolean relocateable,
|
||||
struct symbol_cache_entry **));
|
||||
#define BFD_JUMP_TABLE_LINK(NAME) \
|
||||
CONCAT2 (NAME,_sizeof_headers), \
|
||||
CONCAT2 (NAME,_bfd_get_relocated_section_contents), \
|
||||
CONCAT2 (NAME,_bfd_relax_section), \
|
||||
CONCAT2 (NAME,_bfd_link_hash_table_create), \
|
||||
CONCAT2 (NAME,_bfd_link_add_symbols), \
|
||||
CONCAT2 (NAME,_bfd_final_link), \
|
||||
CONCAT2 (NAME,_bfd_link_split_section), \
|
||||
CONCAT2 (NAME,_bfd_gc_sections), \
|
||||
CONCAT2 (NAME,_bfd_merge_sections)
|
||||
int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean));
|
||||
bfd_byte *(*_bfd_get_relocated_section_contents)
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *,
|
||||
bfd_byte *, boolean, struct symbol_cache_entry **));
|
||||
|
||||
boolean (*_bfd_relax_section) PARAMS ((bfd *, struct sec *,
|
||||
struct bfd_link_info *, boolean *again));
|
||||
boolean (*_bfd_relax_section)
|
||||
PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *));
|
||||
|
||||
/* Create a hash table for the linker. Different backends store
|
||||
different information in this table. */
|
||||
struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *));
|
||||
|
||||
/* Add symbols from this object file into the hash table. */
|
||||
boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
|
||||
/* Do a link based on the link_order structures attached to each
|
||||
section of the BFD. */
|
||||
boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
|
||||
/* Should this section be split up into smaller pieces during linking. */
|
||||
boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
|
||||
boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *));
|
||||
|
||||
/* Remove sections that are not referenced from the output. */
|
||||
boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
|
||||
/* Attempt to merge SEC_MERGE sections. */
|
||||
boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *));
|
||||
|
||||
/* Routines to handle dynamic symbols and relocs. */
|
||||
#define BFD_JUMP_TABLE_DYNAMIC(NAME)\
|
||||
CAT(NAME,_get_dynamic_symtab_upper_bound),\
|
||||
CAT(NAME,_canonicalize_dynamic_symtab),\
|
||||
CAT(NAME,_get_dynamic_reloc_upper_bound),\
|
||||
CAT(NAME,_canonicalize_dynamic_reloc)
|
||||
/* Get the amount of memory required to hold the dynamic symbols. */
|
||||
long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
|
||||
#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
|
||||
CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \
|
||||
CONCAT2 (NAME,_canonicalize_dynamic_symtab), \
|
||||
CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \
|
||||
CONCAT2 (NAME,_canonicalize_dynamic_reloc)
|
||||
/* Get the amount of memory required to hold the dynamic symbols. */
|
||||
long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *));
|
||||
/* Read in the dynamic symbols. */
|
||||
long (*_bfd_canonicalize_dynamic_symtab)
|
||||
long (*_bfd_canonicalize_dynamic_symtab)
|
||||
PARAMS ((bfd *, struct symbol_cache_entry **));
|
||||
/* Get the amount of memory required to hold the dynamic relocs. */
|
||||
long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
|
||||
long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *));
|
||||
/* Read in the dynamic relocs. */
|
||||
long (*_bfd_canonicalize_dynamic_reloc)
|
||||
long (*_bfd_canonicalize_dynamic_reloc)
|
||||
PARAMS ((bfd *, arelent **, struct symbol_cache_entry **));
|
||||
|
||||
@end example
|
||||
@ -443,16 +432,15 @@ and little endian code, and target chosen by the linker has the wrong
|
||||
endianness. The function open_output() in ld/ldlang.c uses this field
|
||||
to find an alternative output format that is suitable.
|
||||
@example
|
||||
/* Opposite endian version of this target. */
|
||||
const struct bfd_target * alternative_target;
|
||||
/* Opposite endian version of this target. */
|
||||
const struct bfd_target * alternative_target;
|
||||
|
||||
@end example
|
||||
Data for use by back-end routines, which isn't generic enough to belong
|
||||
in this structure.
|
||||
@example
|
||||
PTR backend_data;
|
||||
/* Data for use by back-end routines, which isn't
|
||||
generic enough to belong in this structure. */
|
||||
PTR backend_data;
|
||||
|
||||
@} bfd_target;
|
||||
|
||||
@end example
|
||||
|
||||
@findex bfd_set_default_target
|
||||
@ -470,7 +458,7 @@ name or a configuration triplet.
|
||||
@subsubsection @code{bfd_find_target}
|
||||
@strong{Synopsis}
|
||||
@example
|
||||
const bfd_target *bfd_find_target(CONST char *target_name, bfd *abfd);
|
||||
const bfd_target *bfd_find_target(const char *target_name, bfd *abfd);
|
||||
@end example
|
||||
@strong{Description}@*
|
||||
Return a pointer to the transfer vector for the object target
|
||||
|
@ -51,6 +51,8 @@ static struct bfd_hash_entry *link_hash_newfunc
|
||||
PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
|
||||
static struct bfd_link_hash_table *ppc64_elf_link_hash_table_create
|
||||
PARAMS ((bfd *));
|
||||
static boolean create_linkage_sections
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
static boolean create_got_section
|
||||
PARAMS ((bfd *, struct bfd_link_info *));
|
||||
static boolean ppc64_elf_create_dynamic_sections
|
||||
@ -153,6 +155,11 @@ static boolean ppc64_elf_finish_dynamic_sections
|
||||
#define LIS_R0_0 0x3c000000 /* lis %r0,0 */
|
||||
#define ORI_R0_R0_0 0x60000000 /* ori %r0,%r0,0 */
|
||||
|
||||
/* Instructions to save and restore floating point regs. */
|
||||
#define STFD_FR0_0R1 0xd8010000 /* stfd %fr0,0(%r1) */
|
||||
#define LFD_FR0_0R1 0xc8010000 /* lfd %fr0,0(%r1) */
|
||||
#define BLR 0x4e800020 /* blr */
|
||||
|
||||
/* Since .opd is an array of descriptors and each entry will end up
|
||||
with identical R_PPC64_RELATIVE relocs, there is really no need to
|
||||
propagate .opd relocs; The dynamic linker should be taught to
|
||||
@ -1719,6 +1726,7 @@ struct ppc_link_hash_table
|
||||
asection *srelbss;
|
||||
asection *sstub;
|
||||
asection *sglink;
|
||||
asection *sfpr;
|
||||
|
||||
/* Set on error. */
|
||||
int plt_overflow;
|
||||
@ -1790,12 +1798,49 @@ ppc64_elf_link_hash_table_create (abfd)
|
||||
htab->srelbss = NULL;
|
||||
htab->sstub = NULL;
|
||||
htab->sglink = NULL;
|
||||
htab->sfpr = NULL;
|
||||
htab->plt_overflow = 0;
|
||||
htab->sym_sec.abfd = NULL;
|
||||
|
||||
return &htab->elf.root;
|
||||
}
|
||||
|
||||
/* Create sections for linker generated code. */
|
||||
|
||||
static boolean
|
||||
create_linkage_sections (dynobj, info)
|
||||
bfd *dynobj;
|
||||
struct bfd_link_info *info;
|
||||
{
|
||||
struct ppc_link_hash_table *htab;
|
||||
flagword flags;
|
||||
|
||||
htab = ppc_hash_table (info);
|
||||
|
||||
/* Create .sfpr for code to save and restore fp regs. */
|
||||
flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY
|
||||
| SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
|
||||
htab->sfpr = bfd_make_section (dynobj, ".sfpr");
|
||||
if (htab->sfpr == NULL
|
||||
|| ! bfd_set_section_flags (dynobj, htab->sfpr, flags)
|
||||
|| ! bfd_set_section_alignment (dynobj, htab->sfpr, 2))
|
||||
return false;
|
||||
|
||||
/* Create .stub and .glink for global linkage functions. */
|
||||
htab->sstub = bfd_make_section (dynobj, ".stub");
|
||||
if (htab->sstub == NULL
|
||||
|| ! bfd_set_section_flags (dynobj, htab->sstub, flags)
|
||||
|| ! bfd_set_section_alignment (dynobj, htab->sstub, 2))
|
||||
return false;
|
||||
htab->sglink = bfd_make_section (dynobj, ".glink");
|
||||
if (htab->sglink == NULL
|
||||
|| ! bfd_set_section_flags (dynobj, htab->sglink, flags)
|
||||
|| ! bfd_set_section_alignment (dynobj, htab->sglink, 2))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Create .got and .rela.got sections in DYNOBJ, and set up
|
||||
shortcuts to them in our hash table. */
|
||||
|
||||
@ -1825,8 +1870,7 @@ create_got_section (dynobj, info)
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Create the .stub and .glink sections as well as the ordinary
|
||||
dynamic sections. */
|
||||
/* Create the dynamic sections, and set up shortcuts. */
|
||||
|
||||
static boolean
|
||||
ppc64_elf_create_dynamic_sections (dynobj, info)
|
||||
@ -1834,7 +1878,6 @@ ppc64_elf_create_dynamic_sections (dynobj, info)
|
||||
struct bfd_link_info *info;
|
||||
{
|
||||
struct ppc_link_hash_table *htab;
|
||||
flagword flags;
|
||||
|
||||
htab = ppc_hash_table (info);
|
||||
if (!htab->sgot && !create_got_section (dynobj, info))
|
||||
@ -1853,20 +1896,6 @@ ppc64_elf_create_dynamic_sections (dynobj, info)
|
||||
|| (!info->shared && !htab->srelbss))
|
||||
abort ();
|
||||
|
||||
/* Create .stub and .glink for global linkage functions. */
|
||||
flags = (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY
|
||||
| SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED);
|
||||
htab->sstub = bfd_make_section (dynobj, ".stub");
|
||||
if (htab->sstub == NULL
|
||||
|| ! bfd_set_section_flags (dynobj, htab->sstub, flags)
|
||||
|| ! bfd_set_section_alignment (dynobj, htab->sstub, 2))
|
||||
return false;
|
||||
htab->sglink = bfd_make_section (dynobj, ".glink");
|
||||
if (htab->sglink == NULL
|
||||
|| ! bfd_set_section_flags (dynobj, htab->sglink, flags)
|
||||
|| ! bfd_set_section_alignment (dynobj, htab->sglink, 3))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1955,6 +1984,12 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
||||
sreloc = NULL;
|
||||
is_opd = strcmp (bfd_get_section_name (abfd, sec), ".opd") == 0;
|
||||
|
||||
if (htab->elf.dynobj == NULL)
|
||||
htab->elf.dynobj = abfd;
|
||||
if (htab->sfpr == NULL
|
||||
&& !create_linkage_sections (htab->elf.dynobj, info))
|
||||
return false;
|
||||
|
||||
rel_end = relocs + sec->reloc_count;
|
||||
for (rel = relocs; rel < rel_end; rel++)
|
||||
{
|
||||
@ -1980,13 +2015,9 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
||||
case R_PPC64_GOT16_LO_DS:
|
||||
|
||||
/* This symbol requires a global offset table entry. */
|
||||
if (htab->sgot == NULL)
|
||||
{
|
||||
if (htab->elf.dynobj == NULL)
|
||||
htab->elf.dynobj = abfd;
|
||||
if (!create_got_section (htab->elf.dynobj, info))
|
||||
return false;
|
||||
}
|
||||
if (htab->sgot == NULL
|
||||
&& !create_got_section (htab->elf.dynobj, info))
|
||||
return false;
|
||||
|
||||
if (h != NULL)
|
||||
{
|
||||
@ -2197,9 +2228,6 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
}
|
||||
|
||||
if (htab->elf.dynobj == NULL)
|
||||
htab->elf.dynobj = abfd;
|
||||
|
||||
dynobj = htab->elf.dynobj;
|
||||
sreloc = bfd_get_section_by_name (dynobj, name);
|
||||
if (sreloc == NULL)
|
||||
@ -2263,6 +2291,7 @@ ppc64_elf_check_relocs (abfd, info, sec, relocs)
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2554,25 +2583,117 @@ func_desc_adjust (h, inf)
|
||||
been imported from another library. Function code syms that
|
||||
are really in the library we must leave global to prevent the
|
||||
linker dragging in a definition from a static library. */
|
||||
force_local = (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0;
|
||||
force_local = ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0
|
||||
&& info->shared);
|
||||
_bfd_elf_link_hash_hide_symbol (info, h, force_local);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#define MIN_SAVE_FPR 14
|
||||
#define MAX_SAVE_FPR 31
|
||||
|
||||
/* Called near the start of bfd_elf_size_dynamic_sections. We use
|
||||
this hook to transfer dynamic linking information gathered so far
|
||||
on function code symbol entries, to their corresponding function
|
||||
descriptor symbol entries. */
|
||||
this hook to a) provide some gcc support functions, and b) transfer
|
||||
dynamic linking information gathered so far on function code symbol
|
||||
entries, to their corresponding function descriptor symbol entries. */
|
||||
static boolean
|
||||
ppc64_elf_func_desc_adjust (obfd, info)
|
||||
bfd *obfd ATTRIBUTE_UNUSED;
|
||||
struct bfd_link_info *info;
|
||||
{
|
||||
struct ppc_link_hash_table *htab;
|
||||
unsigned int lowest_savef = MAX_SAVE_FPR + 2;
|
||||
unsigned int lowest_restf = MAX_SAVE_FPR + 2;
|
||||
unsigned int i;
|
||||
struct elf_link_hash_entry *h;
|
||||
char sym[10];
|
||||
|
||||
htab = ppc_hash_table (info);
|
||||
|
||||
if (htab->sfpr == NULL)
|
||||
/* We don't have any relocs. */
|
||||
return true;
|
||||
|
||||
/* First provide any missing ._savef* and ._restf* functions. */
|
||||
memcpy (sym, "._savef14", 10);
|
||||
for (i = MIN_SAVE_FPR; i <= MAX_SAVE_FPR; i++)
|
||||
{
|
||||
sym[7] = i / 10 + '0';
|
||||
sym[8] = i % 10 + '0';
|
||||
h = elf_link_hash_lookup (&htab->elf, sym, false, false, true);
|
||||
if (h != NULL
|
||||
&& h->root.type == bfd_link_hash_undefined)
|
||||
{
|
||||
if (lowest_savef > i)
|
||||
lowest_savef = i;
|
||||
h->root.type = bfd_link_hash_defined;
|
||||
h->root.u.def.section = htab->sfpr;
|
||||
h->root.u.def.value = (i - lowest_savef) * 4;
|
||||
h->type = STT_FUNC;
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
_bfd_elf_link_hash_hide_symbol (info, h, info->shared);
|
||||
}
|
||||
}
|
||||
|
||||
memcpy (sym, "._restf14", 10);
|
||||
for (i = MIN_SAVE_FPR; i <= MAX_SAVE_FPR; i++)
|
||||
{
|
||||
sym[7] = i / 10 + '0';
|
||||
sym[8] = i % 10 + '0';
|
||||
h = elf_link_hash_lookup (&htab->elf, sym, false, false, true);
|
||||
if (h != NULL
|
||||
&& h->root.type == bfd_link_hash_undefined)
|
||||
{
|
||||
if (lowest_restf > i)
|
||||
lowest_restf = i;
|
||||
h->root.type = bfd_link_hash_defined;
|
||||
h->root.u.def.section = htab->sfpr;
|
||||
h->root.u.def.value = ((MAX_SAVE_FPR + 2 - lowest_savef) * 4
|
||||
+ (i - lowest_restf) * 4);
|
||||
h->type = STT_FUNC;
|
||||
h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR;
|
||||
_bfd_elf_link_hash_hide_symbol (info, h, info->shared);
|
||||
}
|
||||
}
|
||||
|
||||
htab->sfpr->_raw_size = ((MAX_SAVE_FPR + 2 - lowest_savef) * 4
|
||||
+ (MAX_SAVE_FPR + 2 - lowest_restf) * 4);
|
||||
|
||||
if (htab->sfpr->_raw_size == 0)
|
||||
{
|
||||
_bfd_strip_section_from_output (info, htab->sfpr);
|
||||
}
|
||||
else
|
||||
{
|
||||
bfd_byte *p = (bfd_byte *) bfd_alloc (htab->elf.dynobj,
|
||||
htab->sfpr->_raw_size);
|
||||
if (p == NULL)
|
||||
return false;
|
||||
htab->sfpr->contents = p;
|
||||
|
||||
for (i = lowest_savef; i <= MAX_SAVE_FPR; i++)
|
||||
{
|
||||
unsigned int fpr = i << 21;
|
||||
unsigned int stackoff = (1 << 16) - (MAX_SAVE_FPR + 1 - i) * 8;
|
||||
bfd_put_32 (htab->elf.dynobj, STFD_FR0_0R1 + fpr + stackoff, p);
|
||||
p += 4;
|
||||
}
|
||||
bfd_put_32 (htab->elf.dynobj, BLR, p);
|
||||
p += 4;
|
||||
|
||||
for (i = lowest_restf; i <= MAX_SAVE_FPR; i++)
|
||||
{
|
||||
unsigned int fpr = i << 21;
|
||||
unsigned int stackoff = (1 << 16) - (MAX_SAVE_FPR + 1 - i) * 8;
|
||||
bfd_put_32 (htab->elf.dynobj, LFD_FR0_0R1 + fpr + stackoff, p);
|
||||
p += 4;
|
||||
}
|
||||
bfd_put_32 (htab->elf.dynobj, BLR, p);
|
||||
p += 4;
|
||||
}
|
||||
|
||||
elf_link_hash_traverse (&htab->elf, func_desc_adjust, (PTR) info);
|
||||
return true;
|
||||
}
|
||||
@ -3511,6 +3632,8 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
bfd_vma TOCstart;
|
||||
boolean ret = true;
|
||||
boolean is_opd;
|
||||
/* Disabled until we sort out how ld should choose 'y' vs 'at'. */
|
||||
boolean is_power4 = false;
|
||||
|
||||
/* Initialize howto table if needed. */
|
||||
if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
|
||||
@ -3640,22 +3763,31 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
/* Branch taken prediction relocations. */
|
||||
case R_PPC64_ADDR14_BRTAKEN:
|
||||
case R_PPC64_REL14_BRTAKEN:
|
||||
insn = 0x01 << 21; /* Set 't' bit, lowest bit of BO field. */
|
||||
insn = 0x01 << 21; /* 'y' or 't' bit, lowest bit of BO field. */
|
||||
/* Fall thru. */
|
||||
|
||||
/* Branch not taken prediction relocations. */
|
||||
case R_PPC64_ADDR14_BRNTAKEN:
|
||||
case R_PPC64_REL14_BRNTAKEN:
|
||||
insn |= bfd_get_32 (output_bfd, contents + offset) & ~(0x01 << 21);
|
||||
/* Set 'a' bit. This is 0b00010 in BO field for branch on CR(BI)
|
||||
insns (BO == 001at or 011at), and 0b01000 for branch on CTR
|
||||
insns (BO == 1a00t or 1a01t). */
|
||||
if ((insn & (0x14 << 21)) == (0x04 << 21))
|
||||
insn |= 0x02 << 21;
|
||||
else if ((insn & (0x14 << 21)) == (0x10 << 21))
|
||||
insn |= 0x08 << 21;
|
||||
if (is_power4)
|
||||
{
|
||||
/* Set 'a' bit. This is 0b00010 in BO field for branch
|
||||
on CR(BI) insns (BO == 001at or 011at), and 0b01000
|
||||
for branch on CTR insns (BO == 1a00t or 1a01t). */
|
||||
if ((insn & (0x14 << 21)) == (0x04 << 21))
|
||||
insn |= 0x02 << 21;
|
||||
else if ((insn & (0x14 << 21)) == (0x10 << 21))
|
||||
insn |= 0x08 << 21;
|
||||
else
|
||||
break;
|
||||
}
|
||||
else
|
||||
break;
|
||||
{
|
||||
/* Invert 'y' bit if not the default. */
|
||||
if ((bfd_signed_vma) (relocation - offset) < 0)
|
||||
insn ^= 0x01 << 21;
|
||||
}
|
||||
|
||||
bfd_put_32 (output_bfd, (bfd_vma) insn, contents + offset);
|
||||
break;
|
||||
|
@ -1473,7 +1473,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||
rela->r_offset);
|
||||
if (outrel.r_offset == (bfd_vma) -1)
|
||||
skip = true;
|
||||
else if (outrel.r_offset == (bfd_vma) -1)
|
||||
else if (outrel.r_offset == (bfd_vma) -2)
|
||||
skip = true, relocate = true;
|
||||
|
||||
outrel.r_offset += (input_section->output_section->vma
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ELF linker support.
|
||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@ -5375,8 +5375,9 @@ elf_bfd_final_link (abfd, info)
|
||||
the original st_name with the dynstr_index. */
|
||||
sym = e->isym;
|
||||
|
||||
if (e->isym.st_shndx < SHN_LORESERVE
|
||||
|| e->isym.st_shndx > SHN_HIRESERVE)
|
||||
if (e->isym.st_shndx != SHN_UNDEF
|
||||
&& (e->isym.st_shndx < SHN_LORESERVE
|
||||
|| e->isym.st_shndx > SHN_HIRESERVE))
|
||||
{
|
||||
s = bfd_section_from_elf_index (e->input_bfd,
|
||||
e->isym.st_shndx);
|
||||
|
@ -1,3 +1,16 @@
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* README: Update some version numbers.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* doc/binutils.texi (Target Selection): Fix LD crossreferences.
|
||||
(Architecture Selection): Likewise.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* NEWS: Mark version 2.12.
|
||||
|
||||
2002-02-15 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* NEWS: Mention support for MMIX.
|
||||
|
@ -1,5 +1,7 @@
|
||||
-*- text -*-
|
||||
|
||||
Changes in binutils 2.12:
|
||||
|
||||
* Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
|
||||
|
||||
* size: Add --totals to display summary of sizes (Berkeley format only).
|
||||
|
@ -18,7 +18,7 @@ Unpacking and Installation -- quick overview
|
||||
|
||||
When you unpack the binutils archive file, you will get a directory
|
||||
called something like `binutils-XXX', where XXX is the number of the
|
||||
release. (Probably 2.11.2 or higher). This directory contains
|
||||
release. (Probably 2.12 or higher). This directory contains
|
||||
various files and sub-directories. Most of the files in the top
|
||||
directory are for information and for configuration. The actual
|
||||
source code is in sub-directories.
|
||||
@ -110,7 +110,7 @@ the ranlib program in order to build the distribution.
|
||||
Porting
|
||||
=======
|
||||
|
||||
Binutils-2.11 supports many different architectures, but there
|
||||
Binutils-2.12 supports many different architectures, but there
|
||||
are many more not supported, including some that were supported
|
||||
by earlier versions. We are hoping for volunteers to improve this
|
||||
situation.
|
||||
@ -118,7 +118,7 @@ situation.
|
||||
The major effort in porting binutils to a new host and/or target
|
||||
architecture involves the BFD library. There is some documentation
|
||||
in ../bfd/doc. The file ../gdb/doc/gdbint.texinfo (distributed
|
||||
with gdb-4.x) may also be of help.
|
||||
with gdb-5.x) may also be of help.
|
||||
|
||||
Reporting bugs
|
||||
==============
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,34 +1,42 @@
|
||||
#ifndef BISON_Y_TAB_H
|
||||
# define BISON_Y_TAB_H
|
||||
|
||||
#ifndef YYSTYPE
|
||||
typedef union {
|
||||
char *id;
|
||||
int number;
|
||||
} YYSTYPE;
|
||||
#define NAME 257
|
||||
#define LIBRARY 258
|
||||
#define DESCRIPTION 259
|
||||
#define STACKSIZE 260
|
||||
#define HEAPSIZE 261
|
||||
#define CODE 262
|
||||
#define DATA 263
|
||||
#define SECTIONS 264
|
||||
#define EXPORTS 265
|
||||
#define IMPORTS 266
|
||||
#define VERSIONK 267
|
||||
#define BASE 268
|
||||
#define CONSTANT 269
|
||||
#define READ 270
|
||||
#define WRITE 271
|
||||
#define EXECUTE 272
|
||||
#define SHARED 273
|
||||
#define NONSHARED 274
|
||||
#define NONAME 275
|
||||
#define SINGLE 276
|
||||
#define MULTIPLE 277
|
||||
#define INITINSTANCE 278
|
||||
#define INITGLOBAL 279
|
||||
#define TERMINSTANCE 280
|
||||
#define TERMGLOBAL 281
|
||||
#define ID 282
|
||||
#define NUMBER 283
|
||||
} yystype;
|
||||
# define YYSTYPE yystype
|
||||
#endif
|
||||
# define NAME 257
|
||||
# define LIBRARY 258
|
||||
# define DESCRIPTION 259
|
||||
# define STACKSIZE 260
|
||||
# define HEAPSIZE 261
|
||||
# define CODE 262
|
||||
# define DATA 263
|
||||
# define SECTIONS 264
|
||||
# define EXPORTS 265
|
||||
# define IMPORTS 266
|
||||
# define VERSIONK 267
|
||||
# define BASE 268
|
||||
# define CONSTANT 269
|
||||
# define READ 270
|
||||
# define WRITE 271
|
||||
# define EXECUTE 272
|
||||
# define SHARED 273
|
||||
# define NONSHARED 274
|
||||
# define NONAME 275
|
||||
# define SINGLE 276
|
||||
# define MULTIPLE 277
|
||||
# define INITINSTANCE 278
|
||||
# define INITGLOBAL 279
|
||||
# define TERMINSTANCE 280
|
||||
# define TERMGLOBAL 281
|
||||
# define ID 282
|
||||
# define NUMBER 283
|
||||
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
#endif /* not BISON_Y_TAB_H */
|
||||
|
231
contrib/binutils/binutils/doc/addr2line.1
Normal file
231
contrib/binutils/binutils/doc/addr2line.1
Normal file
@ -0,0 +1,231 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "ADDR2LINE 1"
|
||||
.TH ADDR2LINE 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
addr2line \- convert addresses into file names and line numbers.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
addr2line [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]
|
||||
[\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
|
||||
[\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
|
||||
[\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
|
||||
[addr addr ...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBaddr2line\fR translates program addresses into file names and line
|
||||
numbers. Given an address and an executable, it uses the debugging
|
||||
information in the executable to figure out which file name and line
|
||||
number are associated with a given address.
|
||||
.PP
|
||||
The executable to use is specified with the \fB\-e\fR option. The
|
||||
default is the file \fIa.out\fR.
|
||||
.PP
|
||||
\&\fBaddr2line\fR has two modes of operation.
|
||||
.PP
|
||||
In the first, hexadecimal addresses are specified on the command line,
|
||||
and \fBaddr2line\fR displays the file name and line number for each
|
||||
address.
|
||||
.PP
|
||||
In the second, \fBaddr2line\fR reads hexadecimal addresses from
|
||||
standard input, and prints the file name and line number for each
|
||||
address on standard output. In this mode, \fBaddr2line\fR may be used
|
||||
in a pipe to convert dynamically chosen addresses.
|
||||
.PP
|
||||
The format of the output is \fB\s-1FILENAME:LINENO\s0\fR. The file name and
|
||||
line number for each address is printed on a separate line. If the
|
||||
\&\fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR line is
|
||||
preceded by a \fB\s-1FUNCTIONNAME\s0\fR line which is the name of the function
|
||||
containing the address.
|
||||
.PP
|
||||
If the file name or function name can not be determined,
|
||||
\&\fBaddr2line\fR will print two question marks in their place. If the
|
||||
line number can not be determined, \fBaddr2line\fR will print 0.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The long and short forms of options, shown here as alternatives, are
|
||||
equivalent.
|
||||
.IP "\fB\-b\fR \fIbfdname\fR" 4
|
||||
.IX Item "-b bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
.PD
|
||||
Specify that the object-code format for the object files is
|
||||
\&\fIbfdname\fR.
|
||||
.IP "\fB\-C\fR" 4
|
||||
.IX Item "-C"
|
||||
.PD 0
|
||||
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
|
||||
.IX Item "--demangle[=style]"
|
||||
.PD
|
||||
Decode (\fIdemangle\fR) low-level symbol names into user-level names.
|
||||
Besides removing any initial underscore prepended by the system, this
|
||||
makes \*(C+ function names readable. Different compilers have different
|
||||
mangling styles. The optional demangling style argument can be used to
|
||||
choose an appropriate demangling style for your compiler.
|
||||
.IP "\fB\-e\fR \fIfilename\fR" 4
|
||||
.IX Item "-e filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
|
||||
.IX Item "--exe=filename"
|
||||
.PD
|
||||
Specify the name of the executable for which addresses should be
|
||||
translated. The default file is \fIa.out\fR.
|
||||
.IP "\fB\-f\fR" 4
|
||||
.IX Item "-f"
|
||||
.PD 0
|
||||
.IP "\fB\-\-functions\fR" 4
|
||||
.IX Item "--functions"
|
||||
.PD
|
||||
Display function names as well as file and line number information.
|
||||
.IP "\fB\-s\fR" 4
|
||||
.IX Item "-s"
|
||||
.PD 0
|
||||
.IP "\fB\-\-basenames\fR" 4
|
||||
.IX Item "--basenames"
|
||||
.PD
|
||||
Display only the base of each file name.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
378
contrib/binutils/binutils/doc/ar.1
Normal file
378
contrib/binutils/binutils/doc/ar.1
Normal file
@ -0,0 +1,378 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "AR 1"
|
||||
.TH AR 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
ar \- create, modify, and extract from archives
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
ar [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] \fIarchive\fR [\fImember\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
|
||||
archives. An \fIarchive\fR is a single file holding a collection of
|
||||
other files in a structure that makes it possible to retrieve
|
||||
the original individual files (called \fImembers\fR of the archive).
|
||||
.PP
|
||||
The original files' contents, mode (permissions), timestamp, owner, and
|
||||
group are preserved in the archive, and can be restored on
|
||||
extraction.
|
||||
.PP
|
||||
\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
|
||||
length; however, depending on how \fBar\fR is configured on your
|
||||
system, a limit on member-name length may be imposed for compatibility
|
||||
with archive formats maintained with other tools. If it exists, the
|
||||
limit is often 15 characters (typical of formats related to a.out) or 16
|
||||
characters (typical of formats related to coff).
|
||||
.PP
|
||||
\&\fBar\fR is considered a binary utility because archives of this sort
|
||||
are most often used as \fIlibraries\fR holding commonly needed
|
||||
subroutines.
|
||||
.PP
|
||||
\&\fBar\fR creates an index to the symbols defined in relocatable
|
||||
object modules in the archive when you specify the modifier \fBs\fR.
|
||||
Once created, this index is updated in the archive whenever \fBar\fR
|
||||
makes a change to its contents (save for the \fBq\fR update operation).
|
||||
An archive with such an index speeds up linking to the library, and
|
||||
allows routines in the library to call each other without regard to
|
||||
their placement in the archive.
|
||||
.PP
|
||||
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
|
||||
table. If an archive lacks the table, another form of \fBar\fR called
|
||||
\&\fBranlib\fR can be used to add just the table.
|
||||
.PP
|
||||
\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
|
||||
facilities. You can control its activity using command-line options,
|
||||
like the different varieties of \fBar\fR on Unix systems; or, if you
|
||||
specify the single command-line option \fB\-M\fR, you can control it
|
||||
with a script supplied via standard input, like the \s-1MRI\s0 ``librarian''
|
||||
program.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
|
||||
flags \fImod\fR in any order, within the first command-line argument.
|
||||
.PP
|
||||
If you wish, you may begin the first command-line argument with a
|
||||
dash.
|
||||
.PP
|
||||
The \fIp\fR keyletter specifies what operation to execute; it may be
|
||||
any of the following, but you must specify only one of them:
|
||||
.IP "\fBd\fR" 4
|
||||
.IX Item "d"
|
||||
\&\fIDelete\fR modules from the archive. Specify the names of modules to
|
||||
be deleted as \fImember\fR...; the archive is untouched if you
|
||||
specify no files to delete.
|
||||
.Sp
|
||||
If you specify the \fBv\fR modifier, \fBar\fR lists each module
|
||||
as it is deleted.
|
||||
.IP "\fBm\fR" 4
|
||||
.IX Item "m"
|
||||
Use this operation to \fImove\fR members in an archive.
|
||||
.Sp
|
||||
The ordering of members in an archive can make a difference in how
|
||||
programs are linked using the library, if a symbol is defined in more
|
||||
than one member.
|
||||
.Sp
|
||||
If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
|
||||
\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
|
||||
you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
|
||||
specified place instead.
|
||||
.IP "\fBp\fR" 4
|
||||
.IX Item "p"
|
||||
\&\fIPrint\fR the specified members of the archive, to the standard
|
||||
output file. If the \fBv\fR modifier is specified, show the member
|
||||
name before copying its contents to standard output.
|
||||
.Sp
|
||||
If you specify no \fImember\fR arguments, all the files in the archive are
|
||||
printed.
|
||||
.IP "\fBq\fR" 4
|
||||
.IX Item "q"
|
||||
\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
|
||||
\&\fIarchive\fR, without checking for replacement.
|
||||
.Sp
|
||||
The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
|
||||
operation; new members are always placed at the end of the archive.
|
||||
.Sp
|
||||
The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
|
||||
.Sp
|
||||
Since the point of this operation is speed, the archive's symbol table
|
||||
index is not updated, even if it already existed; you can use \fBar s\fR or
|
||||
\&\fBranlib\fR explicitly to update the symbol table index.
|
||||
.Sp
|
||||
However, too many different systems assume quick append rebuilds the
|
||||
index, so \s-1GNU\s0 ar implements \f(CW\*(C`q\*(C'\fR as a synonym for \f(CW\*(C`r\*(C'\fR.
|
||||
.IP "\fBr\fR" 4
|
||||
.IX Item "r"
|
||||
Insert the files \fImember\fR... into \fIarchive\fR (with
|
||||
\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
|
||||
previously existing members are deleted if their names match those being
|
||||
added.
|
||||
.Sp
|
||||
If one of the files named in \fImember\fR... does not exist, \fBar\fR
|
||||
displays an error message, and leaves undisturbed any existing members
|
||||
of the archive matching that name.
|
||||
.Sp
|
||||
By default, new members are added at the end of the file; but you may
|
||||
use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
|
||||
placement relative to some existing member.
|
||||
.Sp
|
||||
The modifier \fBv\fR used with this operation elicits a line of
|
||||
output for each file inserted, along with one of the letters \fBa\fR or
|
||||
\&\fBr\fR to indicate whether the file was appended (no old member
|
||||
deleted) or replaced.
|
||||
.IP "\fBt\fR" 4
|
||||
.IX Item "t"
|
||||
Display a \fItable\fR listing the contents of \fIarchive\fR, or those
|
||||
of the files listed in \fImember\fR... that are present in the
|
||||
archive. Normally only the member name is shown; if you also want to
|
||||
see the modes (permissions), timestamp, owner, group, and size, you can
|
||||
request that by also specifying the \fBv\fR modifier.
|
||||
.Sp
|
||||
If you do not specify a \fImember\fR, all files in the archive
|
||||
are listed.
|
||||
.Sp
|
||||
If there is more than one file with the same name (say, \fBfie\fR) in
|
||||
an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
|
||||
first instance; to see them all, you must ask for a complete
|
||||
listing\-\-\-in our example, \fBar t b.a\fR.
|
||||
.IP "\fBx\fR" 4
|
||||
.IX Item "x"
|
||||
\&\fIExtract\fR members (named \fImember\fR) from the archive. You can
|
||||
use the \fBv\fR modifier with this operation, to request that
|
||||
\&\fBar\fR list each name as it extracts it.
|
||||
.Sp
|
||||
If you do not specify a \fImember\fR, all files in the archive
|
||||
are extracted.
|
||||
.PP
|
||||
A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
|
||||
keyletter, to specify variations on an operation's behavior:
|
||||
.IP "\fBa\fR" 4
|
||||
.IX Item "a"
|
||||
Add new files \fIafter\fR an existing member of the
|
||||
archive. If you use the modifier \fBa\fR, the name of an existing archive
|
||||
member must be present as the \fIrelpos\fR argument, before the
|
||||
\&\fIarchive\fR specification.
|
||||
.IP "\fBb\fR" 4
|
||||
.IX Item "b"
|
||||
Add new files \fIbefore\fR an existing member of the
|
||||
archive. If you use the modifier \fBb\fR, the name of an existing archive
|
||||
member must be present as the \fIrelpos\fR argument, before the
|
||||
\&\fIarchive\fR specification. (same as \fBi\fR).
|
||||
.IP "\fBc\fR" 4
|
||||
.IX Item "c"
|
||||
\&\fICreate\fR the archive. The specified \fIarchive\fR is always
|
||||
created if it did not exist, when you request an update. But a warning is
|
||||
issued unless you specify in advance that you expect to create it, by
|
||||
using this modifier.
|
||||
.IP "\fBf\fR" 4
|
||||
.IX Item "f"
|
||||
Truncate names in the archive. \s-1GNU\s0 \fBar\fR will normally permit file
|
||||
names of any length. This will cause it to create archives which are
|
||||
not compatible with the native \fBar\fR program on some systems. If
|
||||
this is a concern, the \fBf\fR modifier may be used to truncate file
|
||||
names when putting them in the archive.
|
||||
.IP "\fBi\fR" 4
|
||||
.IX Item "i"
|
||||
Insert new files \fIbefore\fR an existing member of the
|
||||
archive. If you use the modifier \fBi\fR, the name of an existing archive
|
||||
member must be present as the \fIrelpos\fR argument, before the
|
||||
\&\fIarchive\fR specification. (same as \fBb\fR).
|
||||
.IP "\fBl\fR" 4
|
||||
.IX Item "l"
|
||||
This modifier is accepted but not used.
|
||||
.IP "\fBN\fR" 4
|
||||
.IX Item "N"
|
||||
Uses the \fIcount\fR parameter. This is used if there are multiple
|
||||
entries in the archive with the same name. Extract or delete instance
|
||||
\&\fIcount\fR of the given name from the archive.
|
||||
.IP "\fBo\fR" 4
|
||||
.IX Item "o"
|
||||
Preserve the \fIoriginal\fR dates of members when extracting them. If
|
||||
you do not specify this modifier, files extracted from the archive
|
||||
are stamped with the time of extraction.
|
||||
.IP "\fBP\fR" 4
|
||||
.IX Item "P"
|
||||
Use the full path name when matching names in the archive. \s-1GNU\s0
|
||||
\&\fBar\fR can not create an archive with a full path name (such archives
|
||||
are not \s-1POSIX\s0 complaint), but other archive creators can. This option
|
||||
will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
|
||||
name, which can be convenient when extracting a single file from an
|
||||
archive created by another tool.
|
||||
.IP "\fBs\fR" 4
|
||||
.IX Item "s"
|
||||
Write an object-file index into the archive, or update an existing one,
|
||||
even if no other change is made to the archive. You may use this modifier
|
||||
flag either with any operation, or alone. Running \fBar s\fR on an
|
||||
archive is equivalent to running \fBranlib\fR on it.
|
||||
.IP "\fBS\fR" 4
|
||||
.IX Item "S"
|
||||
Do not generate an archive symbol table. This can speed up building a
|
||||
large library in several steps. The resulting archive can not be used
|
||||
with the linker. In order to build a symbol table, you must omit the
|
||||
\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
|
||||
\&\fBranlib\fR on the archive.
|
||||
.IP "\fBu\fR" 4
|
||||
.IX Item "u"
|
||||
Normally, \fBar r\fR... inserts all files
|
||||
listed into the archive. If you would like to insert \fIonly\fR those
|
||||
of the files you list that are newer than existing members of the same
|
||||
names, use this modifier. The \fBu\fR modifier is allowed only for the
|
||||
operation \fBr\fR (replace). In particular, the combination \fBqu\fR is
|
||||
not allowed, since checking the timestamps would lose any speed
|
||||
advantage from the operation \fBq\fR.
|
||||
.IP "\fBv\fR" 4
|
||||
.IX Item "v"
|
||||
This modifier requests the \fIverbose\fR version of an operation. Many
|
||||
operations display additional information, such as filenames processed,
|
||||
when the modifier \fBv\fR is appended.
|
||||
.IP "\fBV\fR" 4
|
||||
.IX Item "V"
|
||||
This modifier shows the version number of \fBar\fR.
|
||||
.PP
|
||||
\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
|
||||
compatibility with \s-1AIX\s0. The behaviour produced by this option is the
|
||||
default for \s-1GNU\s0 \fBar\fR. \fBar\fR does not support any of the other
|
||||
\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
|
||||
which is the default for \s-1AIX\s0 \fBar\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
@ -3129,7 +3129,7 @@ command line option: @option{-b} or @option{--format}
|
||||
|
||||
@item
|
||||
script command @code{TARGET}
|
||||
(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
|
||||
(@pxref{Format Commands,,Format Commands,ld.info,Using LD})
|
||||
|
||||
@item
|
||||
environment variable @code{GNUTARGET}
|
||||
@ -3151,7 +3151,7 @@ command line option: @option{-oformat}
|
||||
|
||||
@item
|
||||
script command @code{OUTPUT_FORMAT}
|
||||
(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
|
||||
(@pxref{Format Commands,,Format Commands,ld.info,Using LD})
|
||||
|
||||
@item
|
||||
the linker input target (see ``Linker Input Target'' above)
|
||||
@ -3206,7 +3206,7 @@ Ways to specify:
|
||||
@enumerate
|
||||
@item
|
||||
script command @code{OUTPUT_ARCH}
|
||||
(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
|
||||
(@pxref{Miscellaneous Commands,,Miscellaneous Commands,ld.info,Using LD})
|
||||
|
||||
@item
|
||||
the default architecture from the linker output target
|
||||
|
255
contrib/binutils/binutils/doc/cxxfilt.man
Normal file
255
contrib/binutils/binutils/doc/cxxfilt.man
Normal file
@ -0,0 +1,255 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "C++FILT 1"
|
||||
.TH C++FILT 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
cxxfilt \- Demangle \*(C+ and Java symbols.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
|
||||
[\fB\-j\fR|\fB\-\-java\fR]
|
||||
[\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
|
||||
[\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
|
||||
[\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
The \*(C+ and Java languages provides function overloading, which means
|
||||
that you can write many functions with the same name (providing each
|
||||
takes parameters of different types). All \*(C+ and Java function names
|
||||
are encoded into a low-level assembly label (this process is known as
|
||||
\&\fImangling\fR). The \fBc++filt\fR
|
||||
[1]
|
||||
program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
|
||||
names into user-level names so that the linker can keep these overloaded
|
||||
functions from clashing.
|
||||
.PP
|
||||
Every alphanumeric word (consisting of letters, digits, underscores,
|
||||
dollars, or periods) seen in the input is a potential label. If the
|
||||
label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
|
||||
name in the output.
|
||||
.PP
|
||||
You can use \fBc++filt\fR to decipher individual symbols:
|
||||
.PP
|
||||
.Vb 1
|
||||
\& c++filt I<symbol>
|
||||
.Ve
|
||||
If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
|
||||
names from the standard input and writes the demangled names to the
|
||||
standard output. All results are printed on the standard output.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fB\-_\fR" 4
|
||||
.IX Item "-_"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-underscores\fR" 4
|
||||
.IX Item "--strip-underscores"
|
||||
.PD
|
||||
On some systems, both the C and \*(C+ compilers put an underscore in front
|
||||
of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
|
||||
name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether
|
||||
\&\fBc++filt\fR removes the underscore by default is target dependent.
|
||||
.IP "\fB\-j\fR" 4
|
||||
.IX Item "-j"
|
||||
.PD 0
|
||||
.IP "\fB\-\-java\fR" 4
|
||||
.IX Item "--java"
|
||||
.PD
|
||||
Prints demangled names using Java syntax. The default is to use \*(C+
|
||||
syntax.
|
||||
.IP "\fB\-n\fR" 4
|
||||
.IX Item "-n"
|
||||
.PD 0
|
||||
.IP "\fB\-\-no\-strip\-underscores\fR" 4
|
||||
.IX Item "--no-strip-underscores"
|
||||
.PD
|
||||
Do not remove the initial underscore.
|
||||
.IP "\fB\-s\fR \fIformat\fR" 4
|
||||
.IX Item "-s format"
|
||||
.PD 0
|
||||
.IP "\fB\-\-format=\fR\fIformat\fR" 4
|
||||
.IX Item "--format=format"
|
||||
.PD
|
||||
\&\s-1GNU\s0 \fBnm\fR can decode three different methods of mangling, used by
|
||||
different \*(C+ compilers. The argument to this option selects which
|
||||
method it uses:
|
||||
.RS 4
|
||||
.ie n .IP """gnu""" 4
|
||||
.el .IP "\f(CWgnu\fR" 4
|
||||
.IX Item "gnu"
|
||||
the one used by the \s-1GNU\s0 compiler (the default method)
|
||||
.ie n .IP """lucid""" 4
|
||||
.el .IP "\f(CWlucid\fR" 4
|
||||
.IX Item "lucid"
|
||||
the one used by the Lucid compiler
|
||||
.ie n .IP """arm""" 4
|
||||
.el .IP "\f(CWarm\fR" 4
|
||||
.IX Item "arm"
|
||||
the one specified by the \*(C+ Annotated Reference Manual
|
||||
.ie n .IP """hp""" 4
|
||||
.el .IP "\f(CWhp\fR" 4
|
||||
.IX Item "hp"
|
||||
the one used by the \s-1HP\s0 compiler
|
||||
.ie n .IP """edg""" 4
|
||||
.el .IP "\f(CWedg\fR" 4
|
||||
.IX Item "edg"
|
||||
the one used by the \s-1EDG\s0 compiler
|
||||
.ie n .IP """gnu\-new\-abi""" 4
|
||||
.el .IP "\f(CWgnu\-new\-abi\fR" 4
|
||||
.IX Item "gnu-new-abi"
|
||||
the one used by the \s-1GNU\s0 compiler with the new \s-1ABI\s0.
|
||||
.RE
|
||||
.RS 4
|
||||
.RE
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Print a summary of the options to \fBc++filt\fR and exit.
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
Print the version number of \fBc++filt\fR and exit.
|
||||
.SH "FOOTNOTES"
|
||||
.IX Header "FOOTNOTES"
|
||||
.IP "1." 4
|
||||
MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
|
||||
MS-DOS this program is named \fBcxxfilt\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
436
contrib/binutils/binutils/doc/dlltool.1
Normal file
436
contrib/binutils/binutils/doc/dlltool.1
Normal file
@ -0,0 +1,436 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "DLLTOOL 1"
|
||||
.TH DLLTOOL 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
dlltool \- Create files needed to build and use DLLs.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
|
||||
[\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
|
||||
[\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
|
||||
[\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
|
||||
[\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
|
||||
[\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
|
||||
[\fB\-\-exclude\-symbols\fR \fIlist\fR]
|
||||
[\fB\-\-no\-default\-excludes\fR]
|
||||
[\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
|
||||
[\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
|
||||
[\fB\-a\fR|\fB\-\-add\-indirect\fR] [\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-k\fR|\fB\-\-kill\-at\fR]
|
||||
[\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
|
||||
[\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR] [\fB\-i\fR|\fB\-\-interwork\fR]
|
||||
[\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-v\fR|\fB\-\-verbose\fR]
|
||||
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
|
||||
[object\-file ...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
|
||||
\&\fB\-b\fR options as well as object files specified on the command
|
||||
line. It then processes these inputs and if the \fB\-e\fR option has
|
||||
been specified it creates a exports file. If the \fB\-l\fR option
|
||||
has been specified it creates a library file and if the \fB\-z\fR option
|
||||
has been specified it creates a def file. Any or all of the \fB\-e\fR,
|
||||
\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
|
||||
dlltool.
|
||||
.PP
|
||||
When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
|
||||
to have three other files. \fBdlltool\fR can help with the creation of
|
||||
these files.
|
||||
.PP
|
||||
The first file is a \fB.def\fR file which specifies which functions are
|
||||
exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This
|
||||
is a text file and can be created by hand, or \fBdlltool\fR can be used
|
||||
to create it using the \fB\-z\fR option. In this case \fBdlltool\fR
|
||||
will scan the object files specified on its command line looking for
|
||||
those functions which have been specially marked as being exported and
|
||||
put entries for them in the .def file it creates.
|
||||
.PP
|
||||
In order to mark a function as being exported from a \s-1DLL\s0, it needs to
|
||||
have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
|
||||
section of the object file. This can be done in C by using the
|
||||
\&\fIasm()\fR operator:
|
||||
.PP
|
||||
.Vb 2
|
||||
\& asm (".section .drectve");
|
||||
\& asm (".ascii \e"-export:my_func\e"");
|
||||
.Ve
|
||||
.Vb 1
|
||||
\& int my_func (void) { ... }
|
||||
.Ve
|
||||
The second file needed for \s-1DLL\s0 creation is an exports file. This file
|
||||
is linked with the object files that make up the body of the \s-1DLL\s0 and it
|
||||
handles the interface between the \s-1DLL\s0 and the outside world. This is a
|
||||
binary file and it can be created by giving the \fB\-e\fR option to
|
||||
\&\fBdlltool\fR when it is creating or reading in a .def file.
|
||||
.PP
|
||||
The third file needed for \s-1DLL\s0 creation is the library file that programs
|
||||
will link with in order to access the functions in the \s-1DLL\s0. This file
|
||||
can be created by giving the \fB\-l\fR option to dlltool when it
|
||||
is creating or reading in a .def file.
|
||||
.PP
|
||||
\&\fBdlltool\fR builds the library file by hand, but it builds the
|
||||
exports file by creating temporary files containing assembler statements
|
||||
and then assembling these. The \fB\-S\fR command line option can be
|
||||
used to specify the path to the assembler that dlltool will use,
|
||||
and the \fB\-f\fR option can be used to pass specific flags to that
|
||||
assembler. The \fB\-n\fR can be used to prevent dlltool from deleting
|
||||
these temporary assembler files when it is done, and if \fB\-n\fR is
|
||||
specified twice then this will prevent dlltool from deleting the
|
||||
temporary object files it used to build the library.
|
||||
.PP
|
||||
Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
|
||||
also creating a program (from an object file called \fBprogram.o\fR)
|
||||
that uses that \s-1DLL:\s0
|
||||
.PP
|
||||
.Vb 4
|
||||
\& gcc -c dll.c
|
||||
\& dlltool -e exports.o -l dll.lib dll.o
|
||||
\& gcc dll.o exports.o -o dll.dll
|
||||
\& gcc program.o dll.lib -o program
|
||||
.Ve
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The command line options have the following meanings:
|
||||
.IP "\fB\-d\fR \fIfilename\fR" 4
|
||||
.IX Item "-d filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
|
||||
.IX Item "--input-def filename"
|
||||
.PD
|
||||
Specifies the name of a .def file to be read in and processed.
|
||||
.IP "\fB\-b\fR \fIfilename\fR" 4
|
||||
.IX Item "-b filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
|
||||
.IX Item "--base-file filename"
|
||||
.PD
|
||||
Specifies the name of a base file to be read in and processed. The
|
||||
contents of this file will be added to the relocation section in the
|
||||
exports file generated by dlltool.
|
||||
.IP "\fB\-e\fR \fIfilename\fR" 4
|
||||
.IX Item "-e filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
|
||||
.IX Item "--output-exp filename"
|
||||
.PD
|
||||
Specifies the name of the export file to be created by dlltool.
|
||||
.IP "\fB\-z\fR \fIfilename\fR" 4
|
||||
.IX Item "-z filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
|
||||
.IX Item "--output-def filename"
|
||||
.PD
|
||||
Specifies the name of the .def file to be created by dlltool.
|
||||
.IP "\fB\-l\fR \fIfilename\fR" 4
|
||||
.IX Item "-l filename"
|
||||
.PD 0
|
||||
.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
|
||||
.IX Item "--output-lib filename"
|
||||
.PD
|
||||
Specifies the name of the library file to be created by dlltool.
|
||||
.IP "\fB\-\-export\-all\-symbols\fR" 4
|
||||
.IX Item "--export-all-symbols"
|
||||
Treat all global and weak defined symbols found in the input object
|
||||
files as symbols to be exported. There is a small list of symbols which
|
||||
are not exported by default; see the \fB\-\-no\-default\-excludes\fR
|
||||
option. You may add to the list of symbols to not export by using the
|
||||
\&\fB\-\-exclude\-symbols\fR option.
|
||||
.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
|
||||
.IX Item "--no-export-all-symbols"
|
||||
Only export symbols explicitly listed in an input .def file or in
|
||||
\&\fB.drectve\fR sections in the input object files. This is the default
|
||||
behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR
|
||||
attributes in the source code.
|
||||
.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
|
||||
.IX Item "--exclude-symbols list"
|
||||
Do not export the symbols in \fIlist\fR. This is a list of symbol names
|
||||
separated by comma or colon characters. The symbol names should not
|
||||
contain a leading underscore. This is only meaningful when
|
||||
\&\fB\-\-export\-all\-symbols\fR is used.
|
||||
.IP "\fB\-\-no\-default\-excludes\fR" 4
|
||||
.IX Item "--no-default-excludes"
|
||||
When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
|
||||
exporting certain special symbols. The current list of symbols to avoid
|
||||
exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
|
||||
\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option
|
||||
to go ahead and export these special symbols. This is only meaningful
|
||||
when \fB\-\-export\-all\-symbols\fR is used.
|
||||
.IP "\fB\-S\fR \fIpath\fR" 4
|
||||
.IX Item "-S path"
|
||||
.PD 0
|
||||
.IP "\fB\-\-as\fR \fIpath\fR" 4
|
||||
.IX Item "--as path"
|
||||
.PD
|
||||
Specifies the path, including the filename, of the assembler to be used
|
||||
to create the exports file.
|
||||
.IP "\fB\-f\fR \fIoptions\fR" 4
|
||||
.IX Item "-f options"
|
||||
.PD 0
|
||||
.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
|
||||
.IX Item "--as-flags options"
|
||||
.PD
|
||||
Specifies any specific command line options to be passed to the
|
||||
assembler when building the exports file. This option will work even if
|
||||
the \fB\-S\fR option is not used. This option only takes one argument,
|
||||
and if it occurs more than once on the command line, then later
|
||||
occurrences will override earlier occurrences. So if it is necessary to
|
||||
pass multiple options to the assembler they should be enclosed in
|
||||
double quotes.
|
||||
.IP "\fB\-D\fR \fIname\fR" 4
|
||||
.IX Item "-D name"
|
||||
.PD 0
|
||||
.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
|
||||
.IX Item "--dll-name name"
|
||||
.PD
|
||||
Specifies the name to be stored in the .def file as the name of the \s-1DLL\s0
|
||||
when the \fB\-e\fR option is used. If this option is not present, then
|
||||
the filename given to the \fB\-e\fR option will be used as the name of
|
||||
the \s-1DLL\s0.
|
||||
.IP "\fB\-m\fR \fImachine\fR" 4
|
||||
.IX Item "-m machine"
|
||||
.PD 0
|
||||
.IP "\fB\-machine\fR \fImachine\fR" 4
|
||||
.IX Item "-machine machine"
|
||||
.PD
|
||||
Specifies the type of machine for which the library file should be
|
||||
built. \fBdlltool\fR has a built in default type, depending upon how
|
||||
it was created, but this option can be used to override that. This is
|
||||
normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the
|
||||
contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
|
||||
.IP "\fB\-a\fR" 4
|
||||
.IX Item "-a"
|
||||
.PD 0
|
||||
.IP "\fB\-\-add\-indirect\fR" 4
|
||||
.IX Item "--add-indirect"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports file it
|
||||
should add a section which allows the exported functions to be
|
||||
referenced without using the import library. Whatever the hell that
|
||||
means!
|
||||
.IP "\fB\-U\fR" 4
|
||||
.IX Item "-U"
|
||||
.PD 0
|
||||
.IP "\fB\-\-add\-underscore\fR" 4
|
||||
.IX Item "--add-underscore"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports file it
|
||||
should prepend an underscore to the names of the exported functions.
|
||||
.IP "\fB\-k\fR" 4
|
||||
.IX Item "-k"
|
||||
.PD 0
|
||||
.IP "\fB\-\-kill\-at\fR" 4
|
||||
.IX Item "--kill-at"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports file it
|
||||
should not append the string \fB@ <number>\fR. These numbers are
|
||||
called ordinal numbers and they represent another way of accessing the
|
||||
function in a \s-1DLL\s0, other than by name.
|
||||
.IP "\fB\-A\fR" 4
|
||||
.IX Item "-A"
|
||||
.PD 0
|
||||
.IP "\fB\-\-add\-stdcall\-alias\fR" 4
|
||||
.IX Item "--add-stdcall-alias"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports file it
|
||||
should add aliases for stdcall symbols without \fB@ <number>\fR
|
||||
in addition to the symbols with \fB@ <number>\fR.
|
||||
.IP "\fB\-x\fR" 4
|
||||
.IX Item "-x"
|
||||
.PD 0
|
||||
.IP "\fB\-\-no\-idata4\fR" 4
|
||||
.IX Item "--no-idata4"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports and library
|
||||
files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility
|
||||
with certain operating systems.
|
||||
.IP "\fB\-c\fR" 4
|
||||
.IX Item "-c"
|
||||
.PD 0
|
||||
.IP "\fB\-\-no\-idata5\fR" 4
|
||||
.IX Item "--no-idata5"
|
||||
.PD
|
||||
Specifies that when \fBdlltool\fR is creating the exports and library
|
||||
files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility
|
||||
with certain operating systems.
|
||||
.IP "\fB\-i\fR" 4
|
||||
.IX Item "-i"
|
||||
.PD 0
|
||||
.IP "\fB\-\-interwork\fR" 4
|
||||
.IX Item "--interwork"
|
||||
.PD
|
||||
Specifies that \fBdlltool\fR should mark the objects in the library
|
||||
file and exports file that it produces as supporting interworking
|
||||
between \s-1ARM\s0 and Thumb code.
|
||||
.IP "\fB\-n\fR" 4
|
||||
.IX Item "-n"
|
||||
.PD 0
|
||||
.IP "\fB\-\-nodelete\fR" 4
|
||||
.IX Item "--nodelete"
|
||||
.PD
|
||||
Makes \fBdlltool\fR preserve the temporary assembler files it used to
|
||||
create the exports file. If this option is repeated then dlltool will
|
||||
also preserve the temporary object files it uses to create the library
|
||||
file.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-\-verbose\fR" 4
|
||||
.IX Item "--verbose"
|
||||
.PD
|
||||
Make dlltool describe what it is doing.
|
||||
.IP "\fB\-h\fR" 4
|
||||
.IX Item "-h"
|
||||
.PD 0
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
.PD
|
||||
Displays a list of command line options and then exits.
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Displays dlltool's version number and then exits.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
417
contrib/binutils/binutils/doc/nm.1
Normal file
417
contrib/binutils/binutils/doc/nm.1
Normal file
@ -0,0 +1,417 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "NM 1"
|
||||
.TH NM 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
nm \- list symbols from object files
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR]
|
||||
[\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR]
|
||||
[\fB\-s\fR|\fB\-\-print\-armap\fR] [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR]
|
||||
[\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
|
||||
[\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR]
|
||||
[\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR]
|
||||
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
|
||||
[\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR]
|
||||
[\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR....
|
||||
If no object files are listed as arguments, \fBnm\fR assumes the file
|
||||
\&\fIa.out\fR.
|
||||
.PP
|
||||
For each symbol, \fBnm\fR shows:
|
||||
.IP "\(bu" 4
|
||||
The symbol value, in the radix selected by options (see below), or
|
||||
hexadecimal by default.
|
||||
.IP "\(bu" 4
|
||||
The symbol type. At least the following types are used; others are, as
|
||||
well, depending on the object file format. If lowercase, the symbol is
|
||||
local; if uppercase, the symbol is global (external).
|
||||
.RS 4
|
||||
.ie n .IP """A""" 4
|
||||
.el .IP "\f(CWA\fR" 4
|
||||
.IX Item "A"
|
||||
The symbol's value is absolute, and will not be changed by further
|
||||
linking.
|
||||
.ie n .IP """B""" 4
|
||||
.el .IP "\f(CWB\fR" 4
|
||||
.IX Item "B"
|
||||
The symbol is in the uninitialized data section (known as \s-1BSS\s0).
|
||||
.ie n .IP """C""" 4
|
||||
.el .IP "\f(CWC\fR" 4
|
||||
.IX Item "C"
|
||||
The symbol is common. Common symbols are uninitialized data. When
|
||||
linking, multiple common symbols may appear with the same name. If the
|
||||
symbol is defined anywhere, the common symbols are treated as undefined
|
||||
references.
|
||||
.ie n .IP """D""" 4
|
||||
.el .IP "\f(CWD\fR" 4
|
||||
.IX Item "D"
|
||||
The symbol is in the initialized data section.
|
||||
.ie n .IP """G""" 4
|
||||
.el .IP "\f(CWG\fR" 4
|
||||
.IX Item "G"
|
||||
The symbol is in an initialized data section for small objects. Some
|
||||
object file formats permit more efficient access to small data objects,
|
||||
such as a global int variable as opposed to a large global array.
|
||||
.ie n .IP """I""" 4
|
||||
.el .IP "\f(CWI\fR" 4
|
||||
.IX Item "I"
|
||||
The symbol is an indirect reference to another symbol. This is a \s-1GNU\s0
|
||||
extension to the a.out object file format which is rarely used.
|
||||
.ie n .IP """N""" 4
|
||||
.el .IP "\f(CWN\fR" 4
|
||||
.IX Item "N"
|
||||
The symbol is a debugging symbol.
|
||||
.ie n .IP """R""" 4
|
||||
.el .IP "\f(CWR\fR" 4
|
||||
.IX Item "R"
|
||||
The symbol is in a read only data section.
|
||||
.ie n .IP """S""" 4
|
||||
.el .IP "\f(CWS\fR" 4
|
||||
.IX Item "S"
|
||||
The symbol is in an uninitialized data section for small objects.
|
||||
.ie n .IP """T""" 4
|
||||
.el .IP "\f(CWT\fR" 4
|
||||
.IX Item "T"
|
||||
The symbol is in the text (code) section.
|
||||
.ie n .IP """U""" 4
|
||||
.el .IP "\f(CWU\fR" 4
|
||||
.IX Item "U"
|
||||
The symbol is undefined.
|
||||
.ie n .IP """V""" 4
|
||||
.el .IP "\f(CWV\fR" 4
|
||||
.IX Item "V"
|
||||
The symbol is a weak object. When a weak defined symbol is linked with
|
||||
a normal defined symbol, the normal defined symbol is used with no error.
|
||||
When a weak undefined symbol is linked and the symbol is not defined,
|
||||
the value of the weak symbol becomes zero with no error.
|
||||
.ie n .IP """W""" 4
|
||||
.el .IP "\f(CWW\fR" 4
|
||||
.IX Item "W"
|
||||
The symbol is a weak symbol that has not been specifically tagged as a
|
||||
weak object symbol. When a weak defined symbol is linked with a normal
|
||||
defined symbol, the normal defined symbol is used with no error.
|
||||
When a weak undefined symbol is linked and the symbol is not defined,
|
||||
the value of the weak symbol becomes zero with no error.
|
||||
.ie n .IP """\-""" 4
|
||||
.el .IP "\f(CW\-\fR" 4
|
||||
.IX Item "-"
|
||||
The symbol is a stabs symbol in an a.out object file. In this case, the
|
||||
next values printed are the stabs other field, the stabs desc field, and
|
||||
the stab type. Stabs symbols are used to hold debugging information.
|
||||
.ie n .IP """?""" 4
|
||||
.el .IP "\f(CW?\fR" 4
|
||||
.IX Item "?"
|
||||
The symbol type is unknown, or object file format specific.
|
||||
.RE
|
||||
.RS 4
|
||||
.RE
|
||||
.IP "\(bu" 4
|
||||
The symbol name.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The long and short forms of options, shown here as alternatives, are
|
||||
equivalent.
|
||||
.IP "\fB\-A\fR" 4
|
||||
.IX Item "-A"
|
||||
.PD 0
|
||||
.IP "\fB\-o\fR" 4
|
||||
.IX Item "-o"
|
||||
.IP "\fB\-\-print\-file\-name\fR" 4
|
||||
.IX Item "--print-file-name"
|
||||
.PD
|
||||
Precede each symbol by the name of the input file (or archive member)
|
||||
in which it was found, rather than identifying the input file once only,
|
||||
before all of its symbols.
|
||||
.IP "\fB\-a\fR" 4
|
||||
.IX Item "-a"
|
||||
.PD 0
|
||||
.IP "\fB\-\-debug\-syms\fR" 4
|
||||
.IX Item "--debug-syms"
|
||||
.PD
|
||||
Display all symbols, even debugger-only symbols; normally these are not
|
||||
listed.
|
||||
.IP "\fB\-B\fR" 4
|
||||
.IX Item "-B"
|
||||
The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR).
|
||||
.IP "\fB\-C\fR" 4
|
||||
.IX Item "-C"
|
||||
.PD 0
|
||||
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
|
||||
.IX Item "--demangle[=style]"
|
||||
.PD
|
||||
Decode (\fIdemangle\fR) low-level symbol names into user-level names.
|
||||
Besides removing any initial underscore prepended by the system, this
|
||||
makes \*(C+ function names readable. Different compilers have different
|
||||
mangling styles. The optional demangling style argument can be used to
|
||||
choose an appropriate demangling style for your compiler.
|
||||
.IP "\fB\-\-no\-demangle\fR" 4
|
||||
.IX Item "--no-demangle"
|
||||
Do not demangle low-level symbol names. This is the default.
|
||||
.IP "\fB\-D\fR" 4
|
||||
.IX Item "-D"
|
||||
.PD 0
|
||||
.IP "\fB\-\-dynamic\fR" 4
|
||||
.IX Item "--dynamic"
|
||||
.PD
|
||||
Display the dynamic symbols rather than the normal symbols. This is
|
||||
only meaningful for dynamic objects, such as certain types of shared
|
||||
libraries.
|
||||
.IP "\fB\-f\fR \fIformat\fR" 4
|
||||
.IX Item "-f format"
|
||||
.PD 0
|
||||
.IP "\fB\-\-format=\fR\fIformat\fR" 4
|
||||
.IX Item "--format=format"
|
||||
.PD
|
||||
Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR,
|
||||
\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR.
|
||||
Only the first character of \fIformat\fR is significant; it can be
|
||||
either upper or lower case.
|
||||
.IP "\fB\-g\fR" 4
|
||||
.IX Item "-g"
|
||||
.PD 0
|
||||
.IP "\fB\-\-extern\-only\fR" 4
|
||||
.IX Item "--extern-only"
|
||||
.PD
|
||||
Display only external symbols.
|
||||
.IP "\fB\-l\fR" 4
|
||||
.IX Item "-l"
|
||||
.PD 0
|
||||
.IP "\fB\-\-line\-numbers\fR" 4
|
||||
.IX Item "--line-numbers"
|
||||
.PD
|
||||
For each symbol, use debugging information to try to find a filename and
|
||||
line number. For a defined symbol, look for the line number of the
|
||||
address of the symbol. For an undefined symbol, look for the line
|
||||
number of a relocation entry which refers to the symbol. If line number
|
||||
information can be found, print it after the other symbol information.
|
||||
.IP "\fB\-n\fR" 4
|
||||
.IX Item "-n"
|
||||
.PD 0
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.IP "\fB\-\-numeric\-sort\fR" 4
|
||||
.IX Item "--numeric-sort"
|
||||
.PD
|
||||
Sort symbols numerically by their addresses, rather than alphabetically
|
||||
by their names.
|
||||
.IP "\fB\-p\fR" 4
|
||||
.IX Item "-p"
|
||||
.PD 0
|
||||
.IP "\fB\-\-no\-sort\fR" 4
|
||||
.IX Item "--no-sort"
|
||||
.PD
|
||||
Do not bother to sort the symbols in any order; print them in the order
|
||||
encountered.
|
||||
.IP "\fB\-P\fR" 4
|
||||
.IX Item "-P"
|
||||
.PD 0
|
||||
.IP "\fB\-\-portability\fR" 4
|
||||
.IX Item "--portability"
|
||||
.PD
|
||||
Use the \s-1POSIX\s0.2 standard output format instead of the default format.
|
||||
Equivalent to \fB\-f posix\fR.
|
||||
.IP "\fB\-s\fR" 4
|
||||
.IX Item "-s"
|
||||
.PD 0
|
||||
.IP "\fB\-\-print\-armap\fR" 4
|
||||
.IX Item "--print-armap"
|
||||
.PD
|
||||
When listing symbols from archive members, include the index: a mapping
|
||||
(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules
|
||||
contain definitions for which names.
|
||||
.IP "\fB\-r\fR" 4
|
||||
.IX Item "-r"
|
||||
.PD 0
|
||||
.IP "\fB\-\-reverse\-sort\fR" 4
|
||||
.IX Item "--reverse-sort"
|
||||
.PD
|
||||
Reverse the order of the sort (whether numeric or alphabetic); let the
|
||||
last come first.
|
||||
.IP "\fB\-\-size\-sort\fR" 4
|
||||
.IX Item "--size-sort"
|
||||
Sort symbols by size. The size is computed as the difference between
|
||||
the value of the symbol and the value of the symbol with the next higher
|
||||
value. The size of the symbol is printed, rather than the value.
|
||||
.IP "\fB\-t\fR \fIradix\fR" 4
|
||||
.IX Item "-t radix"
|
||||
.PD 0
|
||||
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
|
||||
.IX Item "--radix=radix"
|
||||
.PD
|
||||
Use \fIradix\fR as the radix for printing the symbol values. It must be
|
||||
\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal.
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
Specify an object code format other than your system's default format.
|
||||
.IP "\fB\-u\fR" 4
|
||||
.IX Item "-u"
|
||||
.PD 0
|
||||
.IP "\fB\-\-undefined\-only\fR" 4
|
||||
.IX Item "--undefined-only"
|
||||
.PD
|
||||
Display only undefined symbols (those external to each object file).
|
||||
.IP "\fB\-\-defined\-only\fR" 4
|
||||
.IX Item "--defined-only"
|
||||
Display only defined symbols for each object file.
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Show the version number of \fBnm\fR and exit.
|
||||
.IP "\fB\-X\fR" 4
|
||||
.IX Item "-X"
|
||||
This option is ignored for compatibility with the \s-1AIX\s0 version of
|
||||
\&\fBnm\fR. It takes one parameter which must be the string
|
||||
\&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds
|
||||
to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Show a summary of the options to \fBnm\fR and exit.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
623
contrib/binutils/binutils/doc/objcopy.1
Normal file
623
contrib/binutils/binutils/doc/objcopy.1
Normal file
@ -0,0 +1,623 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "OBJCOPY 1"
|
||||
.TH OBJCOPY 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
objcopy \- copy and translate object files
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR]
|
||||
[\fB\-S\fR|\fB\-\-strip\-all\fR] [\fB\-g\fR|\fB\-\-strip\-debug\fR]
|
||||
[\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
|
||||
[\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
|
||||
[\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR]
|
||||
[\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
|
||||
[\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR]
|
||||
[\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR|\fB\-\-discard\-locals\fR]
|
||||
[\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR]
|
||||
[\fB\-i\fR \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\fR]
|
||||
[\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR]
|
||||
[\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR]
|
||||
[\fB\-p\fR|\fB\-\-preserve\-dates\fR]
|
||||
[\fB\-\-debugging\fR]
|
||||
[\fB\-\-gap\-fill=\fR\fIval\fR] [\fB\-\-pad\-to=\fR\fIaddress\fR]
|
||||
[\fB\-\-set\-start=\fR\fIval\fR] [\fB\-\-adjust\-start=\fR\fIincr\fR]
|
||||
[\fB\-\-change\-addresses=\fR\fIincr\fR]
|
||||
[\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR]
|
||||
[\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR]
|
||||
[\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR]
|
||||
[\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
|
||||
[\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR]
|
||||
[\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
|
||||
[\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
|
||||
[\fB\-\-change\-leading\-char\fR ] [\fB\-\-remove\-leading\-char\fR]
|
||||
[\fB\-\-srec\-len=\fR\fIival\fR ] [\fB\-\-srec\-forceS3\fR]
|
||||
[\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR ]
|
||||
[\fB\-\-weaken\fR]
|
||||
[\fB\-\-keep\-symbols=\fR\fIfilename\fR]
|
||||
[\fB\-\-strip\-symbols=\fR\fIfilename\fR]
|
||||
[\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR]
|
||||
[\fB\-\-localize\-symbols=\fR\fIfilename\fR]
|
||||
[\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
|
||||
[\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
|
||||
[\fB\-v\fR|\fB\-\-verbose\fR]
|
||||
[\fB\-V\fR|\fB\-\-version\fR]
|
||||
[\fB\-\-help\fR]
|
||||
\fIinfile\fR [\fIoutfile\fR]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object
|
||||
file to another. \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to
|
||||
read and write the object files. It can write the destination object
|
||||
file in a format different from that of the source object file. The
|
||||
exact behavior of \fBobjcopy\fR is controlled by command-line options.
|
||||
Note that \fBobjcopy\fR should be able to copy a fully linked file
|
||||
between any two formats. However, copying a relocatable object file
|
||||
between any two formats may not work as expected.
|
||||
.PP
|
||||
\&\fBobjcopy\fR creates temporary files to do its translations and
|
||||
deletes them afterward. \fBobjcopy\fR uses \s-1BFD\s0 to do all its
|
||||
translation work; it has access to all the formats described in \s-1BFD\s0
|
||||
and thus is able to recognize most formats without being told
|
||||
explicitly.
|
||||
.PP
|
||||
\&\fBobjcopy\fR can be used to generate S\-records by using an output
|
||||
target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
|
||||
.PP
|
||||
\&\fBobjcopy\fR can be used to generate a raw binary file by using an
|
||||
output target of \fBbinary\fR (e.g., use \fB\-O binary\fR). When
|
||||
\&\fBobjcopy\fR generates a raw binary file, it will essentially produce
|
||||
a memory dump of the contents of the input object file. All symbols and
|
||||
relocation information will be discarded. The memory dump will start at
|
||||
the load address of the lowest section copied into the output file.
|
||||
.PP
|
||||
When generating an S\-record or a raw binary file, it may be helpful to
|
||||
use \fB\-S\fR to remove sections containing debugging information. In
|
||||
some cases \fB\-R\fR will be useful to remove sections which contain
|
||||
information that is not needed by the binary file.
|
||||
.PP
|
||||
Note \- \fBobjcopy\fR is not able to change the endianness of its input
|
||||
files. If the input format has an endianness, (some formats do not),
|
||||
\&\fBobjcopy\fR can only copy the inputs into file formats that have the
|
||||
same endianness or which have no endianness (eg \fBsrec\fR).
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fIinfile\fR" 4
|
||||
.IX Item "infile"
|
||||
.PD 0
|
||||
.IP "\fIoutfile\fR" 4
|
||||
.IX Item "outfile"
|
||||
.PD
|
||||
The input and output files, respectively.
|
||||
If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a
|
||||
temporary file and destructively renames the result with
|
||||
the name of \fIinfile\fR.
|
||||
.IP "\fB\-I\fR \fIbfdname\fR" 4
|
||||
.IX Item "-I bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--input-target=bfdname"
|
||||
.PD
|
||||
Consider the source file's object format to be \fIbfdname\fR, rather than
|
||||
attempting to deduce it.
|
||||
.IP "\fB\-O\fR \fIbfdname\fR" 4
|
||||
.IX Item "-O bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--output-target=bfdname"
|
||||
.PD
|
||||
Write the output file using the object format \fIbfdname\fR.
|
||||
.IP "\fB\-F\fR \fIbfdname\fR" 4
|
||||
.IX Item "-F bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
.PD
|
||||
Use \fIbfdname\fR as the object format for both the input and the output
|
||||
file; i.e., simply transfer data from source to destination with no
|
||||
translation.
|
||||
.IP "\fB\-B\fR \fIbfdarch\fR" 4
|
||||
.IX Item "-B bfdarch"
|
||||
.PD 0
|
||||
.IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4
|
||||
.IX Item "--binary-architecture=bfdarch"
|
||||
.PD
|
||||
Useful when transforming a raw binary input file into an object file.
|
||||
In this case the output architecture can be set to \fIbfdarch\fR. This
|
||||
option will be ignored if the input file has a known \fIbfdarch\fR. You
|
||||
can access this binary data inside a program by referencing the special
|
||||
symbols that are created by the conversion process. These symbols are
|
||||
called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and
|
||||
_binary_\fIobjfile\fR_size. e.g. you can transform a picture file into
|
||||
an object file and then access it in your code using these symbols.
|
||||
.IP "\fB\-j\fR \fIsectionname\fR" 4
|
||||
.IX Item "-j sectionname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4
|
||||
.IX Item "--only-section=sectionname"
|
||||
.PD
|
||||
Copy only the named section from the input file to the output file.
|
||||
This option may be given more than once. Note that using this option
|
||||
inappropriately may make the output file unusable.
|
||||
.IP "\fB\-R\fR \fIsectionname\fR" 4
|
||||
.IX Item "-R sectionname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
|
||||
.IX Item "--remove-section=sectionname"
|
||||
.PD
|
||||
Remove any section named \fIsectionname\fR from the output file. This
|
||||
option may be given more than once. Note that using this option
|
||||
inappropriately may make the output file unusable.
|
||||
.IP "\fB\-S\fR" 4
|
||||
.IX Item "-S"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-all\fR" 4
|
||||
.IX Item "--strip-all"
|
||||
.PD
|
||||
Do not copy relocation and symbol information from the source file.
|
||||
.IP "\fB\-g\fR" 4
|
||||
.IX Item "-g"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-debug\fR" 4
|
||||
.IX Item "--strip-debug"
|
||||
.PD
|
||||
Do not copy debugging symbols from the source file.
|
||||
.IP "\fB\-\-strip\-unneeded\fR" 4
|
||||
.IX Item "--strip-unneeded"
|
||||
Strip all symbols that are not needed for relocation processing.
|
||||
.IP "\fB\-K\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-K symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--keep-symbol=symbolname"
|
||||
.PD
|
||||
Copy only symbol \fIsymbolname\fR from the source file. This option may
|
||||
be given more than once.
|
||||
.IP "\fB\-N\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-N symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--strip-symbol=symbolname"
|
||||
.PD
|
||||
Do not copy symbol \fIsymbolname\fR from the source file. This option
|
||||
may be given more than once.
|
||||
.IP "\fB\-G\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-G symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--keep-global-symbol=symbolname"
|
||||
.PD
|
||||
Keep only symbol \fIsymbolname\fR global. Make all other symbols local
|
||||
to the file, so that they are not visible externally. This option may
|
||||
be given more than once.
|
||||
.IP "\fB\-L\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-L symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--localize-symbol=symbolname"
|
||||
.PD
|
||||
Make symbol \fIsymbolname\fR local to the file, so that it is not
|
||||
visible externally. This option may be given more than once.
|
||||
.IP "\fB\-W\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-W symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--weaken-symbol=symbolname"
|
||||
.PD
|
||||
Make symbol \fIsymbolname\fR weak. This option may be given more than once.
|
||||
.IP "\fB\-x\fR" 4
|
||||
.IX Item "-x"
|
||||
.PD 0
|
||||
.IP "\fB\-\-discard\-all\fR" 4
|
||||
.IX Item "--discard-all"
|
||||
.PD
|
||||
Do not copy non-global symbols from the source file.
|
||||
.IP "\fB\-X\fR" 4
|
||||
.IX Item "-X"
|
||||
.PD 0
|
||||
.IP "\fB\-\-discard\-locals\fR" 4
|
||||
.IX Item "--discard-locals"
|
||||
.PD
|
||||
Do not copy compiler-generated local symbols.
|
||||
(These usually start with \fBL\fR or \fB.\fR.)
|
||||
.IP "\fB\-b\fR \fIbyte\fR" 4
|
||||
.IX Item "-b byte"
|
||||
.PD 0
|
||||
.IP "\fB\-\-byte=\fR\fIbyte\fR" 4
|
||||
.IX Item "--byte=byte"
|
||||
.PD
|
||||
Keep only every \fIbyte\fRth byte of the input file (header data is not
|
||||
affected). \fIbyte\fR can be in the range from 0 to \fIinterleave\fR\-1,
|
||||
where \fIinterleave\fR is given by the \fB\-i\fR or \fB\-\-interleave\fR
|
||||
option, or the default of 4. This option is useful for creating files
|
||||
to program \s-1ROM\s0. It is typically used with an \f(CW\*(C`srec\*(C'\fR output
|
||||
target.
|
||||
.IP "\fB\-i\fR \fIinterleave\fR" 4
|
||||
.IX Item "-i interleave"
|
||||
.PD 0
|
||||
.IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4
|
||||
.IX Item "--interleave=interleave"
|
||||
.PD
|
||||
Only copy one out of every \fIinterleave\fR bytes. Select which byte to
|
||||
copy with the \fB\-b\fR or \fB\-\-byte\fR option. The default is 4.
|
||||
\&\fBobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or
|
||||
\&\fB\-\-byte\fR.
|
||||
.IP "\fB\-p\fR" 4
|
||||
.IX Item "-p"
|
||||
.PD 0
|
||||
.IP "\fB\-\-preserve\-dates\fR" 4
|
||||
.IX Item "--preserve-dates"
|
||||
.PD
|
||||
Set the access and modification dates of the output file to be the same
|
||||
as those of the input file.
|
||||
.IP "\fB\-\-debugging\fR" 4
|
||||
.IX Item "--debugging"
|
||||
Convert debugging information, if possible. This is not the default
|
||||
because only certain debugging formats are supported, and the
|
||||
conversion process can be time consuming.
|
||||
.IP "\fB\-\-gap\-fill\fR \fIval\fR" 4
|
||||
.IX Item "--gap-fill val"
|
||||
Fill gaps between sections with \fIval\fR. This operation applies to
|
||||
the \fIload address\fR (\s-1LMA\s0) of the sections. It is done by increasing
|
||||
the size of the section with the lower address, and filling in the extra
|
||||
space created with \fIval\fR.
|
||||
.IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4
|
||||
.IX Item "--pad-to address"
|
||||
Pad the output file up to the load address \fIaddress\fR. This is
|
||||
done by increasing the size of the last section. The extra space is
|
||||
filled in with the value specified by \fB\-\-gap\-fill\fR (default zero).
|
||||
.IP "\fB\-\-set\-start\fR \fIval\fR" 4
|
||||
.IX Item "--set-start val"
|
||||
Set the start address of the new file to \fIval\fR. Not all object file
|
||||
formats support setting the start address.
|
||||
.IP "\fB\-\-change\-start\fR \fIincr\fR" 4
|
||||
.IX Item "--change-start incr"
|
||||
.PD 0
|
||||
.IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4
|
||||
.IX Item "--adjust-start incr"
|
||||
.PD
|
||||
Change the start address by adding \fIincr\fR. Not all object file
|
||||
formats support setting the start address.
|
||||
.IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4
|
||||
.IX Item "--change-addresses incr"
|
||||
.PD 0
|
||||
.IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4
|
||||
.IX Item "--adjust-vma incr"
|
||||
.PD
|
||||
Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start
|
||||
address, by adding \fIincr\fR. Some object file formats do not permit
|
||||
section addresses to be changed arbitrarily. Note that this does not
|
||||
relocate the sections; if the program expects sections to be loaded at a
|
||||
certain address, and this option is used to change the sections such
|
||||
that they are loaded at a different address, the program may fail.
|
||||
.IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||||
.IX Item "--change-section-address section{=,+,-}val"
|
||||
.PD 0
|
||||
.IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||||
.IX Item "--adjust-section-vma section{=,+,-}val"
|
||||
.PD
|
||||
Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named
|
||||
\&\fIsection\fR. If \fB=\fR is used, the section address is set to
|
||||
\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the
|
||||
section address. See the comments under \fB\-\-change\-addresses\fR,
|
||||
above. If \fIsection\fR does not exist in the input file, a warning will
|
||||
be issued, unless \fB\-\-no\-change\-warnings\fR is used.
|
||||
.IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||||
.IX Item "--change-section-lma section{=,+,-}val"
|
||||
Set or change the \s-1LMA\s0 address of the named \fIsection\fR. The \s-1LMA\s0
|
||||
address is the address where the section will be loaded into memory at
|
||||
program load time. Normally this is the same as the \s-1VMA\s0 address, which
|
||||
is the address of the section at program run time, but on some systems,
|
||||
especially those where a program is held in \s-1ROM\s0, the two can be
|
||||
different. If \fB=\fR is used, the section address is set to
|
||||
\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the
|
||||
section address. See the comments under \fB\-\-change\-addresses\fR,
|
||||
above. If \fIsection\fR does not exist in the input file, a warning
|
||||
will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
|
||||
.IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||||
.IX Item "--change-section-vma section{=,+,-}val"
|
||||
Set or change the \s-1VMA\s0 address of the named \fIsection\fR. The \s-1VMA\s0
|
||||
address is the address where the section will be located once the
|
||||
program has started executing. Normally this is the same as the \s-1LMA\s0
|
||||
address, which is the address where the section will be loaded into
|
||||
memory, but on some systems, especially those where a program is held in
|
||||
\&\s-1ROM\s0, the two can be different. If \fB=\fR is used, the section address
|
||||
is set to \fIval\fR. Otherwise, \fIval\fR is added to or subtracted
|
||||
from the section address. See the comments under
|
||||
\&\fB\-\-change\-addresses\fR, above. If \fIsection\fR does not exist in
|
||||
the input file, a warning will be issued, unless
|
||||
\&\fB\-\-no\-change\-warnings\fR is used.
|
||||
.IP "\fB\-\-change\-warnings\fR" 4
|
||||
.IX Item "--change-warnings"
|
||||
.PD 0
|
||||
.IP "\fB\-\-adjust\-warnings\fR" 4
|
||||
.IX Item "--adjust-warnings"
|
||||
.PD
|
||||
If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or
|
||||
\&\fB\-\-change\-section\-vma\fR is used, and the named section does not
|
||||
exist, issue a warning. This is the default.
|
||||
.IP "\fB\-\-no\-change\-warnings\fR" 4
|
||||
.IX Item "--no-change-warnings"
|
||||
.PD 0
|
||||
.IP "\fB\-\-no\-adjust\-warnings\fR" 4
|
||||
.IX Item "--no-adjust-warnings"
|
||||
.PD
|
||||
Do not issue a warning if \fB\-\-change\-section\-address\fR or
|
||||
\&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even
|
||||
if the named section does not exist.
|
||||
.IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4
|
||||
.IX Item "--set-section-flags section=flags"
|
||||
Set the flags for the named section. The \fIflags\fR argument is a
|
||||
comma separated string of flag names. The recognized names are
|
||||
\&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR,
|
||||
\&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and
|
||||
\&\fBdebug\fR. You can set the \fBcontents\fR flag for a section which
|
||||
does not have contents, but it is not meaningful to clear the
|
||||
\&\fBcontents\fR flag of a section which does have contents\*(--just remove
|
||||
the section instead. Not all flags are meaningful for all object file
|
||||
formats.
|
||||
.IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
|
||||
.IX Item "--add-section sectionname=filename"
|
||||
Add a new section named \fIsectionname\fR while copying the file. The
|
||||
contents of the new section are taken from the file \fIfilename\fR. The
|
||||
size of the section will be the size of the file. This option only
|
||||
works on file formats which can support sections with arbitrary names.
|
||||
.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
|
||||
.IX Item "--rename-section oldname=newname[,flags]"
|
||||
Rename a section from \fIoldname\fR to \fInewname\fR, optionally
|
||||
changing the section's flags to \fIflags\fR in the process. This has
|
||||
the advantage over usng a linker script to perform the rename in that
|
||||
the output stays as an object file and does not become a linked
|
||||
executable.
|
||||
.Sp
|
||||
This option is particularly helpful when the input format is binary,
|
||||
since this will always create a section called .data. If for example,
|
||||
you wanted instead to create a section called .rodata containing binary
|
||||
data you could use the following command line to achieve it:
|
||||
.Sp
|
||||
.Vb 3
|
||||
\& objcopy -I binary -O <output_format> -B <architecture> \e
|
||||
\& --rename-section .data=.rodata,alloc,load,readonly,data,contents \e
|
||||
\& <input_binary_file> <output_object_file>
|
||||
.Ve
|
||||
.IP "\fB\-\-change\-leading\-char\fR" 4
|
||||
.IX Item "--change-leading-char"
|
||||
Some object file formats use special characters at the start of
|
||||
symbols. The most common such character is underscore, which compilers
|
||||
often add before every symbol. This option tells \fBobjcopy\fR to
|
||||
change the leading character of every symbol when it converts between
|
||||
object file formats. If the object file formats use the same leading
|
||||
character, this option has no effect. Otherwise, it will add a
|
||||
character, or remove a character, or change a character, as
|
||||
appropriate.
|
||||
.IP "\fB\-\-remove\-leading\-char\fR" 4
|
||||
.IX Item "--remove-leading-char"
|
||||
If the first character of a global symbol is a special symbol leading
|
||||
character used by the object file format, remove the character. The
|
||||
most common symbol leading character is underscore. This option will
|
||||
remove a leading underscore from all global symbols. This can be useful
|
||||
if you want to link together objects of different file formats with
|
||||
different conventions for symbol names. This is different from
|
||||
\&\fB\-\-change\-leading\-char\fR because it always changes the symbol name
|
||||
when appropriate, regardless of the object file format of the output
|
||||
file.
|
||||
.IP "\fB\-\-srec\-len=\fR\fIival\fR" 4
|
||||
.IX Item "--srec-len=ival"
|
||||
Meaningful only for srec output. Set the maximum length of the Srecords
|
||||
being produced to \fIival\fR. This length covers both address, data and
|
||||
crc fields.
|
||||
.IP "\fB\-\-srec\-forceS3\fR" 4
|
||||
.IX Item "--srec-forceS3"
|
||||
Meaningful only for srec output. Avoid generation of S1/S2 records,
|
||||
creating S3\-only record format.
|
||||
.IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4
|
||||
.IX Item "--redefine-sym old=new"
|
||||
Change the name of a symbol \fIold\fR, to \fInew\fR. This can be useful
|
||||
when one is trying link two things together for which you have no
|
||||
source, and there are name collisions.
|
||||
.IP "\fB\-\-weaken\fR" 4
|
||||
.IX Item "--weaken"
|
||||
Change all global symbols in the file to be weak. This can be useful
|
||||
when building an object which will be linked against other objects using
|
||||
the \fB\-R\fR option to the linker. This option is only effective when
|
||||
using an object file format which supports weak symbols.
|
||||
.IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4
|
||||
.IX Item "--keep-symbols=filename"
|
||||
Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file
|
||||
\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
|
||||
name per line. Line comments may be introduced by the hash character.
|
||||
This option may be given more than once.
|
||||
.IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4
|
||||
.IX Item "--strip-symbols=filename"
|
||||
Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file
|
||||
\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
|
||||
name per line. Line comments may be introduced by the hash character.
|
||||
This option may be given more than once.
|
||||
.IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4
|
||||
.IX Item "--keep-global-symbols=filename"
|
||||
Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the
|
||||
file \fIfilename\fR. \fIfilename\fR is simply a flat file, with one
|
||||
symbol name per line. Line comments may be introduced by the hash
|
||||
character. This option may be given more than once.
|
||||
.IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4
|
||||
.IX Item "--localize-symbols=filename"
|
||||
Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file
|
||||
\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
|
||||
name per line. Line comments may be introduced by the hash character.
|
||||
This option may be given more than once.
|
||||
.IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4
|
||||
.IX Item "--weaken-symbols=filename"
|
||||
Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file
|
||||
\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
|
||||
name per line. Line comments may be introduced by the hash character.
|
||||
This option may be given more than once.
|
||||
.IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4
|
||||
.IX Item "--alt-machine-code=index"
|
||||
If the output architecture has alternate machine codes, use the
|
||||
\&\fIindex\fRth code instead of the default one. This is useful in case
|
||||
a machine is assigned an official code and the tool-chain adopts the
|
||||
new code, but other applications still depend on the original code
|
||||
being used.
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Show the version number of \fBobjcopy\fR.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-\-verbose\fR" 4
|
||||
.IX Item "--verbose"
|
||||
.PD
|
||||
Verbose output: list all object files modified. In the case of
|
||||
archives, \fBobjcopy \-V\fR lists all members of the archive.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Show a summary of the options to \fBobjcopy\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
517
contrib/binutils/binutils/doc/objdump.1
Normal file
517
contrib/binutils/binutils/doc/objdump.1
Normal file
@ -0,0 +1,517 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "OBJDUMP 1"
|
||||
.TH OBJDUMP 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
objdump \- display information from object files.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
|
||||
[\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
|
||||
[\fB\-d\fR|\fB\-\-disassemble\fR]
|
||||
[\fB\-D\fR|\fB\-\-disassemble\-all\fR]
|
||||
[\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
|
||||
[\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
|
||||
[\fB\-f\fR|\fB\-\-file\-headers\fR]
|
||||
[\fB\-\-file\-start\-context\fR]
|
||||
[\fB\-g\fR|\fB\-\-debugging\fR]
|
||||
[\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
|
||||
[\fB\-i\fR|\fB\-\-info\fR]
|
||||
[\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
|
||||
[\fB\-l\fR|\fB\-\-line\-numbers\fR]
|
||||
[\fB\-S\fR|\fB\-\-source\fR]
|
||||
[\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
|
||||
[\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
|
||||
[\fB\-p\fR|\fB\-\-private\-headers\fR]
|
||||
[\fB\-r\fR|\fB\-\-reloc\fR]
|
||||
[\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
|
||||
[\fB\-s\fR|\fB\-\-full\-contents\fR]
|
||||
[\fB\-G\fR|\fB\-\-stabs\fR]
|
||||
[\fB\-t\fR|\fB\-\-syms\fR]
|
||||
[\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
|
||||
[\fB\-x\fR|\fB\-\-all\-headers\fR]
|
||||
[\fB\-w\fR|\fB\-\-wide\fR]
|
||||
[\fB\-\-start\-address=\fR\fIaddress\fR]
|
||||
[\fB\-\-stop\-address=\fR\fIaddress\fR]
|
||||
[\fB\-\-prefix\-addresses\fR]
|
||||
[\fB\-\-[no\-]show\-raw\-insn\fR]
|
||||
[\fB\-\-adjust\-vma=\fR\fIoffset\fR]
|
||||
[\fB\-V\fR|\fB\-\-version\fR]
|
||||
[\fB\-H\fR|\fB\-\-help\fR]
|
||||
\fIobjfile\fR...
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBobjdump\fR displays information about one or more object files.
|
||||
The options control what particular information to display. This
|
||||
information is mostly useful to programmers who are working on the
|
||||
compilation tools, as opposed to programmers who just want their
|
||||
program to compile and work.
|
||||
.PP
|
||||
\&\fIobjfile\fR... are the object files to be examined. When you
|
||||
specify archives, \fBobjdump\fR shows information on each of the member
|
||||
object files.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The long and short forms of options, shown here as alternatives, are
|
||||
equivalent. At least one option from the list
|
||||
\&\fB\-a,\-d,\-D,\-f,\-g,\-G,\-h,\-H,\-p,\-r,\-R,\-S,\-t,\-T,\-V,\-x\fR must be given.
|
||||
.IP "\fB\-a\fR" 4
|
||||
.IX Item "-a"
|
||||
.PD 0
|
||||
.IP "\fB\-\-archive\-header\fR" 4
|
||||
.IX Item "--archive-header"
|
||||
.PD
|
||||
If any of the \fIobjfile\fR files are archives, display the archive
|
||||
header information (in a format similar to \fBls \-l\fR). Besides the
|
||||
information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
|
||||
the object file format of each archive member.
|
||||
.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
|
||||
.IX Item "--adjust-vma=offset"
|
||||
When dumping information, first add \fIoffset\fR to all the section
|
||||
addresses. This is useful if the section addresses do not correspond to
|
||||
the symbol table, which can happen when putting sections at particular
|
||||
addresses when using a format which can not represent section addresses,
|
||||
such as a.out.
|
||||
.IP "\fB\-b\fR \fIbfdname\fR" 4
|
||||
.IX Item "-b bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
.PD
|
||||
Specify that the object-code format for the object files is
|
||||
\&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can
|
||||
automatically recognize many formats.
|
||||
.Sp
|
||||
For example,
|
||||
.Sp
|
||||
.Vb 1
|
||||
\& objdump -b oasys -m vax -h fu.o
|
||||
.Ve
|
||||
displays summary information from the section headers (\fB\-h\fR) of
|
||||
\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
|
||||
file in the format produced by Oasys compilers. You can list the
|
||||
formats available with the \fB\-i\fR option.
|
||||
.IP "\fB\-C\fR" 4
|
||||
.IX Item "-C"
|
||||
.PD 0
|
||||
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
|
||||
.IX Item "--demangle[=style]"
|
||||
.PD
|
||||
Decode (\fIdemangle\fR) low-level symbol names into user-level names.
|
||||
Besides removing any initial underscore prepended by the system, this
|
||||
makes \*(C+ function names readable. Different compilers have different
|
||||
mangling styles. The optional demangling style argument can be used to
|
||||
choose an appropriate demangling style for your compiler.
|
||||
.IP "\fB\-G\fR" 4
|
||||
.IX Item "-G"
|
||||
.PD 0
|
||||
.IP "\fB\-\-debugging\fR" 4
|
||||
.IX Item "--debugging"
|
||||
.PD
|
||||
Display debugging information. This attempts to parse debugging
|
||||
information stored in the file and print it out using a C like syntax.
|
||||
Only certain types of debugging information have been implemented.
|
||||
.IP "\fB\-d\fR" 4
|
||||
.IX Item "-d"
|
||||
.PD 0
|
||||
.IP "\fB\-\-disassemble\fR" 4
|
||||
.IX Item "--disassemble"
|
||||
.PD
|
||||
Display the assembler mnemonics for the machine instructions from
|
||||
\&\fIobjfile\fR. This option only disassembles those sections which are
|
||||
expected to contain instructions.
|
||||
.IP "\fB\-D\fR" 4
|
||||
.IX Item "-D"
|
||||
.PD 0
|
||||
.IP "\fB\-\-disassemble\-all\fR" 4
|
||||
.IX Item "--disassemble-all"
|
||||
.PD
|
||||
Like \fB\-d\fR, but disassemble the contents of all sections, not just
|
||||
those expected to contain instructions.
|
||||
.IP "\fB\-\-prefix\-addresses\fR" 4
|
||||
.IX Item "--prefix-addresses"
|
||||
When disassembling, print the complete address on each line. This is
|
||||
the older disassembly format.
|
||||
.IP "\fB\-\-disassemble\-zeroes\fR" 4
|
||||
.IX Item "--disassemble-zeroes"
|
||||
Normally the disassembly output will skip blocks of zeroes. This
|
||||
option directs the disassembler to disassemble those blocks, just like
|
||||
any other data.
|
||||
.IP "\fB\-EB\fR" 4
|
||||
.IX Item "-EB"
|
||||
.PD 0
|
||||
.IP "\fB\-EL\fR" 4
|
||||
.IX Item "-EL"
|
||||
.IP "\fB\-\-endian={big|little}\fR" 4
|
||||
.IX Item "--endian={big|little}"
|
||||
.PD
|
||||
Specify the endianness of the object files. This only affects
|
||||
disassembly. This can be useful when disassembling a file format which
|
||||
does not describe endianness information, such as S\-records.
|
||||
.IP "\fB\-f\fR" 4
|
||||
.IX Item "-f"
|
||||
.PD 0
|
||||
.IP "\fB\-\-file\-header\fR" 4
|
||||
.IX Item "--file-header"
|
||||
.PD
|
||||
Display summary information from the overall header of
|
||||
each of the \fIobjfile\fR files.
|
||||
.IP "\fB\-\-file\-start\-context\fR" 4
|
||||
.IX Item "--file-start-context"
|
||||
Specify that when displaying interlisted source code/disassembly
|
||||
(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
|
||||
context to the start of the file.
|
||||
.IP "\fB\-h\fR" 4
|
||||
.IX Item "-h"
|
||||
.PD 0
|
||||
.IP "\fB\-\-section\-header\fR" 4
|
||||
.IX Item "--section-header"
|
||||
.IP "\fB\-\-header\fR" 4
|
||||
.IX Item "--header"
|
||||
.PD
|
||||
Display summary information from the section headers of the
|
||||
object file.
|
||||
.Sp
|
||||
File segments may be relocated to nonstandard addresses, for example by
|
||||
using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
|
||||
\&\fBld\fR. However, some object file formats, such as a.out, do not
|
||||
store the starting address of the file segments. In those situations,
|
||||
although \fBld\fR relocates the sections correctly, using \fBobjdump
|
||||
\&\-h\fR to list the file section headers cannot show the correct addresses.
|
||||
Instead, it shows the usual addresses, which are implicit for the
|
||||
target.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Print a summary of the options to \fBobjdump\fR and exit.
|
||||
.IP "\fB\-i\fR" 4
|
||||
.IX Item "-i"
|
||||
.PD 0
|
||||
.IP "\fB\-\-info\fR" 4
|
||||
.IX Item "--info"
|
||||
.PD
|
||||
Display a list showing all architectures and object formats available
|
||||
for specification with \fB\-b\fR or \fB\-m\fR.
|
||||
.IP "\fB\-j\fR \fIname\fR" 4
|
||||
.IX Item "-j name"
|
||||
.PD 0
|
||||
.IP "\fB\-\-section=\fR\fIname\fR" 4
|
||||
.IX Item "--section=name"
|
||||
.PD
|
||||
Display information only for section \fIname\fR.
|
||||
.IP "\fB\-l\fR" 4
|
||||
.IX Item "-l"
|
||||
.PD 0
|
||||
.IP "\fB\-\-line\-numbers\fR" 4
|
||||
.IX Item "--line-numbers"
|
||||
.PD
|
||||
Label the display (using debugging information) with the filename and
|
||||
source line numbers corresponding to the object code or relocs shown.
|
||||
Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
|
||||
.IP "\fB\-m\fR \fImachine\fR" 4
|
||||
.IX Item "-m machine"
|
||||
.PD 0
|
||||
.IP "\fB\-\-architecture=\fR\fImachine\fR" 4
|
||||
.IX Item "--architecture=machine"
|
||||
.PD
|
||||
Specify the architecture to use when disassembling object files. This
|
||||
can be useful when disassembling object files which do not describe
|
||||
architecture information, such as S\-records. You can list the available
|
||||
architectures with the \fB\-i\fR option.
|
||||
.IP "\fB\-M\fR \fIoptions\fR" 4
|
||||
.IX Item "-M options"
|
||||
.PD 0
|
||||
.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
|
||||
.IX Item "--disassembler-options=options"
|
||||
.PD
|
||||
Pass target specific information to the disassembler. Only supported on
|
||||
some targets.
|
||||
.Sp
|
||||
If the target is an \s-1ARM\s0 architecture then this switch can be used to
|
||||
select which register name set is used during disassembler. Specifying
|
||||
\&\fB\-M reg-name-std\fR (the default) will select the register names as
|
||||
used in \s-1ARM\s0's instruction set documentation, but with register 13 called
|
||||
\&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
|
||||
\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
|
||||
Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
|
||||
just use \fBr\fR followed by the register number.
|
||||
.Sp
|
||||
There are also two variants on the \s-1APCS\s0 register naming scheme enabled
|
||||
by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
|
||||
use the ARM/Thumb Procedure Call Standard naming conventions. (Either
|
||||
with the normal register name or the special register names).
|
||||
.Sp
|
||||
This option can also be used for \s-1ARM\s0 architectures to force the
|
||||
disassembler to interpret all instructions as Thumb instructions by
|
||||
using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be
|
||||
useful when attempting to disassemble thumb code produced by other
|
||||
compilers.
|
||||
.Sp
|
||||
For the x86, some of the options duplicate functions of the \fB\-m\fR
|
||||
switch, but allow finer grained control. Multiple selections from the
|
||||
following may be specified as a comma separated string.
|
||||
\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
|
||||
the given architecture. \fBintel\fR and \fBatt\fR select between
|
||||
intel syntax mode and \s-1AT&T\s0 syntax mode. \fBaddr32\fR,
|
||||
\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
|
||||
address size and operand size. These four options will be overridden if
|
||||
\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
|
||||
option string. Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
|
||||
instructs the dissassembler to print a mnemonic suffix even when the
|
||||
suffix could be inferred by the operands.
|
||||
.Sp
|
||||
For \s-1PPC\s0, \fBbooke\fR, \fBbooke32\fR and \fBbooke64\fR select
|
||||
disassembly of BookE instructions. \fB32\fR and \fB64\fR select
|
||||
PowerPC and PowerPC64 disassembly, respectively.
|
||||
.IP "\fB\-p\fR" 4
|
||||
.IX Item "-p"
|
||||
.PD 0
|
||||
.IP "\fB\-\-private\-headers\fR" 4
|
||||
.IX Item "--private-headers"
|
||||
.PD
|
||||
Print information that is specific to the object file format. The exact
|
||||
information printed depends upon the object file format. For some
|
||||
object file formats, no additional information is printed.
|
||||
.IP "\fB\-r\fR" 4
|
||||
.IX Item "-r"
|
||||
.PD 0
|
||||
.IP "\fB\-\-reloc\fR" 4
|
||||
.IX Item "--reloc"
|
||||
.PD
|
||||
Print the relocation entries of the file. If used with \fB\-d\fR or
|
||||
\&\fB\-D\fR, the relocations are printed interspersed with the
|
||||
disassembly.
|
||||
.IP "\fB\-R\fR" 4
|
||||
.IX Item "-R"
|
||||
.PD 0
|
||||
.IP "\fB\-\-dynamic\-reloc\fR" 4
|
||||
.IX Item "--dynamic-reloc"
|
||||
.PD
|
||||
Print the dynamic relocation entries of the file. This is only
|
||||
meaningful for dynamic objects, such as certain types of shared
|
||||
libraries.
|
||||
.IP "\fB\-s\fR" 4
|
||||
.IX Item "-s"
|
||||
.PD 0
|
||||
.IP "\fB\-\-full\-contents\fR" 4
|
||||
.IX Item "--full-contents"
|
||||
.PD
|
||||
Display the full contents of any sections requested.
|
||||
.IP "\fB\-S\fR" 4
|
||||
.IX Item "-S"
|
||||
.PD 0
|
||||
.IP "\fB\-\-source\fR" 4
|
||||
.IX Item "--source"
|
||||
.PD
|
||||
Display source code intermixed with disassembly, if possible. Implies
|
||||
\&\fB\-d\fR.
|
||||
.IP "\fB\-\-show\-raw\-insn\fR" 4
|
||||
.IX Item "--show-raw-insn"
|
||||
When disassembling instructions, print the instruction in hex as well as
|
||||
in symbolic form. This is the default except when
|
||||
\&\fB\-\-prefix\-addresses\fR is used.
|
||||
.IP "\fB\-\-no\-show\-raw\-insn\fR" 4
|
||||
.IX Item "--no-show-raw-insn"
|
||||
When disassembling instructions, do not print the instruction bytes.
|
||||
This is the default when \fB\-\-prefix\-addresses\fR is used.
|
||||
.IP "\fB\-G\fR" 4
|
||||
.IX Item "-G"
|
||||
.PD 0
|
||||
.IP "\fB\-\-stabs\fR" 4
|
||||
.IX Item "--stabs"
|
||||
.PD
|
||||
Display the full contents of any sections requested. Display the
|
||||
contents of the .stab and .stab.index and .stab.excl sections from an
|
||||
\&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which
|
||||
\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
|
||||
section. In most other file formats, debugging symbol-table entries are
|
||||
interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
|
||||
output.
|
||||
.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
|
||||
.IX Item "--start-address=address"
|
||||
Start displaying data at the specified address. This affects the output
|
||||
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
|
||||
.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
|
||||
.IX Item "--stop-address=address"
|
||||
Stop displaying data at the specified address. This affects the output
|
||||
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
|
||||
.IP "\fB\-t\fR" 4
|
||||
.IX Item "-t"
|
||||
.PD 0
|
||||
.IP "\fB\-\-syms\fR" 4
|
||||
.IX Item "--syms"
|
||||
.PD
|
||||
Print the symbol table entries of the file.
|
||||
This is similar to the information provided by the \fBnm\fR program.
|
||||
.IP "\fB\-T\fR" 4
|
||||
.IX Item "-T"
|
||||
.PD 0
|
||||
.IP "\fB\-\-dynamic\-syms\fR" 4
|
||||
.IX Item "--dynamic-syms"
|
||||
.PD
|
||||
Print the dynamic symbol table entries of the file. This is only
|
||||
meaningful for dynamic objects, such as certain types of shared
|
||||
libraries. This is similar to the information provided by the \fBnm\fR
|
||||
program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
Print the version number of \fBobjdump\fR and exit.
|
||||
.IP "\fB\-x\fR" 4
|
||||
.IX Item "-x"
|
||||
.PD 0
|
||||
.IP "\fB\-\-all\-header\fR" 4
|
||||
.IX Item "--all-header"
|
||||
.PD
|
||||
Display all available header information, including the symbol table and
|
||||
relocation entries. Using \fB\-x\fR is equivalent to specifying all of
|
||||
\&\fB\-a \-f \-h \-r \-t\fR.
|
||||
.IP "\fB\-w\fR" 4
|
||||
.IX Item "-w"
|
||||
.PD 0
|
||||
.IP "\fB\-\-wide\fR" 4
|
||||
.IX Item "--wide"
|
||||
.PD
|
||||
Format some lines for output devices that have more than 80 columns.
|
||||
Also do not truncate symbol names when they are displayed.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
176
contrib/binutils/binutils/doc/ranlib.1
Normal file
176
contrib/binutils/binutils/doc/ranlib.1
Normal file
@ -0,0 +1,176 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "RANLIB 1"
|
||||
.TH RANLIB 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
ranlib \- generate index to archive.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
ranlib [\fB\-vV\fR] \fIarchive\fR
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBranlib\fR generates an index to the contents of an archive and
|
||||
stores it in the archive. The index lists each symbol defined by a
|
||||
member of an archive that is a relocatable object file.
|
||||
.PP
|
||||
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index.
|
||||
.PP
|
||||
An archive with such an index speeds up linking to the library and
|
||||
allows routines in the library to call each other without regard to
|
||||
their placement in the archive.
|
||||
.PP
|
||||
The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running
|
||||
\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Show the version number of \fBranlib\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
327
contrib/binutils/binutils/doc/readelf.1
Normal file
327
contrib/binutils/binutils/doc/readelf.1
Normal file
@ -0,0 +1,327 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "READELF 1"
|
||||
.TH READELF 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
readelf \- Displays information about \s-1ELF\s0 files.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
readelf [\fB\-a\fR|\fB\-\-all\fR]
|
||||
[\fB\-h\fR|\fB\-\-file\-header\fR]
|
||||
[\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
|
||||
[\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
|
||||
[\fB\-e\fR|\fB\-\-headers\fR]
|
||||
[\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
|
||||
[\fB\-n\fR|\fB\-\-notes\fR]
|
||||
[\fB\-r\fR|\fB\-\-relocs\fR]
|
||||
[\fB\-u\fR|\fB\-\-unwind\fR]
|
||||
[\fB\-d\fR|\fB\-\-dynamic\fR]
|
||||
[\fB\-V\fR|\fB\-\-version\-info\fR]
|
||||
[\fB\-D\fR|\fB\-\-use\-dynamic\fR]
|
||||
[\fB\-x\fR <number>|\fB\-\-hex\-dump=\fR<number>]
|
||||
[\fB\-w[liaprmfs]\fR|\fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]]
|
||||
[\fB\-histogram\fR]
|
||||
[\fB\-v\fR|\fB\-\-version\fR]
|
||||
[\fB\-W\fR|\fB\-\-wide\fR]
|
||||
[\fB\-H\fR|\fB\-\-help\fR]
|
||||
\fIelffile\fR...
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
|
||||
files. The options control what particular information to display.
|
||||
.PP
|
||||
\&\fIelffile\fR... are the object files to be examined. At the
|
||||
moment, \fBreadelf\fR does not support examining archives, nor does it
|
||||
support examing 64 bit \s-1ELF\s0 files.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The long and short forms of options, shown here as alternatives, are
|
||||
equivalent. At least one option besides \fB\-v\fR or \fB\-H\fR must be
|
||||
given.
|
||||
.IP "\fB\-a\fR" 4
|
||||
.IX Item "-a"
|
||||
.PD 0
|
||||
.IP "\fB\-\-all\fR" 4
|
||||
.IX Item "--all"
|
||||
.PD
|
||||
Equivalent to specifiying \fB\-\-file\-header\fR,
|
||||
\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
|
||||
\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and
|
||||
\&\fB\-\-version\-info\fR.
|
||||
.IP "\fB\-h\fR" 4
|
||||
.IX Item "-h"
|
||||
.PD 0
|
||||
.IP "\fB\-\-file\-header\fR" 4
|
||||
.IX Item "--file-header"
|
||||
.PD
|
||||
Displays the information contained in the \s-1ELF\s0 header at the start of the
|
||||
file.
|
||||
.IP "\fB\-l\fR" 4
|
||||
.IX Item "-l"
|
||||
.PD 0
|
||||
.IP "\fB\-\-program\-headers\fR" 4
|
||||
.IX Item "--program-headers"
|
||||
.IP "\fB\-\-segments\fR" 4
|
||||
.IX Item "--segments"
|
||||
.PD
|
||||
Displays the information contained in the file's segment headers, if it
|
||||
has any.
|
||||
.IP "\fB\-S\fR" 4
|
||||
.IX Item "-S"
|
||||
.PD 0
|
||||
.IP "\fB\-\-sections\fR" 4
|
||||
.IX Item "--sections"
|
||||
.IP "\fB\-\-section\-headers\fR" 4
|
||||
.IX Item "--section-headers"
|
||||
.PD
|
||||
Displays the information contained in the file's section headers, if it
|
||||
has any.
|
||||
.IP "\fB\-s\fR" 4
|
||||
.IX Item "-s"
|
||||
.PD 0
|
||||
.IP "\fB\-\-symbols\fR" 4
|
||||
.IX Item "--symbols"
|
||||
.IP "\fB\-\-syms\fR" 4
|
||||
.IX Item "--syms"
|
||||
.PD
|
||||
Displays the entries in symbol table section of the file, if it has one.
|
||||
.IP "\fB\-e\fR" 4
|
||||
.IX Item "-e"
|
||||
.PD 0
|
||||
.IP "\fB\-\-headers\fR" 4
|
||||
.IX Item "--headers"
|
||||
.PD
|
||||
Display all the headers in the file. Equivalent to \fB\-h \-l \-S\fR.
|
||||
.IP "\fB\-n\fR" 4
|
||||
.IX Item "-n"
|
||||
.PD 0
|
||||
.IP "\fB\-\-notes\fR" 4
|
||||
.IX Item "--notes"
|
||||
.PD
|
||||
Displays the contents of the \s-1NOTE\s0 segment, if it exists.
|
||||
.IP "\fB\-r\fR" 4
|
||||
.IX Item "-r"
|
||||
.PD 0
|
||||
.IP "\fB\-\-relocs\fR" 4
|
||||
.IX Item "--relocs"
|
||||
.PD
|
||||
Displays the contents of the file's relocation section, if it has one.
|
||||
.IP "\fB\-u\fR" 4
|
||||
.IX Item "-u"
|
||||
.PD 0
|
||||
.IP "\fB\-\-unwind\fR" 4
|
||||
.IX Item "--unwind"
|
||||
.PD
|
||||
Displays the contents of the file's unwind section, if it has one. Only
|
||||
the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported.
|
||||
.IP "\fB\-d\fR" 4
|
||||
.IX Item "-d"
|
||||
.PD 0
|
||||
.IP "\fB\-\-dynamic\fR" 4
|
||||
.IX Item "--dynamic"
|
||||
.PD
|
||||
Displays the contents of the file's dynamic section, if it has one.
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\-info\fR" 4
|
||||
.IX Item "--version-info"
|
||||
.PD
|
||||
Displays the contents of the version sections in the file, it they
|
||||
exist.
|
||||
.IP "\fB\-D\fR" 4
|
||||
.IX Item "-D"
|
||||
.PD 0
|
||||
.IP "\fB\-\-use\-dynamic\fR" 4
|
||||
.IX Item "--use-dynamic"
|
||||
.PD
|
||||
When displaying symbols, this option makes \fBreadelf\fR use the
|
||||
symbol table in the file's dynamic section, rather than the one in the
|
||||
symbols section.
|
||||
.IP "\fB\-x <number>\fR" 4
|
||||
.IX Item "-x <number>"
|
||||
.PD 0
|
||||
.IP "\fB\-\-hex\-dump=<number>\fR" 4
|
||||
.IX Item "--hex-dump=<number>"
|
||||
.PD
|
||||
Displays the contents of the indicated section as a hexadecimal dump.
|
||||
.IP "\fB\-w[liaprmfs]\fR" 4
|
||||
.IX Item "-w[liaprmfs]"
|
||||
.PD 0
|
||||
.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\fR" 4
|
||||
.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]"
|
||||
.PD
|
||||
Displays the contents of the debug sections in the file, if any are
|
||||
present. If one of the optional letters or words follows the switch
|
||||
then only data found in those specific sections will be dumped.
|
||||
.IP "\fB\-\-histogram\fR" 4
|
||||
.IX Item "--histogram"
|
||||
Display a histogram of bucket list lengths when displaying the contents
|
||||
of the symbol tables.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Display the version number of readelf.
|
||||
.IP "\fB\-W\fR" 4
|
||||
.IX Item "-W"
|
||||
.PD 0
|
||||
.IP "\fB\-\-wide\fR" 4
|
||||
.IX Item "--wide"
|
||||
.PD
|
||||
Don't break output lines to fit into 80 columns. By default
|
||||
\&\fBreadelf\fR breaks section header and segment listing lines for
|
||||
64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
|
||||
\&\fBreadelf\fR to print each section header resp. each segment one a
|
||||
single line, which is far more readable on terminals wider than 80 columns.
|
||||
.IP "\fB\-H\fR" 4
|
||||
.IX Item "-H"
|
||||
.PD 0
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
.PD
|
||||
Display the command line options understood by \fBreadelf\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
249
contrib/binutils/binutils/doc/size.1
Normal file
249
contrib/binutils/binutils/doc/size.1
Normal file
@ -0,0 +1,249 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "SIZE 1"
|
||||
.TH SIZE 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
size \- list section sizes and total size.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR]
|
||||
[\fB\-\-help\fR]
|
||||
[\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
|
||||
[\fB\-t\fR|\fB\-\-totals\fR]
|
||||
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR]
|
||||
[\fIobjfile\fR...]
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total
|
||||
size\-\-\-for each of the object or archive files \fIobjfile\fR in its
|
||||
argument list. By default, one line of output is generated for each
|
||||
object file or each module in an archive.
|
||||
.PP
|
||||
\&\fIobjfile\fR... are the object files to be examined.
|
||||
If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
The command line options have the following meanings:
|
||||
.IP "\fB\-A\fR" 4
|
||||
.IX Item "-A"
|
||||
.PD 0
|
||||
.IP "\fB\-B\fR" 4
|
||||
.IX Item "-B"
|
||||
.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4
|
||||
.IX Item "--format=compatibility"
|
||||
.PD
|
||||
Using one of these options, you can choose whether the output from \s-1GNU\s0
|
||||
\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR,
|
||||
or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or
|
||||
\&\fB\-\-format=berkeley\fR). The default is the one-line format similar to
|
||||
Berkeley's.
|
||||
.Sp
|
||||
Here is an example of the Berkeley (default) format of output from
|
||||
\&\fBsize\fR:
|
||||
.Sp
|
||||
.Vb 4
|
||||
\& $ size --format=Berkeley ranlib size
|
||||
\& text data bss dec hex filename
|
||||
\& 294880 81920 11592 388392 5ed28 ranlib
|
||||
\& 294880 81920 11888 388688 5ee50 size
|
||||
.Ve
|
||||
This is the same data, but displayed closer to System V conventions:
|
||||
.Sp
|
||||
.Vb 7
|
||||
\& $ size --format=SysV ranlib size
|
||||
\& ranlib :
|
||||
\& section size addr
|
||||
\& .text 294880 8192
|
||||
\& .data 81920 303104
|
||||
\& .bss 11592 385024
|
||||
\& Total 388392
|
||||
.Ve
|
||||
.Vb 6
|
||||
\& size :
|
||||
\& section size addr
|
||||
\& .text 294880 8192
|
||||
\& .data 81920 303104
|
||||
\& .bss 11888 385024
|
||||
\& Total 388688
|
||||
.Ve
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Show a summary of acceptable arguments and options.
|
||||
.IP "\fB\-d\fR" 4
|
||||
.IX Item "-d"
|
||||
.PD 0
|
||||
.IP "\fB\-o\fR" 4
|
||||
.IX Item "-o"
|
||||
.IP "\fB\-x\fR" 4
|
||||
.IX Item "-x"
|
||||
.IP "\fB\-\-radix=\fR\fInumber\fR" 4
|
||||
.IX Item "--radix=number"
|
||||
.PD
|
||||
Using one of these options, you can control whether the size of each
|
||||
section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal
|
||||
(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or
|
||||
\&\fB\-\-radix=16\fR). In \fB\-\-radix=\fR\fInumber\fR, only the three
|
||||
values (8, 10, 16) are supported. The total size is always given in two
|
||||
radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or
|
||||
octal and hexadecimal if you're using \fB\-o\fR.
|
||||
.IP "\fB\-t\fR" 4
|
||||
.IX Item "-t"
|
||||
.PD 0
|
||||
.IP "\fB\-\-totals\fR" 4
|
||||
.IX Item "--totals"
|
||||
.PD
|
||||
Show totals of all objects listed (Berkeley format listing mode only).
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
Specify that the object-code format for \fIobjfile\fR is
|
||||
\&\fIbfdname\fR. This option may not be necessary; \fBsize\fR can
|
||||
automatically recognize many formats.
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Display the version number of \fBsize\fR.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
237
contrib/binutils/binutils/doc/strings.1
Normal file
237
contrib/binutils/binutils/doc/strings.1
Normal file
@ -0,0 +1,237 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "STRINGS 1"
|
||||
.TH STRINGS 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
strings \- print the strings of printable characters in files.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
strings [\fB\-afov\fR] [\fB\-\fR\fImin-len\fR]
|
||||
[\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
|
||||
[\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
|
||||
[\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
|
||||
[\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
|
||||
[\fB\-\-target=\fR\fIbfdname\fR]
|
||||
[\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the printable
|
||||
character sequences that are at least 4 characters long (or the number
|
||||
given with the options below) and are followed by an unprintable
|
||||
character. By default, it only prints the strings from the initialized
|
||||
and loaded sections of object files; for other types of files, it prints
|
||||
the strings from the whole file.
|
||||
.PP
|
||||
\&\fBstrings\fR is mainly useful for determining the contents of non-text
|
||||
files.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fB\-a\fR" 4
|
||||
.IX Item "-a"
|
||||
.PD 0
|
||||
.IP "\fB\-\-all\fR" 4
|
||||
.IX Item "--all"
|
||||
.IP "\fB\-\fR" 4
|
||||
.IX Item "-"
|
||||
.PD
|
||||
Do not scan only the initialized and loaded sections of object files;
|
||||
scan the whole files.
|
||||
.IP "\fB\-f\fR" 4
|
||||
.IX Item "-f"
|
||||
.PD 0
|
||||
.IP "\fB\-\-print\-file\-name\fR" 4
|
||||
.IX Item "--print-file-name"
|
||||
.PD
|
||||
Print the name of the file before each string.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Print a summary of the program usage on the standard output and exit.
|
||||
.IP "\fB\-\fR\fImin-len\fR" 4
|
||||
.IX Item "-min-len"
|
||||
.PD 0
|
||||
.IP "\fB\-n\fR \fImin-len\fR" 4
|
||||
.IX Item "-n min-len"
|
||||
.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
|
||||
.IX Item "--bytes=min-len"
|
||||
.PD
|
||||
Print sequences of characters that are at least \fImin-len\fR characters
|
||||
long, instead of the default 4.
|
||||
.IP "\fB\-o\fR" 4
|
||||
.IX Item "-o"
|
||||
Like \fB\-t o\fR. Some other versions of \fBstrings\fR have \fB\-o\fR
|
||||
act like \fB\-t d\fR instead. Since we can not be compatible with both
|
||||
ways, we simply chose one.
|
||||
.IP "\fB\-t\fR \fIradix\fR" 4
|
||||
.IX Item "-t radix"
|
||||
.PD 0
|
||||
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
|
||||
.IX Item "--radix=radix"
|
||||
.PD
|
||||
Print the offset within the file before each string. The single
|
||||
character argument specifies the radix of the offset\-\-\-\fBo\fR for
|
||||
octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
|
||||
.IP "\fB\-e\fR \fIencoding\fR" 4
|
||||
.IX Item "-e encoding"
|
||||
.PD 0
|
||||
.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
|
||||
.IX Item "--encoding=encoding"
|
||||
.PD
|
||||
Select the character encoding of the strings that are to be found.
|
||||
Possible values for \fIencoding\fR are: \fBs\fR = single-byte
|
||||
characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBb\fR = 16\-bit
|
||||
Bigendian, \fBl\fR = 16\-bit Littleendian, \fBB\fR = 32\-bit Bigendian,
|
||||
\&\fBL\fR = 32\-bit Littleendian. Useful for finding wide character
|
||||
strings.
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
Specify an object code format other than your system's default format.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Print the program version number on the standard output and exit.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1)
|
||||
and the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
286
contrib/binutils/binutils/doc/strip.1
Normal file
286
contrib/binutils/binutils/doc/strip.1
Normal file
@ -0,0 +1,286 @@
|
||||
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
|
||||
.\"
|
||||
.\" Standard preamble:
|
||||
.\" ========================================================================
|
||||
.de Sh \" Subsection heading
|
||||
.br
|
||||
.if t .Sp
|
||||
.ne 5
|
||||
.PP
|
||||
\fB\\$1\fR
|
||||
.PP
|
||||
..
|
||||
.de Sp \" Vertical space (when we can't use .PP)
|
||||
.if t .sp .5v
|
||||
.if n .sp
|
||||
..
|
||||
.de Vb \" Begin verbatim text
|
||||
.ft CW
|
||||
.nf
|
||||
.ne \\$1
|
||||
..
|
||||
.de Ve \" End verbatim text
|
||||
.ft R
|
||||
|
||||
.fi
|
||||
..
|
||||
.\" Set up some character translations and predefined strings. \*(-- will
|
||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||||
.\" double quote, and \*(R" will give a right double quote. | will give a
|
||||
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
|
||||
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
|
||||
.\" expand to `' in nroff, nothing in troff, for use with C<>.
|
||||
.tr \(*W-|\(bv\*(Tr
|
||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||||
.ie n \{\
|
||||
. ds -- \(*W-
|
||||
. ds PI pi
|
||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||||
. ds L" ""
|
||||
. ds R" ""
|
||||
. ds C` ""
|
||||
. ds C' ""
|
||||
'br\}
|
||||
.el\{\
|
||||
. ds -- \|\(em\|
|
||||
. ds PI \(*p
|
||||
. ds L" ``
|
||||
. ds R" ''
|
||||
'br\}
|
||||
.\"
|
||||
.\" If the F register is turned on, we'll generate index entries on stderr for
|
||||
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
|
||||
.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||||
.\" output yourself in some meaningful fashion.
|
||||
.if \nF \{\
|
||||
. de IX
|
||||
. tm Index:\\$1\t\\n%\t"\\$2"
|
||||
..
|
||||
. nr % 0
|
||||
. rr F
|
||||
.\}
|
||||
.\"
|
||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||
.\" way too many mistakes in technical documents.
|
||||
.hy 0
|
||||
.\"
|
||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
||||
. \" fudge factors for nroff and troff
|
||||
.if n \{\
|
||||
. ds #H 0
|
||||
. ds #V .8m
|
||||
. ds #F .3m
|
||||
. ds #[ \f1
|
||||
. ds #] \fP
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
||||
. ds #V .6m
|
||||
. ds #F 0
|
||||
. ds #[ \&
|
||||
. ds #] \&
|
||||
.\}
|
||||
. \" simple accents for nroff and troff
|
||||
.if n \{\
|
||||
. ds ' \&
|
||||
. ds ` \&
|
||||
. ds ^ \&
|
||||
. ds , \&
|
||||
. ds ~ ~
|
||||
. ds /
|
||||
.\}
|
||||
.if t \{\
|
||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
||||
.\}
|
||||
. \" troff and (daisy-wheel) nroff accents
|
||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
||||
. \" corrections for vroff
|
||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
||||
. \" for low resolution devices (crt and lpr)
|
||||
.if \n(.H>23 .if \n(.V>19 \
|
||||
\{\
|
||||
. ds : e
|
||||
. ds 8 ss
|
||||
. ds o a
|
||||
. ds d- d\h'-1'\(ga
|
||||
. ds D- D\h'-1'\(hy
|
||||
. ds th \o'bp'
|
||||
. ds Th \o'LP'
|
||||
. ds ae ae
|
||||
. ds Ae AE
|
||||
.\}
|
||||
.rm #[ #] #H #V #F C
|
||||
.\" ========================================================================
|
||||
.\"
|
||||
.IX Title "STRIP 1"
|
||||
.TH STRIP 1 "2002-03-08" "binutils-2.12" "GNU Development Tools"
|
||||
.UC
|
||||
.SH "NAME"
|
||||
strip \- Discard symbols from object files.
|
||||
.SH "SYNOPSIS"
|
||||
.IX Header "SYNOPSIS"
|
||||
strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR ]
|
||||
[\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR ]
|
||||
[\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR ]
|
||||
[\fB\-s\fR|\fB\-\-strip\-all\fR] [\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR]
|
||||
[\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR ]
|
||||
[\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR ]
|
||||
[\fB\-x\fR|\fB\-\-discard\-all\fR ] [\fB\-X\fR |\fB\-\-discard\-locals\fR]
|
||||
[\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR ]
|
||||
[\fB\-o\fR \fIfile\fR ] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
|
||||
[\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fB\-\-help\fR]
|
||||
\fIobjfile\fR...
|
||||
.SH "DESCRIPTION"
|
||||
.IX Header "DESCRIPTION"
|
||||
\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files
|
||||
\&\fIobjfile\fR. The list of object files may include archives.
|
||||
At least one object file must be given.
|
||||
.PP
|
||||
\&\fBstrip\fR modifies the files named in its argument,
|
||||
rather than writing modified copies under different names.
|
||||
.SH "OPTIONS"
|
||||
.IX Header "OPTIONS"
|
||||
.IP "\fB\-F\fR \fIbfdname\fR" 4
|
||||
.IX Item "-F bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--target=bfdname"
|
||||
.PD
|
||||
Treat the original \fIobjfile\fR as a file with the object
|
||||
code format \fIbfdname\fR, and rewrite it in the same format.
|
||||
.IP "\fB\-\-help\fR" 4
|
||||
.IX Item "--help"
|
||||
Show a summary of the options to \fBstrip\fR and exit.
|
||||
.IP "\fB\-I\fR \fIbfdname\fR\fB \fR" 4
|
||||
.IX Item "-I bfdname "
|
||||
.PD 0
|
||||
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--input-target=bfdname"
|
||||
.PD
|
||||
Treat the original \fIobjfile\fR as a file with the object
|
||||
code format \fIbfdname\fR.
|
||||
.IP "\fB\-O\fR \fIbfdname\fR" 4
|
||||
.IX Item "-O bfdname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
|
||||
.IX Item "--output-target=bfdname"
|
||||
.PD
|
||||
Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
|
||||
.IP "\fB\-R\fR \fIsectionname\fR" 4
|
||||
.IX Item "-R sectionname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
|
||||
.IX Item "--remove-section=sectionname"
|
||||
.PD
|
||||
Remove any section named \fIsectionname\fR from the output file. This
|
||||
option may be given more than once. Note that using this option
|
||||
inappropriately may make the output file unusable.
|
||||
.IP "\fB\-s\fR" 4
|
||||
.IX Item "-s"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-all\fR" 4
|
||||
.IX Item "--strip-all"
|
||||
.PD
|
||||
Remove all symbols.
|
||||
.IP "\fB\-g\fR" 4
|
||||
.IX Item "-g"
|
||||
.PD 0
|
||||
.IP "\fB\-S\fR" 4
|
||||
.IX Item "-S"
|
||||
.IP "\fB\-d\fR" 4
|
||||
.IX Item "-d"
|
||||
.IP "\fB\-\-strip\-debug\fR" 4
|
||||
.IX Item "--strip-debug"
|
||||
.PD
|
||||
Remove debugging symbols only.
|
||||
.IP "\fB\-\-strip\-unneeded\fR" 4
|
||||
.IX Item "--strip-unneeded"
|
||||
Remove all symbols that are not needed for relocation processing.
|
||||
.IP "\fB\-K\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-K symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--keep-symbol=symbolname"
|
||||
.PD
|
||||
Keep only symbol \fIsymbolname\fR from the source file. This option may
|
||||
be given more than once.
|
||||
.IP "\fB\-N\fR \fIsymbolname\fR" 4
|
||||
.IX Item "-N symbolname"
|
||||
.PD 0
|
||||
.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
|
||||
.IX Item "--strip-symbol=symbolname"
|
||||
.PD
|
||||
Remove symbol \fIsymbolname\fR from the source file. This option may be
|
||||
given more than once, and may be combined with strip options other than
|
||||
\&\fB\-K\fR.
|
||||
.IP "\fB\-o\fR \fIfile\fR" 4
|
||||
.IX Item "-o file"
|
||||
Put the stripped output in \fIfile\fR, rather than replacing the
|
||||
existing file. When this argument is used, only one \fIobjfile\fR
|
||||
argument may be specified.
|
||||
.IP "\fB\-p\fR" 4
|
||||
.IX Item "-p"
|
||||
.PD 0
|
||||
.IP "\fB\-\-preserve\-dates\fR" 4
|
||||
.IX Item "--preserve-dates"
|
||||
.PD
|
||||
Preserve the access and modification dates of the file.
|
||||
.IP "\fB\-x\fR" 4
|
||||
.IX Item "-x"
|
||||
.PD 0
|
||||
.IP "\fB\-\-discard\-all\fR" 4
|
||||
.IX Item "--discard-all"
|
||||
.PD
|
||||
Remove non-global symbols.
|
||||
.IP "\fB\-X\fR" 4
|
||||
.IX Item "-X"
|
||||
.PD 0
|
||||
.IP "\fB\-\-discard\-locals\fR" 4
|
||||
.IX Item "--discard-locals"
|
||||
.PD
|
||||
Remove compiler-generated local symbols.
|
||||
(These usually start with \fBL\fR or \fB.\fR.)
|
||||
.IP "\fB\-V\fR" 4
|
||||
.IX Item "-V"
|
||||
.PD 0
|
||||
.IP "\fB\-\-version\fR" 4
|
||||
.IX Item "--version"
|
||||
.PD
|
||||
Show the version number for \fBstrip\fR.
|
||||
.IP "\fB\-v\fR" 4
|
||||
.IX Item "-v"
|
||||
.PD 0
|
||||
.IP "\fB\-\-verbose\fR" 4
|
||||
.IX Item "--verbose"
|
||||
.PD
|
||||
Verbose output: list all object files modified. In the case of
|
||||
archives, \fBstrip \-v\fR lists all members of the archive.
|
||||
.SH "SEE ALSO"
|
||||
.IX Header "SEE ALSO"
|
||||
the Info entries for \fIbinutils\fR.
|
||||
.SH "COPYRIGHT"
|
||||
.IX Header "COPYRIGHT"
|
||||
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
.PP
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, with no Front-Cover Texts, and with no
|
||||
Back-Cover Texts. A copy of the license is included in the
|
||||
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
|
@ -1,7 +1,7 @@
|
||||
/* A lexical scanner generated by flex */
|
||||
|
||||
/* Scanner skeleton version:
|
||||
* $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.4.2 2001/06/10 15:37:28 pb Exp $
|
||||
* $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.6.1 2002/03/08 17:01:00 drow Exp $
|
||||
*/
|
||||
|
||||
#define FLEX_SCANNER
|
||||
@ -9,7 +9,7 @@
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
|
||||
#ifdef c_plusplus
|
||||
@ -22,7 +22,15 @@
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include <stdlib.h>
|
||||
#ifndef _Win32
|
||||
#include <unistd.h>
|
||||
#else
|
||||
#ifndef YY_ALWAYS_INTERACTIVE
|
||||
#ifndef YY_NEVER_INTERACTIVE
|
||||
extern int isatty YY_PROTO(( int ));
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Use prototypes in function declarations. */
|
||||
#define YY_USE_PROTOS
|
||||
@ -635,7 +643,7 @@ char *yytext;
|
||||
#line 1 "rclex.l"
|
||||
#define INITIAL 0
|
||||
#line 2 "rclex.l"
|
||||
/* Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support.
|
||||
|
||||
This file is part of GNU Binutils.
|
||||
@ -662,10 +670,10 @@ char *yytext;
|
||||
#include "bfd.h"
|
||||
#include "bucomm.h"
|
||||
#include "libiberty.h"
|
||||
#include "safe-ctype.h"
|
||||
#include "windres.h"
|
||||
#include "rcparse.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
|
||||
/* Whether we are in rcdata mode, in which we returns the lengths of
|
||||
@ -706,7 +714,7 @@ static void cpp_line PARAMS ((const char *));
|
||||
static char *handle_quotes PARAMS ((const char *, unsigned long *));
|
||||
static char *get_string PARAMS ((int));
|
||||
|
||||
#line 710 "lex.yy.c"
|
||||
#line 718 "lex.yy.c"
|
||||
|
||||
/* Macros after this point can all be overridden by user definitions in
|
||||
* section 1.
|
||||
@ -806,9 +814,20 @@ YY_MALLOC_DECL
|
||||
YY_FATAL_ERROR( "input in flex scanner failed" ); \
|
||||
result = n; \
|
||||
} \
|
||||
else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
|
||||
&& ferror( yyin ) ) \
|
||||
YY_FATAL_ERROR( "input in flex scanner failed" );
|
||||
else \
|
||||
{ \
|
||||
errno=0; \
|
||||
while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
|
||||
{ \
|
||||
if( errno != EINTR) \
|
||||
{ \
|
||||
YY_FATAL_ERROR( "input in flex scanner failed" ); \
|
||||
break; \
|
||||
} \
|
||||
errno=0; \
|
||||
clearerr(yyin); \
|
||||
} \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* No semi-colon after return; correct usage is to write "yyterminate();" -
|
||||
@ -860,7 +879,7 @@ YY_DECL
|
||||
#line 75 "rclex.l"
|
||||
|
||||
|
||||
#line 864 "lex.yy.c"
|
||||
#line 883 "lex.yy.c"
|
||||
|
||||
if ( yy_init )
|
||||
{
|
||||
@ -1439,7 +1458,7 @@ YY_RULE_SETUP
|
||||
#line 236 "rclex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1443 "lex.yy.c"
|
||||
#line 1462 "lex.yy.c"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
@ -2003,11 +2022,15 @@ YY_BUFFER_STATE b;
|
||||
}
|
||||
|
||||
|
||||
#ifndef _Win32
|
||||
#include <unistd.h>
|
||||
#else
|
||||
#ifndef YY_ALWAYS_INTERACTIVE
|
||||
#ifndef YY_NEVER_INTERACTIVE
|
||||
extern int isatty YY_PROTO(( int ));
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef YY_USE_PROTOS
|
||||
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
|
||||
@ -2345,18 +2368,18 @@ cpp_line (s)
|
||||
char *send, *fn;
|
||||
|
||||
++s;
|
||||
while (isspace ((unsigned char) *s))
|
||||
while (ISSPACE (*s))
|
||||
++s;
|
||||
|
||||
line = strtol (s, &send, 0);
|
||||
if (*send != '\0' && ! isspace ((unsigned char) *send))
|
||||
if (*send != '\0' && ! ISSPACE (*send))
|
||||
return;
|
||||
|
||||
/* Subtract 1 because we are about to count the newline. */
|
||||
rc_lineno = line - 1;
|
||||
|
||||
s = send;
|
||||
while (isspace ((unsigned char) *s))
|
||||
while (ISSPACE (*s))
|
||||
++s;
|
||||
|
||||
if (*s != '"')
|
||||
@ -2516,8 +2539,8 @@ handle_quotes (input, len)
|
||||
else
|
||||
{
|
||||
++t;
|
||||
assert (isspace ((unsigned char) *t));
|
||||
while (isspace ((unsigned char) *t))
|
||||
assert (ISSPACE (*t));
|
||||
while (ISSPACE (*t))
|
||||
++t;
|
||||
if (*t == '\0')
|
||||
break;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,7 @@
|
||||
#ifndef BISON_Y_TAB_H
|
||||
# define BISON_Y_TAB_H
|
||||
|
||||
#ifndef YYSTYPE
|
||||
typedef union
|
||||
{
|
||||
struct accelerator acc;
|
||||
@ -36,90 +40,94 @@ typedef union
|
||||
unsigned long length;
|
||||
const char *s;
|
||||
} ss;
|
||||
} YYSTYPE;
|
||||
#define BEG 257
|
||||
#define END 258
|
||||
#define ACCELERATORS 259
|
||||
#define VIRTKEY 260
|
||||
#define ASCII 261
|
||||
#define NOINVERT 262
|
||||
#define SHIFT 263
|
||||
#define CONTROL 264
|
||||
#define ALT 265
|
||||
#define BITMAP 266
|
||||
#define CURSOR 267
|
||||
#define DIALOG 268
|
||||
#define DIALOGEX 269
|
||||
#define EXSTYLE 270
|
||||
#define CAPTION 271
|
||||
#define CLASS 272
|
||||
#define STYLE 273
|
||||
#define AUTO3STATE 274
|
||||
#define AUTOCHECKBOX 275
|
||||
#define AUTORADIOBUTTON 276
|
||||
#define CHECKBOX 277
|
||||
#define COMBOBOX 278
|
||||
#define CTEXT 279
|
||||
#define DEFPUSHBUTTON 280
|
||||
#define EDITTEXT 281
|
||||
#define GROUPBOX 282
|
||||
#define LISTBOX 283
|
||||
#define LTEXT 284
|
||||
#define PUSHBOX 285
|
||||
#define PUSHBUTTON 286
|
||||
#define RADIOBUTTON 287
|
||||
#define RTEXT 288
|
||||
#define SCROLLBAR 289
|
||||
#define STATE3 290
|
||||
#define USERBUTTON 291
|
||||
#define BEDIT 292
|
||||
#define HEDIT 293
|
||||
#define IEDIT 294
|
||||
#define FONT 295
|
||||
#define ICON 296
|
||||
#define LANGUAGE 297
|
||||
#define CHARACTERISTICS 298
|
||||
#define VERSIONK 299
|
||||
#define MENU 300
|
||||
#define MENUEX 301
|
||||
#define MENUITEM 302
|
||||
#define SEPARATOR 303
|
||||
#define POPUP 304
|
||||
#define CHECKED 305
|
||||
#define GRAYED 306
|
||||
#define HELP 307
|
||||
#define INACTIVE 308
|
||||
#define MENUBARBREAK 309
|
||||
#define MENUBREAK 310
|
||||
#define MESSAGETABLE 311
|
||||
#define RCDATA 312
|
||||
#define STRINGTABLE 313
|
||||
#define VERSIONINFO 314
|
||||
#define FILEVERSION 315
|
||||
#define PRODUCTVERSION 316
|
||||
#define FILEFLAGSMASK 317
|
||||
#define FILEFLAGS 318
|
||||
#define FILEOS 319
|
||||
#define FILETYPE 320
|
||||
#define FILESUBTYPE 321
|
||||
#define BLOCKSTRINGFILEINFO 322
|
||||
#define BLOCKVARFILEINFO 323
|
||||
#define VALUE 324
|
||||
#define BLOCK 325
|
||||
#define MOVEABLE 326
|
||||
#define FIXED 327
|
||||
#define PURE 328
|
||||
#define IMPURE 329
|
||||
#define PRELOAD 330
|
||||
#define LOADONCALL 331
|
||||
#define DISCARDABLE 332
|
||||
#define NOT 333
|
||||
#define QUOTEDSTRING 334
|
||||
#define STRING 335
|
||||
#define NUMBER 336
|
||||
#define SIZEDSTRING 337
|
||||
#define IGNORED_TOKEN 338
|
||||
#define NEG 339
|
||||
} yystype;
|
||||
# define YYSTYPE yystype
|
||||
#endif
|
||||
# define BEG 257
|
||||
# define END 258
|
||||
# define ACCELERATORS 259
|
||||
# define VIRTKEY 260
|
||||
# define ASCII 261
|
||||
# define NOINVERT 262
|
||||
# define SHIFT 263
|
||||
# define CONTROL 264
|
||||
# define ALT 265
|
||||
# define BITMAP 266
|
||||
# define CURSOR 267
|
||||
# define DIALOG 268
|
||||
# define DIALOGEX 269
|
||||
# define EXSTYLE 270
|
||||
# define CAPTION 271
|
||||
# define CLASS 272
|
||||
# define STYLE 273
|
||||
# define AUTO3STATE 274
|
||||
# define AUTOCHECKBOX 275
|
||||
# define AUTORADIOBUTTON 276
|
||||
# define CHECKBOX 277
|
||||
# define COMBOBOX 278
|
||||
# define CTEXT 279
|
||||
# define DEFPUSHBUTTON 280
|
||||
# define EDITTEXT 281
|
||||
# define GROUPBOX 282
|
||||
# define LISTBOX 283
|
||||
# define LTEXT 284
|
||||
# define PUSHBOX 285
|
||||
# define PUSHBUTTON 286
|
||||
# define RADIOBUTTON 287
|
||||
# define RTEXT 288
|
||||
# define SCROLLBAR 289
|
||||
# define STATE3 290
|
||||
# define USERBUTTON 291
|
||||
# define BEDIT 292
|
||||
# define HEDIT 293
|
||||
# define IEDIT 294
|
||||
# define FONT 295
|
||||
# define ICON 296
|
||||
# define LANGUAGE 297
|
||||
# define CHARACTERISTICS 298
|
||||
# define VERSIONK 299
|
||||
# define MENU 300
|
||||
# define MENUEX 301
|
||||
# define MENUITEM 302
|
||||
# define SEPARATOR 303
|
||||
# define POPUP 304
|
||||
# define CHECKED 305
|
||||
# define GRAYED 306
|
||||
# define HELP 307
|
||||
# define INACTIVE 308
|
||||
# define MENUBARBREAK 309
|
||||
# define MENUBREAK 310
|
||||
# define MESSAGETABLE 311
|
||||
# define RCDATA 312
|
||||
# define STRINGTABLE 313
|
||||
# define VERSIONINFO 314
|
||||
# define FILEVERSION 315
|
||||
# define PRODUCTVERSION 316
|
||||
# define FILEFLAGSMASK 317
|
||||
# define FILEFLAGS 318
|
||||
# define FILEOS 319
|
||||
# define FILETYPE 320
|
||||
# define FILESUBTYPE 321
|
||||
# define BLOCKSTRINGFILEINFO 322
|
||||
# define BLOCKVARFILEINFO 323
|
||||
# define VALUE 324
|
||||
# define BLOCK 325
|
||||
# define MOVEABLE 326
|
||||
# define FIXED 327
|
||||
# define PURE 328
|
||||
# define IMPURE 329
|
||||
# define PRELOAD 330
|
||||
# define LOADONCALL 331
|
||||
# define DISCARDABLE 332
|
||||
# define NOT 333
|
||||
# define QUOTEDSTRING 334
|
||||
# define STRING 335
|
||||
# define NUMBER 336
|
||||
# define SIZEDSTRING 337
|
||||
# define IGNORED_TOKEN 338
|
||||
# define NEG 339
|
||||
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
#endif /* not BISON_Y_TAB_H */
|
||||
|
17
contrib/binutils/config.guess
vendored
17
contrib/binutils/config.guess
vendored
@ -3,7 +3,7 @@
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2002-01-30'
|
||||
timestamp='2002-02-19'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -340,7 +340,7 @@ EOF
|
||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sun*:*:4.2BSD:*)
|
||||
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
|
||||
case "`/bin/arch`" in
|
||||
sun3)
|
||||
@ -509,7 +509,7 @@ EOF
|
||||
fi
|
||||
exit 0 ;;
|
||||
*:AIX:*:[45])
|
||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
|
||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||
IBM_ARCH=rs6000
|
||||
else
|
||||
@ -683,9 +683,6 @@ EOF
|
||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||
echo c4-convex-bsd
|
||||
exit 0 ;;
|
||||
CRAY*X-MP:*:*:*)
|
||||
echo xmp-cray-unicos
|
||||
exit 0 ;;
|
||||
CRAY*Y-MP:*:*:*)
|
||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
@ -707,9 +704,6 @@ EOF
|
||||
CRAY*SV1:*:*:*)
|
||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
CRAY-2:*:*:*)
|
||||
echo cray2-cray-unicos
|
||||
exit 0 ;;
|
||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
@ -837,9 +831,8 @@ EOF
|
||||
# The BFD linker knows what the default object file format is, so
|
||||
# first see if it will tell us. cd to the root directory to prevent
|
||||
# problems with other programs or directories called `ld' in the path.
|
||||
# Export LANG=C to prevent ld from outputting information in other
|
||||
# languages.
|
||||
ld_supported_targets=`LANG=C; export LANG; cd /; ld --help 2>&1 \
|
||||
# Set LC_ALL=C to ensure ld outputs messages in English.
|
||||
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
||||
| sed -ne '/supported targets:/!d
|
||||
s/[ ][ ]*/ /g
|
||||
s/.*supported targets: *//
|
||||
|
73
contrib/binutils/config.sub
vendored
73
contrib/binutils/config.sub
vendored
@ -3,7 +3,7 @@
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2002-02-01'
|
||||
timestamp='2002-02-22'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -118,7 +118,7 @@ esac
|
||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
|
||||
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
@ -235,7 +235,7 @@ case $basic_machine in
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| m32r | m68000 | m68k | m88k | mcore \
|
||||
| mips16 | mips64 | mips64el | mips64orion | mips64orionel \
|
||||
| mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
|
||||
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
|
||||
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
|
||||
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
|
||||
@ -285,7 +285,7 @@ case $basic_machine in
|
||||
| avr-* \
|
||||
| bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c54x-* \
|
||||
| clipper-* | cray2-* | cydra-* \
|
||||
| clipper-* | cydra-* \
|
||||
| d10v-* | d30v-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fr30-* | fx80-* \
|
||||
@ -293,7 +293,7 @@ case $basic_machine in
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| m32r-* \
|
||||
| m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | mcore-* \
|
||||
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
|
||||
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
|
||||
@ -307,11 +307,11 @@ case $basic_machine in
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
|
||||
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
|
||||
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* \
|
||||
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
||||
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
||||
| v850-* | v850e-* | vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
|
||||
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
|
||||
| xtensa-* \
|
||||
| ymp-* \
|
||||
| z8k-*)
|
||||
@ -377,6 +377,10 @@ case $basic_machine in
|
||||
basic_machine=ns32k-sequent
|
||||
os=-dynix
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
convex-c1)
|
||||
basic_machine=c1-convex
|
||||
os=-bsd
|
||||
@ -397,16 +401,8 @@ case $basic_machine in
|
||||
basic_machine=c38-convex
|
||||
os=-bsd
|
||||
;;
|
||||
cray | ymp)
|
||||
basic_machine=ymp-cray
|
||||
os=-unicos
|
||||
;;
|
||||
cray2)
|
||||
basic_machine=cray2-cray
|
||||
os=-unicos
|
||||
;;
|
||||
[cjt]90)
|
||||
basic_machine=${basic_machine}-cray
|
||||
cray | j90)
|
||||
basic_machine=j90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
crds | unos)
|
||||
@ -609,14 +605,6 @@ case $basic_machine in
|
||||
basic_machine=m68k-atari
|
||||
os=-mint
|
||||
;;
|
||||
mipsel*-linux*)
|
||||
basic_machine=mipsel-unknown
|
||||
os=-linux-gnu
|
||||
;;
|
||||
mips*-linux*)
|
||||
basic_machine=mips-unknown
|
||||
os=-linux-gnu
|
||||
;;
|
||||
mips3*-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
||||
;;
|
||||
@ -878,7 +866,7 @@ case $basic_machine in
|
||||
sun386 | sun386i | roadrunner)
|
||||
basic_machine=i386-sun
|
||||
;;
|
||||
sv1)
|
||||
sv1)
|
||||
basic_machine=sv1-cray
|
||||
os=-unicos
|
||||
;;
|
||||
@ -886,8 +874,16 @@ case $basic_machine in
|
||||
basic_machine=i386-sequent
|
||||
os=-dynix
|
||||
;;
|
||||
t3d)
|
||||
basic_machine=alpha-cray
|
||||
os=-unicos
|
||||
;;
|
||||
t3e)
|
||||
basic_machine=t3e-cray
|
||||
basic_machine=alphaev5-cray
|
||||
os=-unicos
|
||||
;;
|
||||
t90)
|
||||
basic_machine=t90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
tic54x | c54x*)
|
||||
@ -954,13 +950,13 @@ case $basic_machine in
|
||||
basic_machine=i386-pc
|
||||
os=-windows32-msvcrt
|
||||
;;
|
||||
xmp)
|
||||
basic_machine=xmp-cray
|
||||
os=-unicos
|
||||
;;
|
||||
xps | xps100)
|
||||
basic_machine=xps100-honeywell
|
||||
;;
|
||||
ymp)
|
||||
basic_machine=ymp-cray
|
||||
os=-unicos
|
||||
;;
|
||||
z8k-*-coff)
|
||||
basic_machine=z8k-unknown
|
||||
os=-sim
|
||||
@ -981,13 +977,6 @@ case $basic_machine in
|
||||
op60c)
|
||||
basic_machine=hppa1.1-oki
|
||||
;;
|
||||
mips)
|
||||
if [ x$os = x-linux-gnu ]; then
|
||||
basic_machine=mips-unknown
|
||||
else
|
||||
basic_machine=mips-mips
|
||||
fi
|
||||
;;
|
||||
romp)
|
||||
basic_machine=romp-ibm
|
||||
;;
|
||||
@ -1100,7 +1089,8 @@ case $os in
|
||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* | -morphos*)
|
||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
@ -1161,6 +1151,9 @@ case $os in
|
||||
-ctix* | -uts*)
|
||||
os=-sysv
|
||||
;;
|
||||
-nova*)
|
||||
os=-rtmk-nova
|
||||
;;
|
||||
-ns2 )
|
||||
os=-nextstep2
|
||||
;;
|
||||
|
@ -1,3 +1,83 @@
|
||||
2002-03-19 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* config/tc-mips.c (md_estimate_size_before_relax): Do not modify
|
||||
the EXTENDED bit here; report the estimate according to the
|
||||
current size.
|
||||
|
||||
2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* config/tc-mmix.c (md_estimate_size_before_relax): Don't consider
|
||||
a weak symbol in same section to be within reach.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* doc/as.texinfo: Wrap @menu in @ifnottex, not @ifinfo.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* NEWS: Mark version 2.12.
|
||||
|
||||
2002-02-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/tc-alpha.c (s_alpha_text): Use obj_elf_text for OBJ_ELF, not
|
||||
s_text.
|
||||
(s_alpha_data): Use obj_elf_data for OBJ_ELF, not s_data.
|
||||
|
||||
2002-02-26 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* config/tc-mips.c (mips_need_elf_addend_fixup): For embedded-PIC
|
||||
only, undo the changes made on 2001-06-08, with the
|
||||
effect being that common or extern symbols are
|
||||
adjusted for embedded-PIC, but weak symbols are not.
|
||||
(md_estimate_size_before_relax: Likewise, with the effect
|
||||
that extern symbols are treated the same as weak symbols
|
||||
only if not embedded-PIC.
|
||||
(mips_fix_adjustable) Likewise, with the effect that
|
||||
weak or extern symbols are not adjusted for embedded-PIC.
|
||||
(md_apply_fix3): Tweak so that the case where value is zero
|
||||
is handled more correctly for embedded-PIC code.
|
||||
|
||||
2002-02-26 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* configure.in (LINGUAS): Add es.po.
|
||||
* configure: Regenerate.
|
||||
* po/es.po: New file.
|
||||
|
||||
2002-02-25 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config/tc-mips.c (set_at): Fix handling of 64bit register loads.
|
||||
(macro): Likewise. Fix la/dla address expansions for EMBEDDED_PIC
|
||||
and NO_PIC cases. Code cleanup.
|
||||
(macro2): Fix handling of 64bit register loads.
|
||||
|
||||
2002-02-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* doc/c-ppc.texi (PowerPC-Opts): Add -mpower4, -maltivec and -m7400.
|
||||
Remove references to chip manufacturers.
|
||||
* config/tc-ppc.c (md_parse_option): Handle -mpower4 option.
|
||||
Correct comments.
|
||||
(md_show_usage): Remove references to chip manufacturers. Mention
|
||||
-mpower4.
|
||||
(md_begin): Test power4 opcode flag bits.
|
||||
|
||||
2002-02-22 David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* config/tc-ia64.c (dot_restore): Issue error message of epilogue
|
||||
count exceeds prologue count.
|
||||
(md_show_usage): Describe -mconstant-gp and -mauto-pic.
|
||||
(unwind.label_prologue_count): New member.
|
||||
|
||||
Based on a patch by Hans Boehm <hboehm@hpl.hp.com>:
|
||||
|
||||
(get_saved_prologue_count): New function.
|
||||
(save_prologue_count): New function.
|
||||
(free_saved_prologue_count): New function.
|
||||
(dot_label_state): Record state label by calling save_prologue_count().
|
||||
(dot_copy_state): Restore prologue count by calling
|
||||
get_saved_prologue_count().
|
||||
(generate_unwind_image): Free up list of saved prologue
|
||||
counts by calling free_saved_prologue_counts().
|
||||
|
||||
2002-02-21 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* config/tc-mips.c (md_parse_option): Complain about invalid -mabi
|
||||
|
@ -1,4 +1,7 @@
|
||||
-*- text -*-
|
||||
|
||||
Changes in 2.12:
|
||||
|
||||
Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
|
||||
|
||||
Support for the OpenRISC 32-bit embedded processor by OpenCores.
|
||||
|
@ -4031,7 +4031,11 @@ s_alpha_text (i)
|
||||
int i;
|
||||
|
||||
{
|
||||
#ifdef OBJ_ELF
|
||||
obj_elf_text (i);
|
||||
#else
|
||||
s_text (i);
|
||||
#endif
|
||||
alpha_insn_label = NULL;
|
||||
alpha_auto_align_on = 1;
|
||||
alpha_current_align = 0;
|
||||
@ -4044,7 +4048,11 @@ static void
|
||||
s_alpha_data (i)
|
||||
int i;
|
||||
{
|
||||
#ifdef OBJ_ELF
|
||||
obj_elf_data (i);
|
||||
#else
|
||||
s_data (i);
|
||||
#endif
|
||||
alpha_insn_label = NULL;
|
||||
alpha_auto_align_on = 1;
|
||||
alpha_current_align = 0;
|
||||
|
@ -623,6 +623,15 @@ typedef struct unw_rec_list {
|
||||
|
||||
#define SLOT_NUM_NOT_SET (unsigned)-1
|
||||
|
||||
/* Linked list of saved prologue counts. A very poor
|
||||
implementation of a map from label numbers to prologue counts. */
|
||||
typedef struct label_prologue_count
|
||||
{
|
||||
struct label_prologue_count *next;
|
||||
unsigned long label_number;
|
||||
unsigned int prologue_count;
|
||||
} label_prologue_count;
|
||||
|
||||
static struct
|
||||
{
|
||||
unsigned long next_slot_number;
|
||||
@ -649,6 +658,8 @@ static struct
|
||||
int prologue;
|
||||
int prologue_mask;
|
||||
unsigned int prologue_count; /* number of .prologues seen so far */
|
||||
/* Prologue counts at previous .label_state directives. */
|
||||
struct label_prologue_count * saved_prologue_counts;
|
||||
} unwind;
|
||||
|
||||
typedef void (*vbyte_func) PARAMS ((int, char *, char *));
|
||||
@ -862,6 +873,9 @@ static int output_unw_records PARAMS ((unw_rec_list *, void **));
|
||||
static int convert_expr_to_ab_reg PARAMS ((expressionS *, unsigned int *, unsigned int *));
|
||||
static int convert_expr_to_xy_reg PARAMS ((expressionS *, unsigned int *, unsigned int *));
|
||||
static int generate_unwind_image PARAMS ((const char *));
|
||||
static unsigned int get_saved_prologue_count PARAMS ((unsigned long));
|
||||
static void save_prologue_count PARAMS ((unsigned long, unsigned int));
|
||||
static void free_saved_prologue_counts PARAMS ((void));
|
||||
|
||||
/* Build the unwind section name by appending the (possibly stripped)
|
||||
text section NAME to the unwind PREFIX. The resulting string
|
||||
@ -3156,6 +3170,14 @@ dot_restore (dummy)
|
||||
}
|
||||
else
|
||||
ecount = unwind.prologue_count - 1;
|
||||
|
||||
if (ecount >= unwind.prologue_count)
|
||||
{
|
||||
as_bad ("Epilogue count of %lu exceeds number of nested prologues (%u)",
|
||||
ecount + 1, unwind.prologue_count);
|
||||
return;
|
||||
}
|
||||
|
||||
add_unwind_entry (output_epilogue (ecount));
|
||||
|
||||
if (ecount < unwind.prologue_count)
|
||||
@ -3288,6 +3310,7 @@ generate_unwind_image (text_name)
|
||||
}
|
||||
|
||||
free_list_records (unwind.list);
|
||||
free_saved_prologue_counts ();
|
||||
unwind.list = unwind.tail = unwind.current_entry = NULL;
|
||||
|
||||
return size;
|
||||
@ -3714,6 +3737,61 @@ dot_spillmem_p (psprel)
|
||||
add_unwind_entry (output_spill_sprel_p (ab, reg, e3.X_add_number, qp));
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
get_saved_prologue_count (lbl)
|
||||
unsigned long lbl;
|
||||
{
|
||||
label_prologue_count *lpc = unwind.saved_prologue_counts;
|
||||
|
||||
while (lpc != NULL && lpc->label_number != lbl)
|
||||
lpc = lpc->next;
|
||||
|
||||
if (lpc != NULL)
|
||||
return lpc->prologue_count;
|
||||
|
||||
as_bad ("Missing .label_state %ld", lbl);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
save_prologue_count (lbl, count)
|
||||
unsigned long lbl;
|
||||
unsigned int count;
|
||||
{
|
||||
label_prologue_count *lpc = unwind.saved_prologue_counts;
|
||||
|
||||
while (lpc != NULL && lpc->label_number != lbl)
|
||||
lpc = lpc->next;
|
||||
|
||||
if (lpc != NULL)
|
||||
lpc->prologue_count = count;
|
||||
else
|
||||
{
|
||||
label_prologue_count * new_lpc = xmalloc (sizeof (* new_lpc));
|
||||
|
||||
new_lpc->next = unwind.saved_prologue_counts;
|
||||
new_lpc->label_number = lbl;
|
||||
new_lpc->prologue_count = count;
|
||||
unwind.saved_prologue_counts = new_lpc;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
free_saved_prologue_counts ()
|
||||
{
|
||||
label_prologue_count * lpc = unwind.saved_prologue_counts;
|
||||
label_prologue_count * next;
|
||||
|
||||
while (lpc != NULL)
|
||||
{
|
||||
next = lpc->next;
|
||||
free (lpc);
|
||||
lpc = next;
|
||||
}
|
||||
|
||||
unwind.saved_prologue_counts = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
dot_label_state (dummy)
|
||||
int dummy ATTRIBUTE_UNUSED;
|
||||
@ -3727,6 +3805,7 @@ dot_label_state (dummy)
|
||||
return;
|
||||
}
|
||||
add_unwind_entry (output_label_state (e.X_add_number));
|
||||
save_prologue_count (e.X_add_number, unwind.prologue_count);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -3742,6 +3821,7 @@ dot_copy_state (dummy)
|
||||
return;
|
||||
}
|
||||
add_unwind_entry (output_copy_state (e.X_add_number));
|
||||
unwind.prologue_count = get_saved_prologue_count (e.X_add_number);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -6336,6 +6416,11 @@ md_show_usage (stream)
|
||||
{
|
||||
fputs (_("\
|
||||
IA-64 options:\n\
|
||||
--mconstant-gp mark output file as using the constant-GP model\n\
|
||||
(sets ELF header flag EF_IA_64_CONS_GP)\n\
|
||||
--mauto-pic mark output file as using the constant-GP model\n\
|
||||
without function descriptors (sets ELF header flag\n\
|
||||
EF_IA_64_NOFUNCDESC_CONS_GP)\n\
|
||||
-milp32|-milp64|-mlp64|-mp64 select data model (default -mlp64)\n\
|
||||
-mle | -mbe select little- or big-endian byte order (default -mle)\n\
|
||||
-x | -xexplicit turn on dependency violation checking (default)\n\
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* tc-ppc.c -- Assemble for the PowerPC or POWER (RS/6000)
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support.
|
||||
|
||||
@ -876,18 +876,18 @@ md_parse_option (c, arg)
|
||||
/* -mpwr means to assemble for the IBM POWER (RIOS1). */
|
||||
else if (strcmp (arg, "pwr") == 0)
|
||||
ppc_cpu = PPC_OPCODE_POWER;
|
||||
/* -m601 means to assemble for the Motorola PowerPC 601, which includes
|
||||
/* -m601 means to assemble for the PowerPC 601, which includes
|
||||
instructions that are holdovers from the Power. */
|
||||
else if (strcmp (arg, "601") == 0)
|
||||
ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_601;
|
||||
/* -mppc, -mppc32, -m603, and -m604 mean to assemble for the
|
||||
Motorola PowerPC 603/604. */
|
||||
PowerPC 603/604. */
|
||||
else if (strcmp (arg, "ppc") == 0
|
||||
|| strcmp (arg, "ppc32") == 0
|
||||
|| strcmp (arg, "603") == 0
|
||||
|| strcmp (arg, "604") == 0)
|
||||
ppc_cpu = PPC_OPCODE_PPC;
|
||||
/* -m403 and -m405 mean to assemble for the Motorola PowerPC 403/405. */
|
||||
/* -m403 and -m405 mean to assemble for the PowerPC 403/405. */
|
||||
else if (strcmp (arg, "403") == 0
|
||||
|| strcmp (arg, "405") == 0)
|
||||
ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_403;
|
||||
@ -925,6 +925,11 @@ md_parse_option (c, arg)
|
||||
PPC_OPCODE_BOOKE64 | PPC_OPCODE_64;
|
||||
ppc_size = PPC_OPCODE_64;
|
||||
}
|
||||
else if (strcmp (arg, "power4") == 0)
|
||||
{
|
||||
ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_64 | PPC_OPCODE_POWER4;
|
||||
ppc_size = PPC_OPCODE_64;
|
||||
}
|
||||
/* -mcom means assemble for the common intersection between Power
|
||||
and PowerPC. At present, we just allow the union, rather
|
||||
than the intersection. */
|
||||
@ -1027,18 +1032,19 @@ md_show_usage (stream)
|
||||
fprintf (stream, _("\
|
||||
PowerPC options:\n\
|
||||
-u ignored\n\
|
||||
-mpwrx, -mpwr2 generate code for IBM POWER/2 (RIOS2)\n\
|
||||
-mpwr generate code for IBM POWER (RIOS1)\n\
|
||||
-m601 generate code for Motorola PowerPC 601\n\
|
||||
-mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n\
|
||||
-mpwr generate code for POWER (RIOS1)\n\
|
||||
-m601 generate code for PowerPC 601\n\
|
||||
-mppc, -mppc32, -m603, -m604\n\
|
||||
generate code for Motorola PowerPC 603/604\n\
|
||||
-m403, -m405 generate code for Motorola PowerPC 403/405\n\
|
||||
generate code for PowerPC 603/604\n\
|
||||
-m403, -m405 generate code for PowerPC 403/405\n\
|
||||
-m7400, -m7410, -m7450, -m7455\n\
|
||||
generate code For Motorola PowerPC 7400/7410/7450/7455\n\
|
||||
-mppc64, -m620 generate code for Motorola PowerPC 620\n\
|
||||
generate code For PowerPC 7400/7410/7450/7455\n\
|
||||
-mppc64, -m620 generate code for PowerPC 620/625/630\n\
|
||||
-mppc64bridge generate code for PowerPC 64, including bridge insns\n\
|
||||
-mbooke64 generate code for 64-bit PowerPC BookE\n\
|
||||
-mbooke, mbooke32 generate code for 32-bit PowerPC BookE\n\
|
||||
-mpower4 generate code for Power4 architecture\n\
|
||||
-maltivec generate code for AltiVec\n\
|
||||
-mcom generate code Power/PowerPC common instructions\n\
|
||||
-many generate code for any architecture (PWR/PWRX/PPC)\n\
|
||||
@ -1175,7 +1181,10 @@ md_begin ()
|
||||
if ((op->flags & ppc_cpu) != 0
|
||||
&& ((op->flags & (PPC_OPCODE_32 | PPC_OPCODE_64)) == 0
|
||||
|| (op->flags & (PPC_OPCODE_32 | PPC_OPCODE_64)) == ppc_size
|
||||
|| (ppc_cpu & PPC_OPCODE_64_BRIDGE) != 0))
|
||||
|| (ppc_cpu & PPC_OPCODE_64_BRIDGE) != 0)
|
||||
&& ((op->flags & (PPC_OPCODE_POWER4 | PPC_OPCODE_NOPOWER4)) == 0
|
||||
|| ((op->flags & PPC_OPCODE_POWER4)
|
||||
== (ppc_cpu & PPC_OPCODE_POWER4))))
|
||||
{
|
||||
const char *retval;
|
||||
|
||||
@ -5165,7 +5174,7 @@ md_apply_fix3 (fixP, valP, seg)
|
||||
if ((operand->flags & PPC_OPERAND_PARENS) != 0
|
||||
&& operand->bits == 16
|
||||
&& operand->shift == 0
|
||||
&& (operand->insert == NULL || ppc_xcoff64)
|
||||
&& (operand->insert == NULL || ppc_xcoff64)
|
||||
&& fixP->fx_addsy != NULL
|
||||
&& symbol_get_tc (fixP->fx_addsy)->subseg != 0
|
||||
&& symbol_get_tc (fixP->fx_addsy)->class != XMC_TC
|
||||
|
490
contrib/binutils/gas/configure
vendored
490
contrib/binutils/gas/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -877,7 +877,7 @@ AC_PROG_CC
|
||||
AC_PROG_YACC
|
||||
AM_PROG_LEX
|
||||
|
||||
ALL_LINGUAS="fr tr"
|
||||
ALL_LINGUAS="fr tr es"
|
||||
CY_GNU_GETTEXT
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -194,7 +194,7 @@ Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Fr
|
||||
|
||||
@end titlepage
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@node Top
|
||||
@top Using @value{AS}
|
||||
|
||||
@ -223,7 +223,7 @@ section entitled "GNU Free Documentation License".
|
||||
* GNU Free Documentation License:: GNU Free Documentation License
|
||||
* Index:: Index
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Overview
|
||||
@chapter Overview
|
||||
|
@ -1,4 +1,4 @@
|
||||
@c Copyright 2001
|
||||
@c Copyright 2001, 2002
|
||||
@c Free Software Foundation, Inc.
|
||||
@c This is part of the GAS manual.
|
||||
@c For copying conditions, see the file as.texinfo.
|
||||
@ -34,31 +34,40 @@ The following table lists all available PowerPC options.
|
||||
|
||||
@table @code
|
||||
@item -mpwrx | -mpwr2
|
||||
Generate code for IBM POWER/2 (RIOS2).
|
||||
Generate code for POWER/2 (RIOS2).
|
||||
|
||||
@item -mpwr
|
||||
Generate code for IBM POWER (RIOS1)
|
||||
Generate code for POWER (RIOS1)
|
||||
|
||||
@item -m601
|
||||
Generate code for Motorola PowerPC 601.
|
||||
Generate code for PowerPC 601.
|
||||
|
||||
@item -mppc, -mppc32, -m603, -m604
|
||||
Generate code for Motorola PowerPC 603/604.
|
||||
Generate code for PowerPC 603/604.
|
||||
|
||||
@item -m403, -m405
|
||||
Generate code for Motorola PowerPC 403/405.
|
||||
Generate code for PowerPC 403/405.
|
||||
|
||||
@item -m7400, -m7410, -m7450, -m7455
|
||||
Generate code for PowerPC 7400/7410/7450/7455.
|
||||
|
||||
@item -mppc64, -m620
|
||||
Generate code for Motorola PowerPC 620.
|
||||
Generate code for PowerPC 620/625/630.
|
||||
|
||||
@item -mppc64bridge
|
||||
Generate code for PowerPC 64, including bridge insns.
|
||||
|
||||
@item -mbooke64
|
||||
Generate code for 64-bit Motorola BookE.
|
||||
Generate code for 64-bit BookE.
|
||||
|
||||
@item -mbooke, mbooke32
|
||||
Generate code for 32-bit Motorola BookE.
|
||||
Generate code for 32-bit BookE.
|
||||
|
||||
@item -maltivec
|
||||
Generate code for processors with AltiVec instructions.
|
||||
|
||||
@item -mpower4
|
||||
Generate code for Power4 architecture.
|
||||
|
||||
@item -mcom
|
||||
Generate code Power/PowerPC common instructions.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2002-02-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ppc.h (PPC_OPCODE_POWER4, PPC_OPCODE_NOPOWER4): Define.
|
||||
|
||||
Mon Feb 18 17:26:10 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.h (push,pop): Fix Reg64 to WordReg to allow 16bit operands.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* ppc.h -- Header file for PowerPC opcode table
|
||||
Copyright 1994, 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright 1994, 1995, 1999, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
@ -100,6 +101,12 @@ extern const int powerpc_num_opcodes;
|
||||
/* Opcode is only supported by 64-bit PowerPC BookE processor. */
|
||||
#define PPC_OPCODE_BOOKE64 (010000)
|
||||
|
||||
/* Opcode is only supported by Power4 architecture. */
|
||||
#define PPC_OPCODE_POWER4 (020000)
|
||||
|
||||
/* Opcode isn't supported by Power4 architecture. */
|
||||
#define PPC_OPCODE_NOPOWER4 (040000)
|
||||
|
||||
/* A macro to extract the major opcode from an instruction. */
|
||||
#define PPC_OP(i) (((i) >> 26) & 0x3f)
|
||||
|
||||
|
@ -1,3 +1,28 @@
|
||||
2002-03-18 David O'Brien <obrien@FreeBSD.org>
|
||||
|
||||
* emultempl/elf32.em: Use lbasename vs. basename to fix problem where
|
||||
the contents of the buffer returned from basename function will are
|
||||
getting overwritten while still being used.
|
||||
|
||||
Mon Mar 18 18:07:20 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
Andreas Jaeger <aj@suse.de>
|
||||
Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* cpu-i386.c (bfd_x86_64_arch): Rename to "i386:x86-64"
|
||||
|
||||
* configure.tgt (x86_64-*-linux-gnu*): Configure i386 as native.
|
||||
|
||||
* elf_x86_64.sh (ARCH): Set to i386:x86-64
|
||||
set libraries to default to lib64 paths.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* ld.texinfo: Wrap @menu in @ifnottex, not @ifinfo.
|
||||
|
||||
2002-03-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* NEWS: Mark version 2.12.
|
||||
|
||||
2002-02-20 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't fold
|
||||
|
@ -1,4 +1,7 @@
|
||||
-*- text -*-
|
||||
|
||||
Changes in 2.12:
|
||||
|
||||
* Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
|
||||
|
||||
* Support for the OpenRISC 32-bit embedded processor by OpenCores.
|
||||
@ -13,6 +16,8 @@
|
||||
|
||||
* Support for ELF SHF_MERGE section merging, by Jakub Jelinek.
|
||||
|
||||
Changes in 2.11:
|
||||
|
||||
* Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs.
|
||||
|
||||
* Support added for eliminating duplicate DWARF2 debug information by
|
||||
|
@ -145,7 +145,9 @@ i[3456]86-*-linux-gnu*) targ_emul=elf_i386
|
||||
;;
|
||||
x86_64-*-linux-gnu*) targ_emul=elf_x86_64
|
||||
targ_extra_emuls="elf_i386 i386linux"
|
||||
tdir_i386linux=${targ_alias}aout
|
||||
targ_extra_libpath=elf_i386
|
||||
tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
|
||||
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
|
||||
;;
|
||||
i[3456]86-*-sysv[45]*) targ_emul=elf_i386 ;;
|
||||
i[3456]86-*-solaris2*) targ_emul=elf_i386_ldso
|
||||
|
@ -4,9 +4,40 @@ OUTPUT_FORMAT="elf64-x86-64"
|
||||
TEXT_START_ADDR=0x400000
|
||||
MAXPAGESIZE=0x100000
|
||||
NONPAGED_TEXT_START_ADDR=0x400000
|
||||
ARCH=i386
|
||||
ARCH="i386:x86-64"
|
||||
MACHINE=
|
||||
NOP=0x90909090
|
||||
TEMPLATE_NAME=elf32
|
||||
GENERATE_SHLIB_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
|
||||
if [ "x${host}" = "x${target}" ]; then
|
||||
case " $EMULATION_LIBPATH " in
|
||||
*" ${EMULATION_NAME} "*)
|
||||
# Native, and default or emulation requesting LIB_PATH.
|
||||
|
||||
# Linux modify the default library search path to first include
|
||||
# a 64-bit specific directory.
|
||||
case "$target" in
|
||||
x86_64*-linux*)
|
||||
suffix=64 ;;
|
||||
esac
|
||||
|
||||
if [ -n "${suffix}" ]; then
|
||||
|
||||
LIB_PATH=/lib${suffix}:/lib
|
||||
LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib
|
||||
if [ -n "${NATIVE_LIB_DIRS}" ]; then
|
||||
LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s_:_${suffix}:_g`${suffix}:${NATIVE_LIB_DIRS}
|
||||
fi
|
||||
if [ "${libdir}" != /usr/lib ]; then
|
||||
LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir}
|
||||
fi
|
||||
if [ "${libdir}" != /usr/local/lib ]; then
|
||||
LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib
|
||||
fi
|
||||
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
@ -165,7 +165,7 @@ gld${EMULATION_NAME}_vercheck (s)
|
||||
|
||||
soname = bfd_elf_get_dt_soname (s->the_bfd);
|
||||
if (soname == NULL)
|
||||
soname = basename (bfd_get_filename (s->the_bfd));
|
||||
soname = lbasename (bfd_get_filename (s->the_bfd));
|
||||
|
||||
for (l = global_vercheck_needed; l != NULL; l = l->next)
|
||||
{
|
||||
@ -247,7 +247,7 @@ gld${EMULATION_NAME}_stat_needed (s)
|
||||
|
||||
soname = bfd_elf_get_dt_soname (s->the_bfd);
|
||||
if (soname == NULL)
|
||||
soname = basename (s->filename);
|
||||
soname = lbasename (s->filename);
|
||||
|
||||
if (strncmp (soname, global_needed->name, suffix - global_needed->name) == 0)
|
||||
einfo ("%P: warning: %s, needed by %B, may conflict with %s\n",
|
||||
@ -351,7 +351,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
|
||||
einfo ("%F%P:%B: bfd_stat failed: %E\n", abfd);
|
||||
|
||||
/* First strip off everything before the last '/'. */
|
||||
soname = basename (abfd->filename);
|
||||
soname = lbasename (abfd->filename);
|
||||
|
||||
if (trace_file_tries)
|
||||
info_msg (_("found %s at %s\n"), soname, name);
|
||||
@ -369,9 +369,6 @@ cat >>e${EMULATION_NAME}.c <<EOF
|
||||
DT_NEEDED entry for this file. */
|
||||
bfd_elf_set_dt_needed_name (abfd, "");
|
||||
|
||||
/* Previos basename call was clobbered in lang_for_each_input_file. */
|
||||
soname = basename (abfd->filename);
|
||||
|
||||
/* Tell the ELF backend that the output file needs a DT_NEEDED
|
||||
entry for this file if it is used to resolve the reference in
|
||||
a regular object. */
|
||||
@ -976,7 +973,7 @@ gld${EMULATION_NAME}_open_dynamic_archive (arch, search, entry)
|
||||
/* Rather than duplicating the logic above. Just use the
|
||||
filename we recorded earlier. */
|
||||
|
||||
filename = xstrdup (basename (entry->filename));
|
||||
filename = lbasename (entry->filename);
|
||||
bfd_elf_set_dt_needed_name (entry->the_bfd, filename);
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -116,7 +116,7 @@ section entitled "GNU Free Documentation License".
|
||||
@end iftex
|
||||
@c FIXME: Talk about importance of *order* of args, cmds to linker!
|
||||
|
||||
@ifinfo
|
||||
@ifnottex
|
||||
@node Top
|
||||
@top Using ld
|
||||
This file documents the @sc{gnu} linker ld version @value{VERSION}.
|
||||
@ -156,7 +156,7 @@ section entitled "GNU Free Documentation License".
|
||||
* GNU Free Documentation License:: GNU Free Documentation License
|
||||
* Index:: Index
|
||||
@end menu
|
||||
@end ifinfo
|
||||
@end ifnottex
|
||||
|
||||
@node Overview
|
||||
@chapter Overview
|
||||
|
@ -1,3 +1,36 @@
|
||||
2002-02-26 Nick Clifton <nickc@cambridge.redhat.com>
|
||||
|
||||
* configure.in (LINGUAS): Add de.po.
|
||||
* configure: Regenerate.
|
||||
* po/de.po: New file.
|
||||
|
||||
Mon Feb 25 18:40:33 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386-dis.c (prefix_name): Fix handling of 32bit address prefix
|
||||
in 64bit mode.
|
||||
(print_insn) Likewise.
|
||||
(putop): Fix handling of 'E'
|
||||
(OP_E, OP_OFF): handle 32bit addressing mode in 64bit.
|
||||
(ptr_reg): Likewise.
|
||||
|
||||
2002-02-25 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ppc-dis.c (powerpc_dialect): Handle power4 option.
|
||||
* ppc-opc.c (insert_bdm): Correct description of "at" branch
|
||||
hints. Test PPC_OPCODE_POWER4 to determine branch hint flavour.
|
||||
(extract_bdm, insert_bdp, extract_bdp, valid_bo): Likewise.
|
||||
(BOFM64, BOFP64, BOTM64, BOFP64): Rename to BOFM4, BOFP4 etc.
|
||||
(BODNZM64, BODNZP64, BODZM64, BODZP64): Likewise.
|
||||
(PPCCOM32, PPCCOM64): Delete.
|
||||
(NOPOWER4, POWER4): Define.
|
||||
(powerpc_opcodes): Replace occurences of PPCCOM32 with NOPOWER4,
|
||||
and PPCCOM4 with POWER4 so that "at" style branch hint opcodes
|
||||
are enabled for power4 rather than ppc64.
|
||||
|
||||
Merge from mainline 2002-02-19 matthew green <mrg@redhat.com>
|
||||
* ppc-opc.c (powerpc_dialect): Fix comment; BookE is not Motorola
|
||||
specific.
|
||||
|
||||
2002-02-15 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* alpha-opc.c (alpha_opcodes): Fix thinko in ret pseudo
|
||||
|
376
contrib/binutils/opcodes/configure
vendored
376
contrib/binutils/opcodes/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -77,7 +77,7 @@ AC_EXEEXT
|
||||
|
||||
AC_PROG_CC
|
||||
|
||||
ALL_LINGUAS="fr sv tr es da"
|
||||
ALL_LINGUAS="fr sv tr es da de"
|
||||
CY_GNU_GETTEXT
|
||||
|
||||
. ${srcdir}/../bfd/configure.host
|
||||
|
@ -1807,7 +1807,10 @@ prefix_name (pref, sizeflag)
|
||||
case 0x66:
|
||||
return (sizeflag & DFLAG) ? "data16" : "data32";
|
||||
case 0x67:
|
||||
return (sizeflag & AFLAG) ? "addr16" : "addr32";
|
||||
if (mode_64bit)
|
||||
return (sizeflag & AFLAG) ? "addr32" : "addr64";
|
||||
else
|
||||
return ((sizeflag & AFLAG) && !mode_64bit) ? "addr16" : "addr32";
|
||||
case FWAIT_OPCODE:
|
||||
return "fwait";
|
||||
default:
|
||||
@ -2081,7 +2084,7 @@ print_insn (pc, info)
|
||||
sizeflag ^= AFLAG;
|
||||
if (dp->bytemode3 != loop_jcxz_mode || intel_syntax)
|
||||
{
|
||||
if (sizeflag & AFLAG)
|
||||
if ((sizeflag & AFLAG) || mode_64bit)
|
||||
oappend ("addr32 ");
|
||||
else
|
||||
oappend ("addr16 ");
|
||||
@ -2626,8 +2629,16 @@ putop (template, sizeflag)
|
||||
*obufp++ = 'b';
|
||||
break;
|
||||
case 'E': /* For jcxz/jecxz */
|
||||
if (sizeflag & AFLAG)
|
||||
*obufp++ = 'e';
|
||||
if (mode_64bit)
|
||||
{
|
||||
if (sizeflag & AFLAG)
|
||||
*obufp++ = 'r';
|
||||
else
|
||||
*obufp++ = 'e';
|
||||
}
|
||||
else
|
||||
if (sizeflag & AFLAG)
|
||||
*obufp++ = 'e';
|
||||
used_prefixes |= (prefixes & PREFIX_ADDR);
|
||||
break;
|
||||
case 'F':
|
||||
@ -2636,9 +2647,9 @@ putop (template, sizeflag)
|
||||
if ((prefixes & PREFIX_ADDR) || (sizeflag & SUFFIX_ALWAYS))
|
||||
{
|
||||
if (sizeflag & AFLAG)
|
||||
*obufp++ = 'l';
|
||||
*obufp++ = mode_64bit ? 'q' : 'l';
|
||||
else
|
||||
*obufp++ = 'w';
|
||||
*obufp++ = mode_64bit ? 'l' : 'w';
|
||||
used_prefixes |= (prefixes & PREFIX_ADDR);
|
||||
}
|
||||
break;
|
||||
@ -3014,7 +3025,7 @@ OP_E (bytemode, sizeflag)
|
||||
disp = 0;
|
||||
append_seg ();
|
||||
|
||||
if (sizeflag & AFLAG) /* 32 bit address mode */
|
||||
if ((sizeflag & AFLAG) || mode_64bit) /* 32 bit address mode */
|
||||
{
|
||||
int havesib;
|
||||
int havebase;
|
||||
@ -3048,7 +3059,7 @@ OP_E (bytemode, sizeflag)
|
||||
if ((base & 7) == 5)
|
||||
{
|
||||
havebase = 0;
|
||||
if (mode_64bit && !havesib)
|
||||
if (mode_64bit && !havesib && (sizeflag & AFLAG))
|
||||
riprel = 1;
|
||||
disp = get32s ();
|
||||
}
|
||||
@ -3115,7 +3126,8 @@ OP_E (bytemode, sizeflag)
|
||||
if (!havesib && (rex & REX_EXTZ))
|
||||
base += 8;
|
||||
if (havebase)
|
||||
oappend (mode_64bit ? names64[base] : names32[base]);
|
||||
oappend (mode_64bit && (sizeflag & AFLAG)
|
||||
? names64[base] : names32[base]);
|
||||
if (havesib)
|
||||
{
|
||||
if (index != 4)
|
||||
@ -3128,11 +3140,13 @@ OP_E (bytemode, sizeflag)
|
||||
*obufp = '\0';
|
||||
}
|
||||
sprintf (scratchbuf, "%s",
|
||||
mode_64bit ? names64[index] : names32[index]);
|
||||
mode_64bit && (sizeflag & AFLAG)
|
||||
? names64[index] : names32[index]);
|
||||
}
|
||||
else
|
||||
sprintf (scratchbuf, ",%s",
|
||||
mode_64bit ? names64[index] : names32[index]);
|
||||
mode_64bit && (sizeflag & AFLAG)
|
||||
? names64[index] : names32[index]);
|
||||
oappend (scratchbuf);
|
||||
}
|
||||
if (!intel_syntax
|
||||
@ -3703,7 +3717,7 @@ OP_OFF (bytemode, sizeflag)
|
||||
|
||||
append_seg ();
|
||||
|
||||
if (sizeflag & AFLAG)
|
||||
if ((sizeflag & AFLAG) || mode_64bit)
|
||||
off = get32 ();
|
||||
else
|
||||
off = get16 ();
|
||||
@ -3764,7 +3778,12 @@ ptr_reg (code, sizeflag)
|
||||
|
||||
USED_REX (REX_MODE64);
|
||||
if (rex & REX_MODE64)
|
||||
s = names64[code - eAX_reg];
|
||||
{
|
||||
if (!(sizeflag & AFLAG))
|
||||
s = names32[code - eAX_reg];
|
||||
else
|
||||
s = names64[code - eAX_reg];
|
||||
}
|
||||
else if (sizeflag & AFLAG)
|
||||
s = names32[code - eAX_reg];
|
||||
else
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ppc-dis.c -- Disassemble PowerPC instructions
|
||||
Copyright 1994, 1995, 2000 Free Software Foundation, Inc.
|
||||
Copyright 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
@ -35,8 +35,8 @@ static int print_insn_powerpc PARAMS ((bfd_vma, struct disassemble_info *,
|
||||
static int powerpc_dialect PARAMS ((struct disassemble_info *));
|
||||
|
||||
/* Determine which set of machines to disassemble for. PPC403/601 or
|
||||
Motorola BookE. For convenience, also disassemble instructions
|
||||
supported by the AltiVec vector unit. */
|
||||
BookE. For convenience, also disassemble instructions supported
|
||||
by the AltiVec vector unit. */
|
||||
|
||||
int
|
||||
powerpc_dialect(info)
|
||||
@ -55,6 +55,10 @@ powerpc_dialect(info)
|
||||
else
|
||||
dialect |= PPC_OPCODE_403 | PPC_OPCODE_601;
|
||||
|
||||
if (info->disassembler_options
|
||||
&& strcmp (info->disassembler_options, "power4") == 0)
|
||||
dialect |= PPC_OPCODE_POWER4;
|
||||
|
||||
if (info->disassembler_options)
|
||||
{
|
||||
if (strstr (info->disassembler_options, "32") != NULL)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ppc-opc.c -- PowerPC opcode list
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001
|
||||
Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Written by Ian Lance Taylor, Cygnus Support
|
||||
|
||||
@ -592,14 +592,16 @@ extract_bd (insn, dialect, invalid)
|
||||
|
||||
/* The BD field in a B form instruction when the - modifier is used.
|
||||
This modifier means that the branch is not expected to be taken.
|
||||
For 32 bit targets we set the y bit of the BO field to 1 if the
|
||||
offset is negative. When extracting, we require that the y bit be
|
||||
1 and that the offset be positive, since if the y bit is 0 we just
|
||||
want to print the normal form of the instruction.
|
||||
64 bit targets use two bits, "a", and "t", instead of the "y" bit.
|
||||
at == 10 => not taken, at == 11 => taken. The t bit is 00001 in
|
||||
BO field, the a bit is 00010 for branch on CR(BI) and 01000 for
|
||||
branch on CTR. */
|
||||
For chips built to versions of the architecture prior to version 2
|
||||
(ie. not Power4 compatible), we set the y bit of the BO field to 1
|
||||
if the offset is negative. When extracting, we require that the y
|
||||
bit be 1 and that the offset be positive, since if the y bit is 0
|
||||
we just want to print the normal form of the instruction.
|
||||
Power4 compatible targets use two bits, "a", and "t", instead of
|
||||
the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
|
||||
"at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
|
||||
in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
|
||||
for branch on CTR. We only handle the taken/not-taken hint here. */
|
||||
|
||||
/*ARGSUSED*/
|
||||
static unsigned long
|
||||
@ -609,7 +611,7 @@ insert_bdm (insn, value, dialect, errmsg)
|
||||
int dialect;
|
||||
const char **errmsg ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if ((dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_64)) != PPC_OPCODE_64)
|
||||
if ((dialect & PPC_OPCODE_POWER4) == 0)
|
||||
{
|
||||
if ((value & 0x8000) != 0)
|
||||
insn |= 1 << 21;
|
||||
@ -632,7 +634,7 @@ extract_bdm (insn, dialect, invalid)
|
||||
{
|
||||
if (invalid != (int *) NULL)
|
||||
{
|
||||
if ((dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_64)) != PPC_OPCODE_64)
|
||||
if ((dialect & PPC_OPCODE_POWER4) == 0)
|
||||
{
|
||||
if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
|
||||
*invalid = 1;
|
||||
@ -659,7 +661,7 @@ insert_bdp (insn, value, dialect, errmsg)
|
||||
int dialect;
|
||||
const char **errmsg ATTRIBUTE_UNUSED;
|
||||
{
|
||||
if ((dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_64)) != PPC_OPCODE_64)
|
||||
if ((dialect & PPC_OPCODE_POWER4) == 0)
|
||||
{
|
||||
if ((value & 0x8000) == 0)
|
||||
insn |= 1 << 21;
|
||||
@ -682,7 +684,7 @@ extract_bdp (insn, dialect, invalid)
|
||||
{
|
||||
if (invalid != (int *) NULL)
|
||||
{
|
||||
if ((dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_64)) != PPC_OPCODE_64)
|
||||
if ((dialect & PPC_OPCODE_POWER4) == 0)
|
||||
{
|
||||
if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
|
||||
*invalid = 1;
|
||||
@ -704,7 +706,7 @@ valid_bo (value, dialect)
|
||||
long value;
|
||||
int dialect;
|
||||
{
|
||||
if ((dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_64)) != PPC_OPCODE_64)
|
||||
if ((dialect & PPC_OPCODE_POWER4) == 0)
|
||||
{
|
||||
/* Certain encodings have bits that are required to be zero.
|
||||
These are (z must be zero, y may be anything):
|
||||
@ -1298,7 +1300,7 @@ extract_tbr (insn, dialect, invalid)
|
||||
|
||||
/* A BBO_MASK with the y bit of the BO field removed. This permits
|
||||
matching a conditional branch regardless of the setting of the y
|
||||
bit. Similarly for the 'at' bits used for 64 bit branch hints. */
|
||||
bit. Similarly for the 'at' bits used for power4 branch hints. */
|
||||
#define Y_MASK (((unsigned long) 1) << 21)
|
||||
#define AT1_MASK (((unsigned long) 3) << 21)
|
||||
#define AT2_MASK (((unsigned long) 9) << 21)
|
||||
@ -1522,21 +1524,21 @@ extract_tbr (insn, dialect, invalid)
|
||||
|
||||
#define BOF (0x4)
|
||||
#define BOFP (0x5)
|
||||
#define BOFM64 (0x6)
|
||||
#define BOFP64 (0x7)
|
||||
#define BOFM4 (0x6)
|
||||
#define BOFP4 (0x7)
|
||||
#define BOT (0xc)
|
||||
#define BOTP (0xd)
|
||||
#define BOTM64 (0xe)
|
||||
#define BOTP64 (0xf)
|
||||
#define BOTM4 (0xe)
|
||||
#define BOTP4 (0xf)
|
||||
|
||||
#define BODNZ (0x10)
|
||||
#define BODNZP (0x11)
|
||||
#define BODZ (0x12)
|
||||
#define BODZP (0x13)
|
||||
#define BODNZM64 (0x18)
|
||||
#define BODNZP64 (0x19)
|
||||
#define BODZM64 (0x1a)
|
||||
#define BODZP64 (0x1b)
|
||||
#define BODNZM4 (0x18)
|
||||
#define BODNZP4 (0x19)
|
||||
#define BODZM4 (0x1a)
|
||||
#define BODZP4 (0x1b)
|
||||
|
||||
#define BOU (0x14)
|
||||
|
||||
@ -1569,8 +1571,8 @@ extract_tbr (insn, dialect, invalid)
|
||||
#undef PPC
|
||||
#define PPC PPC_OPCODE_PPC | PPC_OPCODE_ANY
|
||||
#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON | PPC_OPCODE_ANY
|
||||
#define PPCCOM32 PPC_OPCODE_32 | PPCCOM
|
||||
#define PPCCOM64 PPC_OPCODE_64 | PPCCOM
|
||||
#define NOPOWER4 PPC_OPCODE_NOPOWER4 | PPCCOM
|
||||
#define POWER4 PPC_OPCODE_POWER4 | PPCCOM
|
||||
#define PPC32 PPC_OPCODE_32 | PPC_OPCODE_PPC | PPC_OPCODE_ANY
|
||||
#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_PPC | PPC_OPCODE_ANY
|
||||
#define PPCONLY PPC_OPCODE_PPC
|
||||
@ -2116,29 +2118,29 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } },
|
||||
{ "bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } },
|
||||
{ "bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDA } },
|
||||
{ "bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdnztla-",BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdnztla+",BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdnztla-",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdnztla+",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdnzfla-",BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdnzfla+",BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdnzfla-",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdnzfla+",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, { BI, BDM } },
|
||||
{ "bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, { BI, BDP } },
|
||||
@ -2172,29 +2174,29 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, { BI, BDPA } },
|
||||
{ "bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, { BI, BDA } },
|
||||
{ "bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM32, { BI, BDM } },
|
||||
{ "bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM32, { BI, BDP } },
|
||||
{ "bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } },
|
||||
{ "bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } },
|
||||
{ "bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, { BI, BD } },
|
||||
{ "bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM32, { BI, BDMA } },
|
||||
{ "bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM32, { BI, BDPA } },
|
||||
{ "bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } },
|
||||
{ "bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } },
|
||||
{ "bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, { BI, BDA } },
|
||||
{ "bc-", B(16,0,0), B_MASK, PPCCOM, { BOE, BI, BDM } },
|
||||
{ "bc+", B(16,0,0), B_MASK, PPCCOM, { BOE, BI, BDP } },
|
||||
@ -2227,213 +2229,213 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
|
||||
{ "brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, { 0 } },
|
||||
{ "bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } },
|
||||
{ "bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdnzlr-", XLO(19,BODNZM64,16,0), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdnzlr+", XLO(19,BODNZP64,16,0), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
|
||||
{ "bdnzlrl-",XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdnzlrl+",XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdnzlrl-",XLO(19,BODNZM64,16,1), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdnzlrl+",XLO(19,BODNZP64,16,1), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdnzlrl-",XLO(19,BODNZ,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdnzlrl+",XLO(19,BODNZP,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdnzlrl-",XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdnzlrl+",XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } },
|
||||
{ "bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdzlr-", XLO(19,BODZM64,16,0), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdzlr+", XLO(19,BODZP64,16,0), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
|
||||
{ "bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM32, { 0 } },
|
||||
{ "bdzlrl-", XLO(19,BODZM64,16,1), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdzlrl+", XLO(19,BODZP64,16,1), XLBOBIBB_MASK, PPCCOM64, { 0 } },
|
||||
{ "bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } },
|
||||
{ "bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, POWER4, { 0 } },
|
||||
{ "bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltlr-", XLOCB(19,BOTM64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltlr+", XLOCB(19,BOTP64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltlrl-", XLOCB(19,BOTM64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltlrl+", XLOCB(19,BOTP64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtlr-", XLOCB(19,BOTM64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtlr+", XLOCB(19,BOTP64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtlrl-", XLOCB(19,BOTM64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtlrl+", XLOCB(19,BOTP64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqlr-", XLOCB(19,BOTM64,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqlr+", XLOCB(19,BOTP64,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqlrl-", XLOCB(19,BOTM64,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqlrl+", XLOCB(19,BOTP64,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsolr-", XLOCB(19,BOTM64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsolr+", XLOCB(19,BOTP64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsolrl-", XLOCB(19,BOTM64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsolrl+", XLOCB(19,BOTP64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunlr-", XLOCB(19,BOTM64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunlr+", XLOCB(19,BOTP64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunlrl-", XLOCB(19,BOTM64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunlrl+", XLOCB(19,BOTP64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgelr-", XLOCB(19,BOFM64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgelr+", XLOCB(19,BOFP64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgelrl-", XLOCB(19,BOFM64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgelrl+", XLOCB(19,BOFP64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnllr-", XLOCB(19,BOFM64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnllr+", XLOCB(19,BOFP64,CBLT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnllrl-", XLOCB(19,BOFM64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnllrl+", XLOCB(19,BOFP64,CBLT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blelr-", XLOCB(19,BOFM64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blelr+", XLOCB(19,BOFP64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blelrl-", XLOCB(19,BOFM64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blelrl+", XLOCB(19,BOFP64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnglr-", XLOCB(19,BOFM64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnglr+", XLOCB(19,BOFP64,CBGT,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnglrl-", XLOCB(19,BOFM64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnglrl+", XLOCB(19,BOFP64,CBGT,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnelr-", XLOCB(19,BOFM64,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnelr+", XLOCB(19,BOFP64,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnelrl-", XLOCB(19,BOFM64,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnelrl+", XLOCB(19,BOFP64,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnslr-", XLOCB(19,BOFM64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnslr+", XLOCB(19,BOFP64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnslrl-", XLOCB(19,BOFM64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnslrl+", XLOCB(19,BOFP64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
|
||||
{ "bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnulr-", XLOCB(19,BOFM64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnulr+", XLOCB(19,BOFP64,CBSO,16,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnulrl-", XLOCB(19,BOFM64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnulrl+", XLOCB(19,BOFP64,CBSO,16,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btlr-", XLO(19,BOTM64,16,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btlr+", XLO(19,BOTP64,16,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, { BI } },
|
||||
{ "btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btlrl-", XLO(19,BOTM64,16,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btlrl+", XLO(19,BOTP64,16,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, { BI } },
|
||||
{ "bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bflr-", XLO(19,BOFM64,16,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bflr+", XLO(19,BOFP64,16,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, { BI } },
|
||||
{ "bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bflrl-", XLO(19,BOFM64,16,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bflrl+", XLO(19,BOFP64,16,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, { BI } },
|
||||
{ "bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdnztlr-",XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnztlr+",XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnztlr-",XLO(19,BODNZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnztlr+",XLO(19,BODNZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnztlrl",XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdnztlrl-",XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnztlrl+",XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnztlrl-",XLO(19,BODNZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnztlrl+",XLO(19,BODNZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdnzflr-",XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnzflr+",XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnzflr-",XLO(19,BODNZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnzflr+",XLO(19,BODNZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnzflrl",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdztlrl-",XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdztlrl+",XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdztlrl-",XLO(19,BODZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdztlrl+",XLO(19,BODZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bdzflrl-",XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdzflrl+",XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bdzflrl-",XLO(19,BODZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bdzflrl+",XLO(19,BODZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bclr", XLLK(19,16,0), XLYBB_MASK, PPCCOM, { BO, BI } },
|
||||
{ "bclrl", XLLK(19,16,1), XLYBB_MASK, PPCCOM, { BO, BI } },
|
||||
{ "bclr+", XLYLK(19,16,1,0), XLYBB_MASK, PPCCOM, { BOE, BI } },
|
||||
@ -2479,145 +2481,145 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||||
{ "bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, { 0 } },
|
||||
{ "bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, { 0 } },
|
||||
{ "bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltctr-", XLOCB(19,BOTM64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltctr+", XLOCB(19,BOTP64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bltctrl-",XLOCB(19,BOTM64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltctrl+",XLOCB(19,BOTP64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtctr-", XLOCB(19,BOTM64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtctr+", XLOCB(19,BOTP64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgtctrl-",XLOCB(19,BOTM64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtctrl+",XLOCB(19,BOTP64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqctr-", XLOCB(19,BOTM64,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqctr+", XLOCB(19,BOTP64,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "beqctrl-",XLOCB(19,BOTM64,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqctrl+",XLOCB(19,BOTP64,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsoctr-", XLOCB(19,BOTM64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsoctr+", XLOCB(19,BOTP64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bsoctrl-",XLOCB(19,BOTM64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsoctrl+",XLOCB(19,BOTP64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunctr-", XLOCB(19,BOTM64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunctr+", XLOCB(19,BOTP64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bunctrl-",XLOCB(19,BOTM64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunctrl+",XLOCB(19,BOTP64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgectr-", XLOCB(19,BOFM64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgectr+", XLOCB(19,BOFP64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bgectrl-",XLOCB(19,BOFM64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgectrl+",XLOCB(19,BOFP64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnlctr-", XLOCB(19,BOFM64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnlctr+", XLOCB(19,BOFP64,CBLT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnlctrl-",XLOCB(19,BOFM64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnlctrl+",XLOCB(19,BOFP64,CBLT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blectr-", XLOCB(19,BOFM64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blectr+", XLOCB(19,BOFP64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "blectrl-",XLOCB(19,BOFM64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blectrl+",XLOCB(19,BOFP64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bngctr-", XLOCB(19,BOFM64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bngctr+", XLOCB(19,BOFP64,CBGT,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bngctrl-",XLOCB(19,BOFM64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bngctrl+",XLOCB(19,BOFP64,CBGT,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnectr-", XLOCB(19,BOFM64,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnectr+", XLOCB(19,BOFP64,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnectrl-",XLOCB(19,BOFM64,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnectrl+",XLOCB(19,BOFP64,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnsctr-", XLOCB(19,BOFM64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnsctr+", XLOCB(19,BOFP64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnsctrl-",XLOCB(19,BOFM64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnsctrl+",XLOCB(19,BOFP64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnuctr-", XLOCB(19,BOFM64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnuctr+", XLOCB(19,BOFP64,CBSO,528,0), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } },
|
||||
{ "bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM32, { CR } },
|
||||
{ "bnuctrl-",XLOCB(19,BOFM64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnuctrl+",XLOCB(19,BOFP64,CBSO,528,1), XLBOCBBB_MASK, PPCCOM64, { CR } },
|
||||
{ "bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
|
||||
{ "bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
|
||||
{ "btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btctr-", XLO(19,BOTM64,528,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btctr+", XLO(19,BOTP64,528,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "btctrl-", XLO(19,BOTM64,528,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btctrl+", XLO(19,BOTP64,528,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bfctr-", XLO(19,BOFM64,528,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bfctr+", XLO(19,BOFP64,528,0), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, { BI } },
|
||||
{ "bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM32, { BI } },
|
||||
{ "bfctrl-", XLO(19,BOFM64,528,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bfctrl+", XLO(19,BOFP64,528,1), XLBOBB_MASK, PPCCOM64, { BI } },
|
||||
{ "bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
|
||||
{ "bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, POWER4, { BI } },
|
||||
{ "bcctr", XLLK(19,528,0), XLYBB_MASK, PPCCOM, { BO, BI } },
|
||||
{ "bcctr-", XLYLK(19,528,0,0), XLYBB_MASK, PPCCOM, { BOE, BI } },
|
||||
{ "bcctr+", XLYLK(19,528,1,0), XLYBB_MASK, PPCCOM, { BOE, BI } },
|
||||
|
Loading…
x
Reference in New Issue
Block a user