This commit is contained in:
Ethan Roseman 2020-04-24 18:12:46 -04:00
parent 842df936be
commit 241d761587
51 changed files with 8097 additions and 6 deletions

1
.gitignore vendored
View File

@ -9,3 +9,4 @@ papermario/build/
.vscode/ .vscode/
.idea/ .idea/
.DS_Store .DS_Store
venv/

View File

@ -82,7 +82,7 @@ ranges:
- [0xf79b0, 0xf99b0, "asm", "CODE_f79b0_len_2000", 0x002D3000] # frame:0x00000001 header: 0x0 trace: Tbl mapped:802d4f20 - [0xf79b0, 0xf99b0, "asm", "CODE_f79b0_len_2000", 0x002D3000] # frame:0x00000001 header: 0x0 trace: Tbl mapped:802d4f20
- [0xf99b0, 0xfb9b0, "asm", "CODE_f99b0_len_2000", 0x002D5000] # frame:0x00000001 header: 0x2000000 trace: Tbl mapped:802d6d94 - [0xf99b0, 0xfb9b0, "asm", "CODE_f99b0_len_2000", 0x002D5000] # frame:0x00000001 header: 0x2000000 trace: Tbl mapped:802d6d94
- [0xfb9b0, 0xfd9b0, "asm", "CODE_fb9b0_len_2000", 0x002D7000] # frame:0x00000001 header: 0x0 trace: Tbl mapped:802d8cec - [0xfb9b0, 0xfd9b0, "asm", "CODE_fb9b0_len_2000", 0x002D7000] # frame:0x00000001 header: 0x0 trace: Tbl mapped:802d8cec
- [0xfd9b0, 0xfee30, "asm", "CODE_fd9b0_len_1480", 0x002D9000] # frame:0x00000001 header: D 0x44000000 trace: Tbl mapped:802d9ab0 - [0xfd9b0, 0x0fe650, "asm", "CODE_fd9b0_len_1480", 0x002D9000] # frame:0x00000001 header: D 0x44000000 trace: Tbl mapped:802d9ab0
- [0xfee30, 0x100e30, "asm", "CODE_fee30_len_2000", 0x002DBD40] # frame:0x00000001 header: 0x27000000 trace: Tbl mapped:802ddd34 - [0xfee30, 0x100e30, "asm", "CODE_fee30_len_2000", 0x002DBD40] # frame:0x00000001 header: 0x27000000 trace: Tbl mapped:802ddd34
- [0x100e30, 0x102610, "asm", "CODE_100e30_len_17e0", 0x002DDD40] # frame:0x00000001 header: 0x24000000 trace: Tbl mapped:802df354 - [0x100e30, 0x102610, "asm", "CODE_100e30_len_17e0", 0x002DDD40] # frame:0x00000001 header: 0x24000000 trace: Tbl mapped:802df354
- [0x102610, 0x104610, "asm", "CODE_102610_len_2000", 0x002E0D90] # frame:0x00000001 header: 0x3c000000 trace: Tbl mapped:802e13d4 - [0x102610, 0x104610, "asm", "CODE_102610_len_2000", 0x002E0D90] # frame:0x00000001 header: 0x3c000000 trace: Tbl mapped:802e13d4

BIN
oldbinutils/bin/mips-addr2line Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-ar Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-as Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-c++filt Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-gasp Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-ld Executable file

Binary file not shown.

Binary file not shown.

BIN
oldbinutils/bin/mips-nm Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-objcopy Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-objdump Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-ranlib Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-size Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-strings Executable file

Binary file not shown.

BIN
oldbinutils/bin/mips-strip Executable file

Binary file not shown.

View File

@ -0,0 +1,154 @@
/* ANSI and traditional C compatability macros
Copyright 1991, 1992, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* ANSI and traditional C compatibility macros
ANSI C is assumed if __STDC__ is #defined.
Macro ANSI C definition Traditional C definition
----- ---- - ---------- ----------- - ----------
PTR `void *' `char *'
LONG_DOUBLE `long double' `double'
VOLATILE `volatile' `'
SIGNED `signed' `'
PTRCONST `void *const' `char *'
ANSI_PROTOTYPES 1 not defined
CONST is also defined, but is obsolete. Just use const.
obsolete -- DEFUN (name, arglist, args)
Defines function NAME.
ARGLIST lists the arguments, separated by commas and enclosed in
parentheses. ARGLIST becomes the argument list in traditional C.
ARGS list the arguments with their types. It becomes a prototype in
ANSI C, and the type declarations in traditional C. Arguments should
be separated with `AND'. For functions with a variable number of
arguments, the last thing listed should be `DOTS'.
obsolete -- DEFUN_VOID (name)
Defines a function NAME, which takes no arguments.
obsolete -- EXFUN (name, (prototype)) -- obsolete.
Replaced by PARAMS. Do not use; will disappear someday soon.
Was used in external function declarations.
In ANSI C it is `NAME PROTOTYPE' (so PROTOTYPE should be enclosed in
parentheses). In traditional C it is `NAME()'.
For a function that takes no arguments, PROTOTYPE should be `(void)'.
obsolete -- PROTO (type, name, (prototype) -- obsolete.
This one has also been replaced by PARAMS. Do not use.
PARAMS ((args))
We could use the EXFUN macro to handle prototype declarations, but
the name is misleading and the result is ugly. So we just define a
simple macro to handle the parameter lists, as in:
static int foo PARAMS ((int, char));
This produces: `static int foo();' or `static int foo (int, char);'
EXFUN would have done it like this:
static int EXFUN (foo, (int, char));
but the function is not external...and it's hard to visually parse
the function name out of the mess. EXFUN should be considered
obsolete; new code should be written to use PARAMS.
DOTS is also obsolete.
Examples:
extern int printf PARAMS ((const char *format, ...));
*/
#ifndef _ANSIDECL_H
#define _ANSIDECL_H 1
/* Every source file includes this file,
so they will all get the switch for lint. */
/* LINTLIBRARY */
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
/* All known AIX compilers implement these things (but don't always
define __STDC__). The RISC/OS MIPS compiler defines these things
in SVR4 mode, but does not define __STDC__. */
#define PTR void *
#define PTRCONST void *CONST
#define LONG_DOUBLE long double
#define AND ,
#define NOARGS void
#define VOLATILE volatile
#define SIGNED signed
#define PARAMS(paramlist) paramlist
#define ANSI_PROTOTYPES 1
#define VPARAMS(ARGS) ARGS
#define VA_START(va_list,var) va_start(va_list,var)
/* These are obsolete. Do not use. */
#define CONST const
#define DOTS , ...
#define PROTO(type, name, arglist) type name arglist
#define EXFUN(name, proto) name proto
#define DEFUN(name, arglist, args) name(args)
#define DEFUN_VOID(name) name(void)
#else /* Not ANSI C. */
#define PTR char *
#define PTRCONST PTR
#define LONG_DOUBLE double
#define AND ;
#define NOARGS
#ifndef const /* some systems define it in header files for non-ansi mode */
#define const
#endif
#define VOLATILE
#define SIGNED
#define PARAMS(paramlist) ()
#define VPARAMS(ARGS) (va_alist) va_dcl
#define VA_START(va_list,var) va_start(va_list)
/* These are obsolete. Do not use. */
#define CONST
#define DOTS
#define PROTO(type, name, arglist) type name ()
#define EXFUN(name, proto) name()
#define DEFUN(name, arglist, args) name arglist args;
#define DEFUN_VOID(name) name()
#endif /* ANSI C. */
#endif /* ansidecl.h */

2796
oldbinutils/include/bfd.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,507 @@
/* bfdlink.h -- header file for BFD link routines
Copyright 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef BFDLINK_H
#define BFDLINK_H
/* Which symbols to strip during a link. */
enum bfd_link_strip
{
strip_none, /* Don't strip any symbols. */
strip_debugger, /* Strip debugging symbols. */
strip_some, /* keep_hash is the list of symbols to keep. */
strip_all /* Strip all symbols. */
};
/* Which local symbols to discard during a link. This is irrelevant
if strip_all is used. */
enum bfd_link_discard
{
discard_none, /* Don't discard any locals. */
discard_l, /* Discard local temporary symbols. */
discard_all /* Discard all locals. */
};
/* These are the possible types of an entry in the BFD link hash
table. */
enum bfd_link_hash_type
{
bfd_link_hash_new, /* Symbol is new. */
bfd_link_hash_undefined, /* Symbol seen before, but undefined. */
bfd_link_hash_undefweak, /* Symbol is weak and undefined. */
bfd_link_hash_defined, /* Symbol is defined. */
bfd_link_hash_defweak, /* Symbol is weak and defined. */
bfd_link_hash_common, /* Symbol is common. */
bfd_link_hash_indirect, /* Symbol is an indirect link. */
bfd_link_hash_warning /* Like indirect, but warn if referenced. */
};
/* The linking routines use a hash table which uses this structure for
its elements. */
struct bfd_link_hash_entry
{
/* Base hash table entry structure. */
struct bfd_hash_entry root;
/* Type of this entry. */
enum bfd_link_hash_type type;
/* Undefined and common symbols are kept in a linked list through
this field. This field is not in the union because that would
force us to remove entries from the list when we changed their
type, which would force the list to be doubly linked, which would
waste more memory. When an undefined or common symbol is
created, it should be added to this list, the head of which is in
the link hash table itself. As symbols are defined, they need
not be removed from the list; anything which reads the list must
doublecheck the symbol type.
Weak symbols are not kept on this list.
Defined and defweak symbols use this field as a reference marker.
If the field is not NULL, or this structure is the tail of the
undefined symbol list, the symbol has been referenced. If the
symbol is undefined and becomes defined, this field will
automatically be non-NULL since the symbol will have been on the
undefined symbol list. */
struct bfd_link_hash_entry *next;
/* A union of information depending upon the type. */
union
{
/* Nothing is kept for bfd_hash_new. */
/* bfd_link_hash_undefined, bfd_link_hash_undefweak. */
struct
{
bfd *abfd; /* BFD symbol was found in. */
} undef;
/* bfd_link_hash_defined, bfd_link_hash_defweak. */
struct
{
bfd_vma value; /* Symbol value. */
asection *section; /* Symbol section. */
} def;
/* bfd_link_hash_indirect, bfd_link_hash_warning. */
struct
{
struct bfd_link_hash_entry *link; /* Real symbol. */
const char *warning; /* Warning (bfd_link_hash_warning only). */
} i;
/* bfd_link_hash_common. */
struct
{
/* The linker needs to know three things about common
symbols: the size, the alignment, and the section in
which the symbol should be placed. We store the size
here, and we allocate a small structure to hold the
section and the alignment. The alignment is stored as a
power of two. We don't store all the information
directly because we don't want to increase the size of
the union; this structure is a major space user in the
linker. */
bfd_size_type size; /* Common symbol size. */
struct bfd_link_hash_common_entry
{
unsigned int alignment_power; /* Alignment. */
asection *section; /* Symbol section. */
} *p;
} c;
} u;
};
/* This is the link hash table. It is a derived class of
bfd_hash_table. */
struct bfd_link_hash_table
{
/* The hash table itself. */
struct bfd_hash_table table;
/* The back end which created this hash table. This indicates the
type of the entries in the hash table, which is sometimes
important information when linking object files of different
types together. */
const bfd_target *creator;
/* A linked list of undefined and common symbols, linked through the
next field in the bfd_link_hash_entry structure. */
struct bfd_link_hash_entry *undefs;
/* Entries are added to the tail of the undefs list. */
struct bfd_link_hash_entry *undefs_tail;
};
/* Look up an entry in a link hash table. If FOLLOW is true, this
follows bfd_link_hash_indirect and bfd_link_hash_warning links to
the real symbol. */
extern struct bfd_link_hash_entry *bfd_link_hash_lookup
PARAMS ((struct bfd_link_hash_table *, const char *, boolean create,
boolean copy, boolean follow));
/* Look up an entry in the main linker hash table if the symbol might
be wrapped. This should only be used for references to an
undefined symbol, not for definitions of a symbol. */
extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean, boolean,
boolean));
/* Traverse a link hash table. */
extern void bfd_link_hash_traverse
PARAMS ((struct bfd_link_hash_table *,
boolean (*) (struct bfd_link_hash_entry *, PTR),
PTR));
/* Add an entry to the undefs list. */
extern void bfd_link_add_undef
PARAMS ((struct bfd_link_hash_table *, struct bfd_link_hash_entry *));
/* This structure holds all the information needed to communicate
between BFD and the linker when doing a link. */
struct bfd_link_info
{
/* Function callbacks. */
const struct bfd_link_callbacks *callbacks;
/* true if BFD should generate a relocateable object file. */
boolean relocateable;
/* true if BFD should generate a "task linked" object file,
similar to relocatable but also with globals converted to statics. */
boolean task_link;
/* true if BFD should generate a shared object. */
boolean shared;
/* true if BFD should pre-bind symbols in a shared object. */
boolean symbolic;
/* true if shared objects should be linked directly, not shared. */
boolean static_link;
/* true if the output file should be in a traditional format. This
is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
on the output file, but may be checked when reading the input
files. */
boolean traditional_format;
/* Which symbols to strip. */
enum bfd_link_strip strip;
/* Which local symbols to discard. */
enum bfd_link_discard discard;
/* true if symbols should be retained in memory, false if they
should be freed and reread. */
boolean keep_memory;
/* The list of input BFD's involved in the link. These are chained
together via the link_next field. */
bfd *input_bfds;
/* If a symbol should be created for each input BFD, this is section
where those symbols should be placed. It must be a section in
the output BFD. It may be NULL, in which case no such symbols
will be created. This is to support CREATE_OBJECT_SYMBOLS in the
linker command language. */
asection *create_object_symbols_section;
/* Hash table handled by BFD. */
struct bfd_link_hash_table *hash;
/* Hash table of symbols to keep. This is NULL unless strip is
strip_some. */
struct bfd_hash_table *keep_hash;
/* true if every symbol should be reported back via the notice
callback. */
boolean notice_all;
/* Hash table of symbols to report back via the notice callback. If
this is NULL, and notice_all is false, then no symbols are
reported back. */
struct bfd_hash_table *notice_hash;
/* Hash table of symbols which are being wrapped (the --wrap linker
option). If this is NULL, no symbols are being wrapped. */
struct bfd_hash_table *wrap_hash;
/* If a base output file is wanted, then this points to it */
PTR base_file;
};
/* This structures holds a set of callback functions. These are
called by the BFD linker routines. The first argument to each
callback function is the bfd_link_info structure being used. Each
function returns a boolean value. If the function returns false,
then the BFD function which called it will return with a failure
indication. */
struct bfd_link_callbacks
{
/* A function which is called when an object is added from an
archive. ABFD is the archive element being added. NAME is the
name of the symbol which caused the archive element to be pulled
in. */
boolean (*add_archive_element) PARAMS ((struct bfd_link_info *,
bfd *abfd,
const char *name));
/* A function which is called when a symbol is found with multiple
definitions. NAME is the symbol which is defined multiple times.
OBFD is the old BFD, OSEC is the old section, OVAL is the old
value, NBFD is the new BFD, NSEC is the new section, and NVAL is
the new value. OBFD may be NULL. OSEC and NSEC may be
bfd_com_section or bfd_ind_section. */
boolean (*multiple_definition) PARAMS ((struct bfd_link_info *,
const char *name,
bfd *obfd,
asection *osec,
bfd_vma oval,
bfd *nbfd,
asection *nsec,
bfd_vma nval));
/* A function which is called when a common symbol is defined
multiple times. NAME is the symbol appearing multiple times.
OBFD is the BFD of the existing symbol; it may be NULL if this is
not known. OTYPE is the type of the existing symbol, which may
be bfd_link_hash_defined, bfd_link_hash_defweak,
bfd_link_hash_common, or bfd_link_hash_indirect. If OTYPE is
bfd_link_hash_common, OSIZE is the size of the existing symbol.
NBFD is the BFD of the new symbol. NTYPE is the type of the new
symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or
bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE
is the size of the new symbol. */
boolean (*multiple_common) PARAMS ((struct bfd_link_info *,
const char *name,
bfd *obfd,
enum bfd_link_hash_type otype,
bfd_vma osize,
bfd *nbfd,
enum bfd_link_hash_type ntype,
bfd_vma nsize));
/* A function which is called to add a symbol to a set. ENTRY is
the link hash table entry for the set itself (e.g.,
__CTOR_LIST__). RELOC is the relocation to use for an entry in
the set when generating a relocateable file, and is also used to
get the size of the entry when generating an executable file.
ABFD, SEC and VALUE identify the value to add to the set. */
boolean (*add_to_set) PARAMS ((struct bfd_link_info *,
struct bfd_link_hash_entry *entry,
bfd_reloc_code_real_type reloc,
bfd *abfd, asection *sec, bfd_vma value));
/* A function which is called when the name of a g++ constructor or
destructor is found. This is only called by some object file
formats. CONSTRUCTOR is true for a constructor, false for a
destructor. This will use BFD_RELOC_CTOR when generating a
relocateable file. NAME is the name of the symbol found. ABFD,
SECTION and VALUE are the value of the symbol. */
boolean (*constructor) PARAMS ((struct bfd_link_info *,
boolean constructor,
const char *name, bfd *abfd, asection *sec,
bfd_vma value));
/* A function which is called to issue a linker warning. For
example, this is called when there is a reference to a warning
symbol. WARNING is the warning to be issued. SYMBOL is the name
of the symbol which triggered the warning; it may be NULL if
there is none. ABFD, SECTION and ADDRESS identify the location
which trigerred the warning; either ABFD or SECTION or both may
be NULL if the location is not known. */
boolean (*warning) PARAMS ((struct bfd_link_info *,
const char *warning, const char *symbol,
bfd *abfd, asection *section,
bfd_vma address));
/* A function which is called when a relocation is attempted against
an undefined symbol. NAME is the symbol which is undefined.
ABFD, SECTION and ADDRESS identify the location from which the
reference is made. In some cases SECTION may be NULL. */
boolean (*undefined_symbol) PARAMS ((struct bfd_link_info *,
const char *name, bfd *abfd,
asection *section, bfd_vma address));
/* A function which is called when a reloc overflow occurs. NAME is
the name of the symbol or section the reloc is against,
RELOC_NAME is the name of the relocation, and ADDEND is any
addend that is used. ABFD, SECTION and ADDRESS identify the
location at which the overflow occurs; if this is the result of a
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
boolean (*reloc_overflow) PARAMS ((struct bfd_link_info *,
const char *name,
const char *reloc_name, bfd_vma addend,
bfd *abfd, asection *section,
bfd_vma address));
/* A function which is called when a dangerous reloc is performed.
The canonical example is an a29k IHCONST reloc which does not
follow an IHIHALF reloc. MESSAGE is an appropriate message.
ABFD, SECTION and ADDRESS identify the location at which the
problem occurred; if this is the result of a
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
boolean (*reloc_dangerous) PARAMS ((struct bfd_link_info *,
const char *message,
bfd *abfd, asection *section,
bfd_vma address));
/* A function which is called when a reloc is found to be attached
to a symbol which is not being written out. NAME is the name of
the symbol. ABFD, SECTION and ADDRESS identify the location of
the reloc; if this is the result of a
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
ABFD will be NULL. */
boolean (*unattached_reloc) PARAMS ((struct bfd_link_info *,
const char *name,
bfd *abfd, asection *section,
bfd_vma address));
/* A function which is called when a symbol in notice_hash is
defined or referenced. NAME is the symbol. ABFD, SECTION and
ADDRESS are the value of the symbol. If SECTION is
bfd_und_section, this is a reference. */
boolean (*notice) PARAMS ((struct bfd_link_info *, const char *name,
bfd *abfd, asection *section, bfd_vma address));
};
/* The linker builds link_order structures which tell the code how to
include input data in the output file. */
/* These are the types of link_order structures. */
enum bfd_link_order_type
{
bfd_undefined_link_order, /* Undefined. */
bfd_indirect_link_order, /* Built from a section. */
bfd_fill_link_order, /* Fill with a 16 bit constant. */
bfd_data_link_order, /* Set to explicit data. */
bfd_section_reloc_link_order, /* Relocate against a section. */
bfd_symbol_reloc_link_order /* Relocate against a symbol. */
};
/* This is the link_order structure itself. These form a chain
attached to the section whose contents they are describing. */
struct bfd_link_order
{
/* Next link_order in chain. */
struct bfd_link_order *next;
/* Type of link_order. */
enum bfd_link_order_type type;
/* Offset within output section. */
bfd_vma offset;
/* Size within output section. */
bfd_size_type size;
/* Type specific information. */
union
{
struct
{
/* Section to include. If this is used, then
section->output_section must be the section the
link_order is attached to, section->output_offset must
equal the link_order offset field, and section->_raw_size
must equal the link_order size field. Maybe these
restrictions should be relaxed someday. */
asection *section;
} indirect;
struct
{
/* Value to fill with. */
unsigned int value;
} fill;
struct
{
/* Data to put into file. The size field gives the number
of bytes which this field points to. */
bfd_byte *contents;
} data;
struct
{
/* Description of reloc to generate. Used for
bfd_section_reloc_link_order and
bfd_symbol_reloc_link_order. */
struct bfd_link_order_reloc *p;
} reloc;
} u;
};
/* A linker order of type bfd_section_reloc_link_order or
bfd_symbol_reloc_link_order means to create a reloc against a
section or symbol, respectively. This is used to implement -Ur to
generate relocs for the constructor tables. The
bfd_link_order_reloc structure describes the reloc that BFD should
create. It is similar to a arelent, but I didn't use arelent
because the linker does not know anything about most symbols, and
any asymbol structure it creates will be partially meaningless.
This information could logically be in the bfd_link_order struct,
but I didn't want to waste the space since these types of relocs
are relatively rare. */
struct bfd_link_order_reloc
{
/* Reloc type. */
bfd_reloc_code_real_type reloc;
union
{
/* For type bfd_section_reloc_link_order, this is the section
the reloc should be against. This must be a section in the
output BFD, not any of the input BFDs. */
asection *section;
/* For type bfd_symbol_reloc_link_order, this is the name of the
symbol the reloc should be against. */
const char *name;
} u;
/* Addend to use. The object file should contain zero. The BFD
backend is responsible for filling in the contents of the object
file correctly. For some object file formats (e.g., COFF) the
addend must be stored into in the object file, and for some
(e.g., SPARC a.out) it is kept in the reloc. */
bfd_vma addend;
};
/* Allocate a new link_order for a section. */
extern struct bfd_link_order *bfd_new_link_order PARAMS ((bfd *, asection *));
/* These structures are used to describe version information for the
ELF linker. These structures could be manipulated entirely inside
BFD, but it would be a pain. Instead, the regular linker sets up
these structures, and then passes them into BFD. */
/* Regular expressions for a version. */
struct bfd_elf_version_expr
{
/* Next regular expression for this version. */
struct bfd_elf_version_expr *next;
/* Regular expression. */
const char *match;
};
/* Version dependencies. */
struct bfd_elf_version_deps
{
/* Next dependency for this version. */
struct bfd_elf_version_deps *next;
/* The version which this version depends upon. */
struct bfd_elf_version_tree *version_needed;
};
/* A node in the version tree. */
struct bfd_elf_version_tree
{
/* Next version. */
struct bfd_elf_version_tree *next;
/* Name of this version. */
const char *name;
/* Version number. */
unsigned int vernum;
/* Regular expressions for global symbols in this version. */
struct bfd_elf_version_expr *globals;
/* Regular expressions for local symbols in this version. */
struct bfd_elf_version_expr *locals;
/* List of versions which this version depends upon. */
struct bfd_elf_version_deps *deps;
/* Index of the version name. This is used within BFD. */
unsigned int name_indx;
/* Whether this version tree was used. This is used within BFD. */
int used;
};
#endif

BIN
oldbinutils/lib/libbfd.a Normal file

Binary file not shown.

22
oldbinutils/lib/libbfd.la Normal file
View File

@ -0,0 +1,22 @@
# libbfd.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.2
# The name that we can dlopen(3).
dlname=''
# Names of this library.
library_names=''
# The name of the static archive.
old_library='libbfd.a'
# Libraries that this one depends upon.
dependency_libs=''
# Version information for libbfd.
current=0
age=0
revision=0
# Directory that this library needs to be installed in:
libdir='/opt/cross/lib'

BIN
oldbinutils/lib/libiberty.a Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,22 @@
# libopcodes.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.2
# The name that we can dlopen(3).
dlname=''
# Names of this library.
library_names=''
# The name of the static archive.
old_library='libopcodes.a'
# Libraries that this one depends upon.
dependency_libs=''
# Version information for libopcodes.
current=0
age=0
revision=0
# Directory that this library needs to be installed in:
libdir='/opt/cross/lib'

View File

@ -0,0 +1,127 @@
.\" Copyright (c) 1997 Free Software Foundation
.\" See COPYING for conditions for redistribution
.TH addr2line 1 "27 March 1997" "Cygnus Solutions" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
addr2line \- convert addresses into file names and line numbers
.SH SYNOPSIS
.hy 0
.na
.TP
.B addr2line
.RB "[\|" "\-b\ "\c
.I bfdname\c
.RB " | " "\-\-target="\c
.I bfdname\c
\&\|]
.RB "[\|" \-C | \-\-demangle "\|]"
.RB "[\|" "\-e\ "\c
.I filename\c
.RB " | " "\-\-exe="\c
.I filename\c
\&\|]
.RB "[\|" \-f | \-\-functions "\|]"
.RB "[\|" \-s | \-\-basenames "\|]"
.RB "[\|" \-H | \-\-help "\|]"
.RB "[\|" \-V | \-\-version "\|]"
.RB "[\|" addr addr ... "\|]"
.ad b
.hy 1
.SH DESCRIPTION
\c
.B addr2line
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.
The executable to use is specified with the
.B \-e
option. The default is
.B a.out\c
\&.
.B addr2line
has two modes of operation.
In the first, hexadecimal addresses are specified on the command line,
and
.B addr2line
displays the file name and line number for each address.
In the second,
.B addr2line
reads hexadecimal addresses from standard input, and prints the file
name and line number for each address on standard output. In this
mode,
.B addr2line
may be used in a pipe to convert dynamically chosen addresses.
The format of the output is FILENAME:LINENO. The file name and line
number for each address is printed on a separate line. If the
.B \-f
option is used, then each FILENAME:LINENO line is preceded by a
FUNCTIONNAME line which is the name of the function containing the
address.
If the file name or function name can not be determined,
.B addr2line
will print two question marks in their place. If the line number can
not be determined,
.B addr2line
will print 0.
.SH OPTIONS
.TP
.BI "\-b " "bfdname"\c
.TP
.BI "\-\-target=" "bfdname"
Specify the object-code format for the object files to be
\c
.I bfdname\c
\&.
.TP
.B \-C
.TP
.B \-\-demangle
Decode (\fIdemangle\fP) low-level symbol names into user-level names.
Besides removing any initial underscore prepended by the system, this
makes C++ function names readable.
.TP
.BI "\-e " "filename"\c
.TP
.BI "\-\-exe=" "filename"
Specify the name of the executable for which addresses should be
translated. The default file is
.B a.out\c
\&.
.TP
.B \-f
.TP
.B \-\-functions
Display function names as well as file and line number information.
.TP
.B \-s
.TP
.B \-\-basenames
Display only the base of each file name.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (October 1991).

View File

@ -0,0 +1,509 @@
.\" Copyright (c) 1991 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH ar 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
ar \- create, modify, and extract from archives.
.SH SYNOPSIS
.hy 0
.na
.BR ar " [\|" "-" "\|]"\c
.I {dmpqrtx}[abcilosSuvV] \c
[\|\c
.I membername\c
\&\|] \c
.I archive\c
\& \c
.I files\c
\&.\|.\|.
.ad b
.hy 1
.SH DESCRIPTION
The GNU \c
.B ar\c
\& program creates, modifies, and extracts from
archives. An \c
.I archive\c
\& is a single file holding a collection of
other files in a structure that makes it possible to retrieve
the original individual files (called \c
.I members\c
\& of the archive).
The original files' contents, mode (permissions), timestamp, owner, and
group are preserved in the archive, and may be reconstituted on
extraction.
GNU \c
.B ar\c
\& can maintain archives whose members have names of any
length; however, depending on how \c
.B ar\c
\& 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).
\c
.B ar\c
\& is considered a binary utility because archives of this sort
are most often used as \c
.I libraries\c
\& holding commonly needed
subroutines.
\c
.B ar\c
\& will create an index to the symbols defined in relocatable
object modules in the archive when you specify the modifier `\|\c
.B s\c
\|'.
Once created, this index is updated in the archive whenever \c
.B ar\c
\&
makes a change to its contents (save for the `\|\c
.B q\c
\|' 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.
You may use `\|\c
.B nm \-s\c
\|' or `\|\c
.B nm \-\-print\-armap\c
\|' to list this index
table. If an archive lacks the table, another form of \c
.B ar\c
\& called
\c
.B ranlib\c
\& can be used to add just the table.
\c
.B ar\c
\& insists on at least two arguments to execute: one
keyletter specifying the \c
.I operation\c
\& (optionally accompanied by other
keyletters specifying \c
.I modifiers\c
\&), and the archive name to act on.
Most operations can also accept further \c
.I files\c
\& arguments,
specifying particular files to operate on.
.SH OPTIONS
GNU \c
.B ar\c
\& allows you to mix the operation code \c
.I p\c
\& and modifier
flags \c
.I mod\c
\& in any order, within the first command-line argument.
If you wish, you may begin the first command-line argument with a
dash.
The \c
.I p\c
\& keyletter specifies what operation to execute; it may be
any of the following, but you must specify only one of them:
.TP
.B d
\c
.I Delete\c
\& modules from the archive. Specify the names of modules to
be deleted as \c
.I files\c
\&; the archive is untouched if you
specify no files to delete.
If you specify the `\|\c
.B v\c
\|' modifier, \c
.B ar\c
\& will list each module
as it is deleted.
.TP
.B m
Use this operation to \c
.I move\c
\& members in an archive.
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.
If no modifiers are used with \c
.B m\c
\&, any members you name in the
\c
.I files\c
\& arguments are moved to the \c
.I end\c
\& of the archive;
you can use the `\|\c
.B a\c
\|', `\|\c
.B b\c
\|', or `\|\c
.B i\c
\|' modifiers to move them to a
specified place instead.
.TP
.B p
\c
.I Print\c
\& the specified members of the archive, to the standard
output file. If the `\|\c
.B v\c
\|' modifier is specified, show the member
name before copying its contents to standard output.
If you specify no \c
.I files\c
\&, all the files in the archive are printed.
.TP
.B q
\c
.I Quick append\c
\&; add \c
.I files\c
\& to the end of \c
.I archive\c
\&,
without checking for replacement.
The modifiers `\|\c
.B a\c
\|', `\|\c
.B b\c
\|', and `\|\c
.B i\c
\|' do \c
.I not\c
\& affect this
operation; new members are always placed at the end of the archive.
The modifier `\|\c
.B v\c
\|' makes \c
.B ar\c
\& list each file as it is appended.
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 `\|\c
.B ar s\c
\|' or
\c
.B ranlib\c
\& explicitly to update the symbol table index.
However, too many different systems assume quick append rebuilds the
index, so GNU
.B ar
implements `\|\c
.B q\c
\|' as a synonym for `\|\c
.B r\c
\|'.
.TP
.B r
Insert \c
.I files\c
\& into \c
.I archive\c
\& (with \c
.I replacement\c
\&). This
operation differs from `\|\c
.B q\c
\|' in that any previously existing members
are deleted if their names match those being added.
If one of the files named in \c
.I files\c
\& doesn't exist, \c
.B ar\c
\&
displays an error message, and leaves undisturbed any existing members
of the archive matching that name.
By default, new members are added at the end of the file; but you may
use one of the modifiers `\|\c
.B a\c
\|', `\|\c
.B b\c
\|', or `\|\c
.B i\c
\|' to request
placement relative to some existing member.
The modifier `\|\c
.B v\c
\|' used with this operation elicits a line of
output for each file inserted, along with one of the letters `\|\c
.B a\c
\|' or
`\|\c
.B r\c
\|' to indicate whether the file was appended (no old member
deleted) or replaced.
.TP
.B t
Display a \c
.I table\c
\& listing the contents of \c
.I archive\c
\&, or those
of the files listed in \c
.I files\c
\& 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 `\|\c
.B v\c
\|' modifier.
If you do not specify any \c
.I files\c
\&, all files in the archive
are listed.
If there is more than one file with the same name (say, `\|\c
.B fie\c
\|') in
an archive (say `\|\c
.B b.a\c
\|'), `\|\c
.B ar t b.a fie\c
\|' will list only the
first instance; to see them all, you must ask for a complete
listing\(em\&in our example, `\|\c
.B ar t b.a\c
\|'.
.TP
.B x
\c
.I Extract\c
\& members (named \c
.I files\c
\&) from the archive. You can
use the `\|\c
.B v\c
\|' modifier with this operation, to request that
\c
.B ar\c
\& list each name as it extracts it.
If you do not specify any \c
.I files\c
\&, all files in the archive
are extracted.
.PP
A number of modifiers (\c
.I mod\c
\&) may immediately follow the \c
.I p\c
\&
keyletter, to specify variations on an operation's behavior:
.TP
.B a
Add new files \c
.I after\c
\& an existing member of the
archive. If you use the modifier \c
.B a\c
\&, the name of an existing archive
member must be present as the \c
.I membername\c
\& argument, before the
\c
.I archive\c
\& specification.
.TP
.B b
Add new files \c
.I before\c
\& an existing member of the
archive. If you use the modifier \c
.B b\c
\&, the name of an existing archive
member must be present as the \c
.I membername\c
\& argument, before the
\c
.I archive\c
\& specification. (same as `\|\c
.B i\c
\|').
.TP
.B c
\c
.I Create\c
\& the archive. The specified \c
.I archive\c
\& is always
created if it didn't 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.
.TP
.B f
Truncate names in the archive.
.B ar
will normally permit file names of any length. This will cause it to
create archives which are not compatible with the native
.B ar
program on some systems. If this is a concern, the
.B f
modifier may be used to truncate file names when putting them in the
archive.
.TP
.B i
Insert new files \c
.I before\c
\& an existing member of the
archive. If you use the modifier \c
.B i\c
\&, the name of an existing archive
member must be present as the \c
.I membername\c
\& argument, before the
\c
.I archive\c
\& specification. (same as `\|\c
.B b\c
\|').
.TP
.B l
This modifier is accepted but not used.
.TP
.B o
Preserve the \c
.I original\c
\& dates of members when extracting them. If
you do not specify this modifier, files extracted from the archive
will be stamped with the time of extraction.
.TP
.B 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 `\|\c
.B ar s\c
\|' on an
archive is equivalent to running `\|\c
.B ranlib\c
\|' on it.
.TP
.B 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
`\|\c
.B S\c
\|' modifier on the last execution of `\|\c
.B ar\c
\|', or you must run `\|\c
.B ranlib\c
\|' on the archive.
.TP
.B u
Normally, \c
.B ar r\c
\&.\|.\|. inserts all files
listed into the archive. If you would like to insert \c
.I only\c
\& those
of the files you list that are newer than existing members of the same
names, use this modifier. The `\|\c
.B u\c
\|' modifier is allowed only for the
operation `\|\c
.B r\c
\|' (replace). In particular, the combination `\|\c
.B qu\c
\|' is
not allowed, since checking the timestamps would lose any speed
advantage from the operation `\|\c
.B q\c
\|'.
.TP
.B v
This modifier requests the \c
.I verbose\c
\& version of an operation. Many
operations display additional information, such as filenames processed,
when the modifier `\|\c
.B v\c
\|' is appended.
.TP
.B V
This modifier shows the version number of
.BR ar .
.PP
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
, Roland H. Pesch (October 1991).
.BR nm ( 1 )\c
\&,
.BR ranlib ( 1 )\c
\&.
.SH COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,302 @@
.\" Copyright (c) 1991, 1992, 1996, 1997, 1998 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH as 1 "29 March 1996" "cygnus support" "GNU Development Tools"
.SH NAME
GNU as \- the portable GNU assembler.
.SH SYNOPSIS
.na
.B as
.RB "[\|" \-a "[\|" dhlns "\|]" \c
\&\[\|\=\c
.I file\c
\&\|]\|]
.RB "[\|" \-D "\|]"
.RB "[\|" \-\-defsym\ SYM=VAL "\|]"
.RB "[\|" \-f "\|]"
.RB "[\|" \-\-gstabs "\|]"
.RB "[\|" \-I
.I path\c
\&\|]
.RB "[\|" \-K "\|]"
.RB "[\|" \-L "\|]"
.RB "[\|" \-M\ |\ \-\-mri "\|]"
.RB "[\|" \-o
.I objfile\c
\&\|]
.RB "[\|" \-R "\|]"
.RB "[\|" \-\-traditional\-format "\|]"
.RB "[\|" \-v "\|]"
.RB "[\|" \-w "\|]"
.RB "[\|" \-\^\- "\ |\ " \c
.I files\c
\&\|.\|.\|.\|]
.I i960-only options:
.br
.RB "[\|" \-ACA "\||\|" \-ACA_A "\||\|" \-ACB\c
.RB "\||\|" \-ACC "\||\|" \-AKA "\||\|" \-AKB\c
.RB "\||\|" \-AKC "\||\|" \-AMC "\|]"
.RB "[\|" \-b "\|]"
.RB "[\|" \-no-relax "\|]"
.I m680x0-only options:
.br
.RB "[\|" \-l "\|]"
.RB "[\|" \-mc68000 "\||\|" \-mc68010 "\||\|" \-mc68020 "\|]"
.ad b
.SH DESCRIPTION
GNU \c
.B as\c
\& is really a family of assemblers.
If you use (or have used) the GNU assembler on one architecture, you
should find a fairly similar environment when you use it on another
architecture. Each version has much in common with the others,
including object file formats, most assembler directives (often called
\c
.I pseudo-ops)\c
\& and assembler syntax.
For information on the syntax and pseudo-ops used by GNU \c
.B as\c
\&, see `\|\c
.B as\c
\|' entry in \c
.B info \c
(or the manual \c
.I
.I
Using as: The GNU Assembler\c
\&).
\c
.B as\c
\& is primarily intended to assemble the output of the GNU C
compiler \c
.B gcc\c
\& for use by the linker \c
.B ld\c
\&. Nevertheless,
we've tried to make \c
.B as\c
\& assemble correctly everything that the native
assembler would.
This doesn't mean \c
.B as\c
\& always uses the same syntax as another
assembler for the same architecture; for example, we know of several
incompatible versions of 680x0 assembly language syntax.
Each time you run \c
.B as\c
\& it assembles exactly one source
program. The source program is made up of one or more files.
(The standard input is also a file.)
If \c
.B as\c
\& is given no file names it attempts to read one input file
from the \c
.B as\c
\& standard input, which is normally your terminal. You
may have to type \c
.B ctl-D\c
\& to tell \c
.B as\c
\& there is no more program
to assemble. Use `\|\c
.B \-\^\-\c
\|' if you need to explicitly name the standard input file
in your command line.
.B as\c
\& may write warnings and error messages to the standard error
file (usually your terminal). This should not happen when \c
.B as\c
\& is
run automatically by a compiler. Warnings report an assumption made so
that \c
.B as\c
\& could keep assembling a flawed program; errors report a
grave problem that stops the assembly.
.SH OPTIONS
.TP
.BR \-a
Turn on assembly listings. There are various suboptions.
.B d
omits debugging directives.
.B h
includes the high level source code; this is only available if the
source file can be found, and the code was compiled with
.B \-g.
.B l
includes an assembly listing.
.B n
omits forms processing.
.B s
includes a symbol listing.
.B =
.I file
sets the listing file name; this must be the last suboption.
The default suboptions are
.B hls.
.TP
.B \-D
This option is accepted only for script compatibility with calls to
other assemblers; it has no effect on \c
.B as\c
\&.
.TP
.B \-\-defsym SYM=VALUE
Define the symbol SYM to be VALUE before assembling the input file.
VALUE must be an integer constant. As in C, a leading 0x indicates a
hexadecimal value, and a leading 0 indicates an octal value.
.TP
.B \-f
``fast''--skip preprocessing (assume source is compiler output).
.TP
.BI "\-I\ " path
Add
.I path
to the search list for
.B .include
directives.
.TP
.B \-\-gstabs
Generate stabs debugging information for each assembler line. This
may help debugging assembler code, if the debugger can handle it.
.TP
.B \-K
Issue warnings when difference tables altered for long displacements.
.TP
.B \-L
Keep (in symbol table) local symbols, starting with `\|\c
.B L\c
\|'
.TP
.B \-M, \-\-mri
Assemble in MRI compatibility mode.
.TP
.BI "\-o\ " objfile
Name the object-file output from \c
.B as
.TP
.B \-R
Fold data section into text section
.TP
.B \-\-traditional\-format
Use same format as native assembler, when possible.
.TP
.B \-v
Announce \c
.B as\c
\& version
.TP
.B \-W
Suppress warning messages
.TP
.IR "\-\^\-" "\ |\ " "files\|.\|.\|."
Source files to assemble, or standard input (\c
.BR "\-\^\-" ")"
.TP
.BI \-A var
.I
(When configured for Intel 960.)
Specify which variant of the 960 architecture is the target.
.TP
.B \-b
.I
(When configured for Intel 960.)
Add code to collect statistics about branches taken.
.TP
.B \-no-relax
.I
(When configured for Intel 960.)
Do not alter compare-and-branch instructions for long displacements;
error if necessary.
.TP
.B \-l
.I
(When configured for Motorola 68000).
.br
Shorten references to undefined symbols, to one word instead of two.
.TP
.BR "\-mc68000" "\||\|" "\-mc68010" "\||\|" "\-mc68020"
.I
(When configured for Motorola 68000).
.br
Specify what processor in the 68000 family is the target (default 68020)
.PP
Options may be in any order, and may be
before, after, or between file names. The order of file names is
significant.
`\|\c
.B \-\^\-\c
\|' (two hyphens) by itself names the standard input file
explicitly, as one of the files for \c
.B as\c
\& to assemble.
Except for `\|\c
.B \-\^\-\c
\|' any command line argument that begins with a
hyphen (`\|\c
.B \-\c
\|') is an option. Each option changes the behavior of
\c
.B as\c
\&. No option changes the way another option works. An
option is a `\|\c
.B \-\c
\|' followed by one or more letters; the case of
the letter is important. All options are optional.
The `\|\c
.B \-o\c
\|' option expects exactly one file name to follow. The file
name may either immediately follow the option's letter (compatible
with older assemblers) or it may be the next command argument (GNU
standard).
These two command lines are equivalent:
.br
.B
as\ \ \-o\ \ my\-object\-file.o\ \ mumble.s
.br
.B
as\ \ \-omy\-object\-file.o\ \ mumble.s
.SH "SEE ALSO"
.RB "`\|" as "\|'"
entry in
.B
info\c
\&;
.I
Using as: The GNU Assembler\c
\&;
.BR gcc "(" 1 "),"
.BR ld "(" 1 ")."
.SH COPYING
Copyright (c) 1991, 1992 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,114 @@
.\" Copyright (c) 1991 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH c++filt 1 "June 1993" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
c++filt \- demangle C++ symbols
.SH SYNOPSIS
.hy 0
.na
.TP
.B c++filt
.RB "[\|" \-_ | \-\-strip-underscores "\|]"
.RB "[\|" "\-s {gnu,lucid,arm} " | " \-\-format={gnu,lucid,arm}" "\|]"
.RB "[\|" \-\-help "\|]"
.RB "[\|" \-\-version "\|]"
.RB "[\|" symbol "...\|]"
.SH DESCRIPTION
The C++ language provides function overloading, which means that you can
write many functions with the same name (providing each takes parameters
of different types). All C++ function names are encoded into a
low-level assembly label (this process is known as
.I mangling\c
). The
.B c++filt
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
.B c++filt
to decipher individual symbols by specifying these symbols on the
command line.
.PP
If no
.B symbol
arguments are given,
.B c++filt
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
.TP
.B \-_
.TP
.B \-\-strip\-underscores
On some systems, both the C and C++ compilers put an
underscore in front of every name. For example, the C name
.B foo
gets the low-level name
.BR _foo .
This option removes the leading underscore.
.TP
.B "\-s {gnu,lucid,arm}"
.TP
.B \-\-format={gnu,lucid,arm}
GNU
.B nm
can decode three different methods of mangling, used by different C++
compilers. This option selects which method it uses: the one used by
the GNU compiler, the one used by the Lucid compiler, or the one
specified by the C++ Annotated Reference Manual. The default is the
GNU style.
.TP
.B \-\-help
Print a summary of the options to
.B c++filt
and exit.
.TP
.B \-\-version
Print the version number of
.B c++filt
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (June 1993).
.SH COPYING
Copyright (c) 1993 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,110 @@
.\" Copyright (c) 1991, 1996 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH nlmconv 1 "March 1996" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
nlmconv \- converts object code into an NLM
.SH SYNOPSIS
.hy 0
.na
.TP
.B nlmconv
.RB "[\|" \-I\ \fIbfdname\fB\ |\ \-\-input\-target=\fIbfdname\fR "\|]"
.RB "[\|" \-O\ \fIbfdname\fB\ |\ \-\-output\-target=\fIbfdname\fR "\|]"
.RB "[\|" \-T\ \fIheaderfile\fB\ |\ \-\-header\-file=\fIheaderfile\fR "\|]"
.RB "[\|" \-V\ |\ \-\-version\fR "\|]"
.RB "[\|" \-\-help\fR "\|]"
.B infile
.B outfile
.SH DESCRIPTION
.B nlmconv
converts the relocatable object file
.B infile
into the NetWare Loadable Module
.BR outfile ,
optionally reading
.I headerfile
for NLM header information. For instructions on writing the NLM
command file language used in header files, see
.IR "The NetWare Tool Maker Specification Manual" ,
available from Novell, Inc.
.B nlmconv
currently works with i386 object files in
.BR COFF ,
.BR ELF ,
or
.B a.out
format, and with SPARC object files in
.B ELF
or
.B a.out
format.
.br
.B nlmconv
uses the GNU Binary File Descriptor library to read
.IR infile .
.SH OPTIONS
.TP
.B \-I \fIbfdname\fR, \fB\-\-input\-target=\fIbfdname
Consider the source file's object format to be
.IR bfdname ,
rather than attempting to deduce it.
.TP
.B \-O \fIbfdname\fR, \fB\-\-output\-target=\fIbfdname
Write the output file using the object format
.IR bfdname .
.B nlmconv
infers the output format based on the input format, e.g. for an i386
input file the output format is
.IR nlm32\-i386 .
.TP
.B \-T \fIheaderfile\fR, \fB\-\-header\-file=\fIheaderfile
Reads
.I headerfile
for NLM header information. For instructions on writing the NLM
command file language used in header files, see
.IR "The NetWare Tool Maker Specification Manual" ,
available from Novell, Inc.
.TP
.B \-V\fR, \fB\-\-version
Show the version number of
.B nlmconv
and exit.
.TP
.B \-h\fR, \fB\-\-help
Show a summary of the options to
.B nlmconv
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (June 1993).
.SH COPYING
Copyright (c) 1993 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,230 @@
.\" Copyright (c) 1991 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH nm 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
nm \- list symbols from object files.
.SH SYNOPSIS
.hy 0
.na
.TP
.B nm
.RB "[\|" \-a | \-\-debug\-syms "\|]"
.RB "[\|" \-g | \-\-extern\-only "\|]"
.RB "[\|" \-B "\|]"
.RB "[\|" \-C | \-\-demangle "\|]"
.RB "[\|" \-D | \-\-dynamic "\|]"
.RB "[\|" \-s | \-\-print\-armap "\|]"
.RB "[\|" \-o | \-\-print\-file\-name "\|]"
.RB "[\|" \-n | \-\-numeric\-sort "\|]"
.RB "[\|" \-p | \-\-no\-sort "\|]"
.RB "[\|" \-r | \-\-reverse\-sort "\|]"
.RB "[\|" \-\-size\-sort "\|]"
.RB "[\|" \-u | \-\-undefined\-only "\|]"
.RB "[\|" \-l | \-\-line\-numbers "\|]"
.RB "[\|" \-\-help "\|]"
.RB "[\|" \-\-version "\|]"
.RB "[\|" "\-t \fIradix" | \-\-radix=\fIradix "\|]"
.RB "[\|" \-P | --portability "\|]"
.RB "[\|" "\-f \fIformat" | \-\-format=\fIformat "\|]"
.RB "[\|" "\-\-target=\fIbfdname" "\|]"
.RB "[\|" \c
.I objfile\c
\&.\|.\|.\|]
.ad b
.hy 1
.SH DESCRIPTION
GNU \c
.B nm\c
\& lists the symbols from object files \c
.I objfile\c
\&. If no object files are given as arguments, \c
.B nm\c
\& assumes `\|\c
.B a.out\c
\|'.
.SH OPTIONS
The long and short forms of options, shown here as alternatives, are
equivalent.
.TP
.B \-A
.TP
.B \-o
.TP
.B \-\-print\-file\-name
Precede each symbol by the name of the input file where it was found,
rather than identifying the input file once only before all of its
symbols.
.TP
.B \-a
.TP
.B \-\-debug\-syms
Display debugger-only symbols; normally these are not listed.
.TP
.B \-B
The same as
.B \-\-format=bsd
(for compatibility with the MIPS \fBnm\fP).
.TP
.B \-C
.TP
.B \-\-demangle
Decode (\fIdemangle\fP) low-level symbol names into user-level names.
Besides removing any initial underscore prepended by the system, this
makes C++ function names readable.
.TP
.B \-D
.TP
.B \-\-dynamic
Display the dynamic symbols rather than the normal symbols. This is
only meaningful for dynamic objects, such as certain types of shared
libraries.
.TP
.B "\-f \fIformat"
Use the output format \fIformat\fP, which can be ``bsd'',
``sysv'', or ``posix''. The default is ``bsd''.
Only the first character of \fIformat\fP is significant; it can be
either upper or lower case.
.TP
.B \-g
.TP
.B \-\-extern\-only
Display only external symbols.
.TP
.B \-n
.TP
.B \-v
.TP
.B \-\-numeric\-sort
Sort symbols numerically by their addresses, not alphabetically by their
names.
.TP
.B \-p
.TP
.B \-\-no\-sort
Don't bother to sort the symbols in any order; just print them in the
order encountered.
.TP
.B \-P
.TP
.B \-\-portability
Use the POSIX.2 standard output format instead of the default format.
Equivalent to ``\-f posix''.
.TP
.B \-s
.TP
.B \-\-print\-armap
When listing symbols from archive members, include the index: a mapping
(stored in the archive by \c
.B ar\c
\& or \c
.B ranlib\c
\&) of what modules
contain definitions for what names.
.TP
.B \-r
.TP
.B \-\-reverse\-sort
Reverse the sense of the sort (whether numeric or alphabetic); let the
last come first.
.TP
.B \-\-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.
.TP
.B "\-t \fIradix"
.TP
.B "\-\-radix=\fIradix"
Use \fIradix\fP as the radix for printing the symbol values. It must be
``d'' for decimal, ``o'' for octal, or ``x'' for hexadecimal.
.TP
.BI "\-\-target=" "bfdname"
Specify an object code format other than your system's default format.
See
.BR objdump ( 1 ),
for information on listing available formats.
.TP
.B \-u
.TP
.B \-\-undefined\-only
Display only undefined symbols (those external to each object file).
.TP
.B \-l
.TP
.B \-\-line\-numbers
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.
.TP
.B \-V
.TP
.B \-\-version
Show the version number of
.B nm
and exit.
.TP
.B \-\-help
Show a summary of the options to
.B nm
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (October 1991);
.BR ar "(" 1 "),"
.BR objdump ( 1 ),
.BR ranlib "(" 1 ")."
.SH COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,301 @@
.\" Copyright (c) 1991, 93, 94, 95, 96, 1997 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH objcopy 1 "October 1994" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
objcopy \- copy and translate object files
.SH SYNOPSIS
.hy 0
.na
.TP
.B objcopy
.RB "[\|" \-F\ \fIbfdname\fR\ |\ \fB\-\-target=\fIbfdname\fR "\|]"
.RB "[\|" \-I\ \fIbfdname\fR\ |\ \fB\-\-input\-target=\fIbfdname\fR "\|]"
.RB "[\|" \-O\ \fIbfdname\fR\ |\ \fB\-\-output\-target=\fIbfdname\fR "\|]"
.RB "[\|" \-R\ \fIsectionname\fR\ |\ \fB\-\-remove\-section=\fIsectionname\fR "\|]"
.RB "[\|" \-S\fR\ |\ \fB\-\-strip\-all\fR "\|]"
.RB "[\|" \-g\fR\ |\ \fB\-\-strip\-debug\fR "\|]"
.RB "[\|" \-\-strip\-unneeded\fR "\|]"
.RB "[\|" \-K\ \fIsymbolname\fR\ |\ \fB\-\-keep\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-N\ \fIsymbolname\fR\ |\ \fB\-\-strip\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-L\ \fIsymbolname\fR\ |\ \fB\-\-localize\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-W\ \fIsymbolname\fR\ |\ \fB\-\-weaken\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-x\fR\ |\ \fB\-\-discard\-all\fR "\|]"
.RB "[\|" \-X\fR\ |\ \fB\-\-discard\-locals\fR "\|]"
.RB "[\|" \-b\ \fIbyte\fR\ |\ \fB\-\-byte=\fIbyte\fR "\|]"
.RB "[\|" \-i\ \fIinterleave\fR\ |\ \fB\-\-interleave=\fIinterleave\fR "\|]"
.RB "[\|" \-p\fR\ |\ \fB\-\-preserve\-dates\fR "\|]"
.RB "[\|" \-\-debugging "\|]"
.RB "[\|" \-\-gap\-fill=\fIval\fR "\|]"
.RB "[\|" \-\-pad\-to=\fIaddress\fR "\|]"
.RB "[\|" \-\-set\-start=\fIval\fR "\|]"
.RB "[\|" \-\-adjust\-start=\fIincr\fR "\|]"
.RB "[\|" \-\-adjust\-vma=\fIincr\fR "\|]"
.RB "[\|" \-\-adjust\-section\-vma=\fIsection{=,+,-}val\fR "\|]"
.RB "[\|" \-\-adjust\-warnings\fR "\|]"
.RB "[\|" \-\-no\-adjust\-warnings\fR "\|]"
.RB "[\|" \-\-set\-section\-flags=\fIsection=flags\fR "\|]"
.RB "[\|" \-\-add\-section=\fIsectionname=filename\fR "\|]"
.RB "[\|" \-\-change\-leading\-char\fR "\|]"
.RB "[\|" \-\-remove\-leading\-char\fR "\|]"
.RB "[\|" \-\-weaken\fR "\|]"
.RB "[\|" \-v\ |\ \-\-verbose\fR "\|]"
.RB "[\|" \-V\ |\ \-\-version\fR "\|]"
.RB "[\|" \-\-help\fR "\|]"
.B infile
.RB "[\|" outfile\fR "\|]"
.SH DESCRIPTION
The GNU
.B objcopy
utility copies the contents of an object file to another.
.B objcopy
uses the GNU BFD 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
.B objcopy
is controlled by command-line options.
.PP
.B objcopy
creates temporary files to do its translations and deletes them
afterward.
.B objcopy
uses BFD to do all its translation work; it knows about all the
formats BFD knows about, and thus is able to recognize most formats
without being told explicitly.
.PP
.B objcopy
can be used to generate S-records by using an output target of
.B srec
(e.g., use
.B -O srec).
.PP
.B objcopy
can be used to generate a raw binary file by using an output target of
.B binary
(e.g., use
.B -O binary).
When
.B objcopy
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
virtual 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
.B -S
to remove sections containing debugging information. In some cases
.B -R
will be useful to remove sections which contain information which is
not needed by the binary file.
.PP
.I infile
and
.I outfile
are the source and output files respectively. If you do not specify
.IR outfile ,
.B objcopy
creates a temporary file and destructively renames the result with the
name of the input file.
.SH OPTIONS
.TP
.B \-I \fIbfdname\fR, \fB\-\-input\-target=\fIbfdname
Consider the source file's object format to be
.IR bfdname ,
rather than attempting to deduce it.
.TP
.B \-O \fIbfdname\fR, \fB\-\-output\-target=\fIbfdname
Write the output file using the object format
.IR bfdname .
.TP
.B \-F \fIbfdname\fR, \fB\-\-target=\fIbfdname
Use
.I bfdname
as the object format for both the input and the output file; i.e.
simply transfer data from source to destination with no translation.
.TP
.B \-R \fIsectionname\fR, \fB\-\-remove-section=\fIsectionname
Remove the named section from the file. This option may be given more
than once. Note that using this option inappropriately may make the
output file unusable.
.TP
.B \-S\fR, \fB\-\-strip\-all
Do not copy relocation and symbol information from the source file.
.TP
.B \-g\fR, \fB\-\-strip\-debug
Do not copy debugging symbols from the source file.
.TP
.B \-\-strip\-unneeded
Strip all symbols that are not needed for relocation processing.
.TP
.B \-K \fIsymbolname\fR, \fB\-\-keep\-symbol=\fIsymbolname
Copy only symbol \fIsymbolname\fP from the source file. This option
may be given more than once.
.TP
.B \-N \fIsymbolname\fR, \fB\-\-strip\-symbol=\fIsymbolname
Do not copy symbol \fIsymbolname\fP from the source file. This option
may be given more than once.
.TP
.B \-L \fIsymbolname\fR, \fB\-\-localize\-symbol=\fIsymbolname
Make symbol \fIsymbolname\fP local to the file, so that it is not
visible externally. This option may be given more than once.
.TP
.B \-W \fIsymbolname\fR, \fB\-\-weaken\-symbol=\fIsymbolname
Make symbol \fIsymbolname\fP weak. This option may be given more than once.
.TP
.B \-x\fR, \fB \-\-discard\-all
Do not copy non-global symbols from the source file.
.TP
.B \-X\fR, \fB\-\-discard\-locals
Do not copy compiler-generated local symbols. (These usually start
with "L" or ".").
.TP
.B \-b \fIbyte\fR, \fB\-\-byte=\fIbyte
Keep only every \fIbyte\fPth byte of the input file (header data is
not affected). \fIbyte\fP can be in the range from 0 to the
interleave-1. This option is useful for creating files to program
ROMs. It is typically used with an srec output target.
.TP
.B \-i \fIinterleave\fR, \fB\-\-interleave=\fIinterleave
Only copy one out of every \fIinterleave\fP bytes. Which one to copy is
selected by the \fB\-b\fP or \fB\-\-byte\fP option. The default is 4.
The interleave is ignored if neither \fB\-b\fP nor \fB\-\-byte\fP is given.
.TP
.B \-p\fR, \fB\-\-preserve\-dates
Set the access and modification dates of the output file to be the same
as those of the input file.
.TP
.B \-\-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.
.TP
.B \-\-gap\-fill=\fIval
Fill gaps between sections with \fIval\fP. This operation applies to
the \fIload address\fP (LMA) 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\fP.
.TP
.B \-\-pad\-to=\fIaddress
Pad the output file up to the load address \fIaddress\fP. 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\fP (default
zero).
.TP
.B \fB\-\-set\-start=\fIval
Set the start address of the new file to \fIval\fP. Not all object
file formats support setting the start address.
.TP
.B \fB\-\-adjust\-start=\fIincr
Adjust the start address by adding \fIincr\fP. Not all object file
formats support setting the start address.
.TP
.B \fB\-\-adjust\-vma=\fIincr
Adjust the address of all sections, as well as the start address, by
adding \fIincr\fP. 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.
.TP
.B \fB\-\-adjust\-section\-vma=\fIsection{=,+,-}val
Set or adjust the address of the named \fIsection\fP. If \fI=\fP is
used, the section address is set to \fIval\fP. Otherwise, \fIval\fP
is added to or subtracted from the section address. See the comments
under \fB\-\-adjust\-vma\fP, above. If \fIsection\fP does not exist
in the input file, a warning will be issued, unless
\fB\-\-no\-adjust\-warnings\fP is used.
.TP
.B \fB\-\-adjust\-warnings
If \fB\-\-adjust\-section\-vma\fP is used, and the named section does
not exist, issue a warning. This is the default.
.TP
.B \fB\-\-no\-adjust\-warnings
Do not issue a warning if \fB\-\-adjust\-section\-vma\fP is used, even
if the named section does not exist.
.TP
.B \fB\-\-set\-section\-flags=\fIsection=flags
Set the flags for the named section. The \fIflags\fP argument is a
comma separated string of flag names. The recognized names are
\fIalloc\fP, \fIload\fP, \fIreadonly\fP, \fIcode\fP, \fIdata\fP, and
\fIrom\fP. Not all flags are meaningful for all object file
formats.
.TP
.B \fB\-\-add\-section=\fIsectionname=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.
.TP
.B \-\-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
.B objcopy
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.
.TP
.B \-\-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
@code{--change-leading-char} because it always changes the symbol name
when appropriate, regardless of the object file format of the output
.TP
.B \-\-weaken
Change all global symbols in the file to be weak.
.TP
.B \-v\fR, \fB\-\-verbose
Verbose output: list all object files modified. In the case of
archives, "\fBobjcopy \-V\fR" lists all members of the archive.
.TP
.B \-V\fR, \fB\-\-version
Show the version number of
.B objcopy
and exit.
.TP
.B \-\-help
Show a summary of the options to
.B objcopy
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (June 1993).
.SH COPYING
Copyright (c) 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,402 @@
.\" Copyright (c) 1991, 1996, 1997 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH objdump 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
objdump \- display information from object files.
.SH SYNOPSIS
.hy 0
.na
.TP
.B objdump
.RB "[\|" \-a | \-\-archive\-headers "\|]"
.RB "[\|" "\-b\ "\c
.I bfdname\c
.RB " | " "\-\-target="\c
.I bfdname\c
\&\|]
.RB "[\|" \-C | \-\-demangle "\|]"
.RB "[\|" \-\-debugging "\|]"
.RB "[\|" \-d | \-\-disassemble "\|]"
.RB "[\|" \-D | \-\-disassemble-all "\|]"
.RB "[\|" \-\-disassemble\-zeroes "\|]"
.RB "[\|" \-EB | \-EL | \-\-endian=\c
.I {big|little}\c
\&\|]
.RB "[\|" \-f | \-\-file\-headers "\|]"
.RB "[\|" \-h | \-\-section\-headers
.RB "| " \-\-headers "\|]"
.RB "[\|" \-i | \-\-info "\|]"
.RB "[\|" "\-j\ "\c
.I section\c
.RB " | " "\-\-section="\c
.I section\c
\&\|]
.RB "[\|" \-l | \-\-line\-numbers "\|]"
.RB "[\|" "\-m\ "\c
.I machine\c
.RB " | " "\-\-architecture="\c
.I machine\c
\&\|]
.RB "[\|" \-\-prefix\-addresses "\|]"
.RB "[\|" \-r | \-\-reloc "\|]"
.RB "[\|" \-R | \-\-dynamic\-reloc "\|]"
.RB "[\|" \-s | \-\-full\-contents "\|]"
.RB "[\|" \-S | \-\-source "\|]"
.RB "[\|" \-\-[no\-]show\-raw\-insn "\|]"
.RB "[\|" \-\-stabs "\|]"
.RB "[\|" \-t | \-\-syms "\|]"
.RB "[\|" \-T | \-\-dynamic\-syms "\|]"
.RB "[\|" \-x | \-\-all\-headers "\|]"
.RB "[\|" "\-\-start\-address="\c
.I address\c
\&\|]
.RB "[\|" "\-\-stop\-address="\c
.I address\c
\&\|]
.RB "[\|" "\-\-adjust\-vma="\c
.I offset\c
\&\|]
.RB "[\|" \-\-version "\|]"
.RB "[\|" \-\-help "\|]"
.I objfile\c
\&.\|.\|.
.ad b
.hy 1
.SH DESCRIPTION
\c
.B objdump\c
\& 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
.IR "objfile" .\|.\|.
are the object files to be examined. When you specify archives,
\c
.B objdump\c
\& shows information on each of the member object files.
.SH OPTIONS
Where long and short forms of an option are shown together, they are
equivalent. At least one option besides
.B \-l
(\fB\-\-line\-numbers\fP) must be given.
.TP
.B \-a
.TP
.B \-\-archive\-headers
If any files from \c
.I objfile\c
\& are archives, display the archive
header information (in a format similar to `\|\c
.B ls \-l\c
\|'). Besides the
information you could list with `\|\c
.B ar tv\c
\|', `\|\c
.B objdump \-a\c
\|' shows
the object file format of each archive member.
.TP
.BI "\-\-adjust\-vma=" "offset"
When dumping information, first add
.I offset
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.
.TP
.BI "\-b " "bfdname"\c
.TP
.BI "\-\-target=" "bfdname"
Specify the object-code format for the object files to be
\c
.I bfdname\c
\&. This may not be necessary; \c
.I objdump\c
\& can
automatically recognize many formats. For example,
.sp
.br
objdump\ \-b\ oasys\ \-m\ vax\ \-h\ fu.o
.br
.sp
display summary information from the section headers (`\|\c
.B \-h\c
\|') of
`\|\c
.B fu.o\c
\|', which is explicitly identified (`\|\c
.B \-m\c
\|') as a Vax object
file in the format produced by Oasys compilers. You can list the
formats available with the `\|\c
.B \-i\c
\|' option.
.TP
.B \-C
.TP
.B \-\-demangle
Decode (\fIdemangle\fP) low-level symbol names into user-level names.
Besides removing any initial underscore prepended by the system, this
makes C++ function names readable.
.TP
.B \-\-debugging
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.
.TP
.B \-d
.TP
.B \-\-disassemble
Display the assembler mnemonics for the machine
instructions from \c
.I objfile\c
\&.
This option only disassembles those sections which are
expected to contain instructions.
.TP
.B \-D
.TP
.B \-\-disassemble-all
Like \fB\-d\fP, but disassemble the contents of all sections, not just
those expected to contain instructions.
.TP
.B \-\-prefix\-addresses
When disassembling, print the complete address on each line. This is
the older disassembly format.
.TP
.B \-\-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.
.TP
.B \-EB
.TP
.B \-EL
.TP
.BI "\-\-endian=" "{big|little}"
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.
.TP
.B \-f
.TP
.B \-\-file\-headers
Display summary information from the overall header of
each file in \c
.I objfile\c
\&.
.TP
.B \-h
.TP
.B \-\-section\-headers
.TP
.B \-\-headers
Display summary information from the section headers of the
object file.
.TP
.B \-\-help
Print a summary of the options to
.B objdump
and exit.
.TP
.B \-i
.TP
.B \-\-info
Display a list showing all architectures and object formats available
for specification with \c
.B \-b\c
\& or \c
.B \-m\c
\&.
.TP
.BI "\-j " "name"\c
.TP
.BI "\-\-section=" "name"
Display information only for section \c
.I name\c
\&.
.TP
.B \-l
.TP
.B \-\-line\-numbers
Label the display (using debugging information) with the filename
and source line numbers corresponding to the object code shown.
Only useful with \fB\-d\fP, \fB\-D\fP, or \fB\-r\fP.
.TP
.BI "\-m " "machine"\c
.TP
.BI "\-\-architecture=" "machine"
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\fP option.
.TP
.B \-r
.TP
.B \-\-reloc
Print the relocation entries of the file. If used with \fB\-d\fP or
\fB\-d\fP, the relocations are printed interspersed with the
disassembly.
.TP
.B \-R
.TP
.B \-\-dynamic\-reloc
Print the dynamic relocation entries of the file. This is only
meaningful for dynamic objects, such as certain types of shared
libraries.
.TP
.B \-s
.TP
.B \-\-full\-contents
Display the full contents of any sections requested.
.TP
.B \-S
.TP
.B \-\-source
Display source code intermixed with disassembly, if possible. Implies
\fB-d\fP.
.TP
.B \-\-show\-raw\-insn
When disassembling instructions, print the instruction in hex as well as
in symbolic form. This is the default except when
.B \-\-prefix\-addresses
is used.
.TP
.B \-\-no\-show\-raw\-insn
When disassembling instructions, do not print the instruction bytes.
This is the default when
.B \-\-prefix\-addresses
is used.
.TP
.B \-\-stabs
Display the contents of the .stab, .stab.index, and .stab.excl
sections from an ELF file. This is only useful on systems (such as
Solaris 2.0) in which .stab debugging symbol-table entries are carried
in an ELF section. In most other file formats, debugging symbol-table
entries are interleaved with linkage symbols, and are visible in the
\-\-syms output.
.TP
.BI "\-\-start\-address=" "address"
Start displaying data at the specified address. This affects the output
of the
.B \-d\c
,
.B \-r
and
.B \-s
options.
.TP
.BI "\-\-stop\-address=" "address"
Stop displaying data at the specified address. This affects the output
of the
.B \-d\c
,
.B \-r
and
.B \-s
options.
.TP
.B \-t
.TP
.B \-\-syms
Symbol Table. Print the symbol table entries of the file.
This is similar to the information provided by the `\|\c
.B nm\c
\|' program.
.TP
.B \-T
.TP
.B \-\-dynamic\-syms
Dynamic Symbol Table. 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 `\|\c
.B nm\c
\|' program when given the
.B \-D (\-\-dynamic)
option.
.TP
.B \-\-version
Print the version number of
.B objdump
and exit.
.TP
.B \-x
.TP
.B \-\-all\-headers
Display all available header information, including the symbol table and
relocation entries. Using `\|\c
.B \-x\c
\|' is equivalent to specifying all of
`\|\c
.B \-a \-f \-h \-r \-t\c
\|'.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (October 1991);
.BR nm "(" 1 ")."
.SH COPYING
Copyright (c) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,83 @@
.\" Copyright (c) 1991 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH ranlib 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
ranlib \- generate index to archive.
.SH SYNOPSIS
.hy 0
.na
.B ranlib \c
.RB "[\|" \-v | \-V "\|]"
.I archive\c
\&
.ad b
.hy 1
.SH DESCRIPTION
.B ranlib
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
.RB ` "nm \-s" '
or
.RB ` "nm \-\-print-armap" '
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 GNU
.B ranlib
program is another form of GNU
.BR ar ;
running
.B ranlib
is completely equivalent to executing
.RB ` "ar \-s" '.
.SH OPTIONS
.TP
.B \-v
Print the version number of
.B ranlib
and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (October 1991);
.BR ar "(" 1 "),"
.BR nm "(" 1 ")."
.SH COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,161 @@
.\" Copyright (c) 1991 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH size 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
size \- list section sizes and total size.
.SH SYNOPSIS
.hy 0
.na
.TP
.B size
.RB "[\|" \-A \||\| \-B \||\| \c
.BI "\-\-format=" compatibility\c
\&\|]
.RB "[\|" \-\-help "\|]"
.RB "[\|" \-d \||\| \-o \||\| \-x\c
\||\|\c
.BI "\-\-radix=" number\c
\&\|]
.RB "[\|" \c
.BI "\-\-target=" bfdname\c
\&\|]
.RB "[\|" \-V \||\| \-\-version "\|]"
.I objfile\c
\&.\|.\|.
.ad b
.hy 1
.SH DESCRIPTION
The GNU \c
.B size\c
\& utility lists the section sizes\(em\&and the total
size\(em\&for each of the object files
.I objfile
in its argument list.
By default, one line of output is generated for each object file or each
module in an archive.
.SH OPTIONS
.TP
.B \-A
.TP
.B \-B
.TP
.BI "\-\-format " "compatibility"
Using one of these options, you can choose whether the output from GNU
\c
.B size\c
\& resembles output from System V \c
.B size\c
\& (using `\|\c
.B \-A\c
\|',
or `\|\c
.B \-\-format=sysv\c
\|'), or Berkeley \c
.B size\c
\& (using `\|\c
.B \-B\c
\|', or
`\|\c
.B \-\-format=berkeley\c
\|'). The default is the one-line format similar to
Berkeley's.
.TP
.B \-\-help
Show a summary of acceptable arguments and options.
.TP
.B \-d
.TP
.B \-o
.TP
.B \-x
.TP
.BI "\-\-radix " "number"
Using one of these options, you can control whether the size of each
section is given in decimal (`\|\c
.B \-d\c
\|', or `\|\c
.B \-\-radix 10\c
\|'); octal
(`\|\c
.B \-o\c
\|', or `\|\c
.B \-\-radix 8\c
\|'); or hexadecimal (`\|\c
.B \-x\c
\|', or
`\|\c
.B \-\-radix 16\c
\|'). In `\|\c
.B \-\-radix \c
.I number\c
\&\c
\|', only the three
values (8, 10, 16) are supported. The total size is always given in two
radices; decimal and hexadecimal for `\|\c
.B \-d\c
\|' or `\|\c
.B \-x\c
\|' output, or
octal and hexadecimal if you're using `\|\c
.B \-o\c
\|'.
.TP
.BI "\-\-target " "bfdname"
You can specify a particular object-code format for \c
.I objfile\c
\& as
\c
.I bfdname\c
\&. This may not be necessary; \c
.I size\c
\& can
automatically recognize many formats. See
.BR objdump ( 1 )
for information
on listing available formats.
.TP
.B \-V
.TP
.B \-\-version
Display version number information on \c
.B size\c
\& itself.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.BR info ;
.IR "The GNU Binary Utilities" ,
Roland H. Pesch (October 1991);
.BR ar "(" 1 "),"
.BR objdump ( 1 ).
.SH COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,151 @@
.\" Copyright (c) 1993 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH strings 1 "25 June 1993" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
strings \- print the strings of printable characters in files
.SH SYNOPSIS
.hy 0
.na
.TP
.B strings
.RB "[\|" \-a | \-\c
.RB | \-\-all "\|]"
.RB "[\|" \-f | \-\-print\-file\-name "\|]"
.RB "[\|" \-o "\|]"
.RB "[\|" \-\-help "\|]"
.RB "[\|" \-v | \-\-version "\|]"
.RB "[\|" \-n
.I min\-len\c
.RI | \-min\-len\c
.RB | "\-\-bytes="\c
.I min\-len\c
\&\|]
.RB "[\|" \-t
.I {o,x,d}\c
.RB "[\|" "\-\-target=\fIbfdname" "\|]"
.RB | "\-\-radix="\c
.I {o,x,d}\c
\&\|]
.I file\c
.ad b
.hy 1
.SH DESCRIPTION
For each
.I file
given, GNU \c
.B strings
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
.B strings
is mainly useful for determining the contents of non-text files.
.SH OPTIONS
The long and short forms of options, shown here as alternatives, are
equivalent.
.TP
.B \-a
.TP
.B \-\-all
.TP
.B \-
Do not scan only the initialized and loaded sections of object files;
scan the whole files.
.TP
.B \-f
.TP
.B \-\-print\-file\-name
Print the name of the file before each string.
.TP
.B \-\-help
Print a summary of the options to
.B strings
on the standard output and exit.
.TP
.B \-v
.TP
.B \-\-version
Print the version number
of
.B strings
on the standard output and exit.
.TP
.B "\-n \fImin\-len\fP"
.TP
.B "\-\fImin\-len\fP"
.TP
.B "\-bytes=\fImin\-len\fP"
Print sequences of characters that are at least
.I min\-len
characters long, instead of the default 4.
.TP
.BR "\-t " {o,x,d}
.TP
.BR "\-\-radix=" {o,x,d}
Print the offset within the file before each string. The single
character argument specifies the radix of the offset\(emoctal,
hexadecimal, or decimal.
.TP
.BI "\-\-target=" "bfdname"
Specify an object code format other than your system's default format.
See
.BR objdump ( 1 ),
for information on listing available formats.
.TP
.B \-o
Like
.BR "\-t o" .
.PP
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.B
info\c
\&;
.I
The GNU Binary Utilities\c
\&, Roland H. Pesch (October 1991);
.BR ar ( 1 ),
.BR nm ( 1 ),
.BR objdump ( 1 ),
.BR ranlib ( 1 ).
.SH COPYING
Copyright (c) 1993 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View File

@ -0,0 +1,185 @@
.\" Copyright (c) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH strip 1 "5 November 1991" "cygnus support" "GNU Development Tools"
.de BP
.sp
.ti \-.2i
\(**
..
.SH NAME
strip \- Discard symbols from object files.
.SH SYNOPSIS
.hy 0
.na
.TP
.B strip
.RB "[\|" \-F\ \fIbfdname\fR\ |\ \fB\-\-target=\fIbfdname\fP "\|]"
.RB "[\|" \-I\ \fIbfdname\fR\ |\ \fB\-\-input\-target=\fIbfdname\fP "\|]"
.RB "[\|" \-O\ \fIbfdname\fR\ |\ \fB\-\-output\-target=\fIbfdname\fP "\|]"
.RB "[\|" \-R\ \fIsectionname\fR\ |\ \fB\-\-remove\-section=\fIsectionname\fP "\|]"
.RB "[\|" \-s\fR\ |\ \fB\-\-strip\-all "\|]"
.RB "[\|" \-S\fR\ |\ \fB\-g\fR\ |\ \fB\-\-strip\-debug "\|]"
.RB "[\|" \-\-strip\-unneeded\fR "\|]"
.RB "[\|" \-x\fR\ |\ \fB\-\-discard\-all "\|]"
.RB "[\|" \-X\fR\ |\ \fB\-\-discard\-locals "\|]"
.RB "[\|" \-K\ \fIsymbolname\fR\ |\ \fB\-\-keep\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-N\ \fIsymbolname\fR\ |\ \fB\-\-strip\-symbol=\fIsymbolname\fR "\|]"
.RB "[\|" \-o\ \fIfile\f\R "\|]"
.RB "[\|" \-p\fR\ |\ \fB\-\-preserve\-dates "\|]"
.RB "[\|" \-v\fR\ |\ \fB\-\-verbose "\|]"
.RB "[\|" \-V\fR\ |\ \fB\-\-version "\|]"
.RB "[\|" \-V\fR\ |\ \fB\-\-help "\|]"
.I objfile\c
\&.\|.\|.
.SH DESCRIPTION
GNU
.B strip
discards all symbols from the object files
.IR objfile .
The list of object files may include archives.
At least one object file must be given.
.P
.B strip
modifies the files named in its argument,
rather than writing modified copies under different names.
.SH OPTIONS
.TP
.B "\-F \fIbfdname"
.TP
.B "\-\-target=\fIbfdname"
Treat the original \fIobjfile\fP as a file with the object
code format \fIbfdname\fP, and rewrite it in the same format.
.TP
.B \-\-help
Show a summary of the options to
.B strip
and exit.
.TP
.B "\-I \fIbfdname
.TP
.B "\-\-input\-target=\fIbfdname"
Treat the original \fIobjfile\fP as a file with the object
code format \fIbfdname\fP.
.TP
.B "\-O \fIbfdname\fP"
.TP
.B "\-\-output\-target=\fIbfdname"
Replace \fIobjfile\fP with a file in the output format \fIbfdname\fP.
.TP
.B "\-R \fIsectionname\fP"
.TP
.B "\-\-remove\-section=\fIsectionname"
Remove the named section from the file. This option may be given more
than once. Note that using this option inappropriately may make the
object file unusable.
.TP
.B \-s
.TP
.B \-\-strip\-all
Remove all symbols.
.TP
.B \-S
.TP
.B \-g
.TP
.B \-\-strip\-debug
Remove debugging symbols only.
.TP
.B \-\-strip\-unneeded
Strip all symbols that are not needed for relocation processing.
.TP
.B \-N \fIsymbolname\fR
.TP
.B \-\-strip\-symbol=\fIsymbolname
Remove symbol \fIsymbolname\fP from the source file. This option
may be given more than once, and may be combined with other strip
options.
.TP
.B \-o \fIfile\fR
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.
.TP
.B \-p
.TP
.B \-\-preserve-dates
Preserve the access and modification dates of the file.
.TP
.B \-x
.TP
.B \-\-discard\-all
Remove non-global symbols.
.TP
.B \-X
.TP
.B \-\-discard\-locals
Remove compiler-generated local symbols.
(These usually start with ``L'' or ``.''.)
.TP
.B \-K \fIsymbolname\fR, \fB\-\-keep\-symbol=\fIsymbolname
Copy only symbol \fIsymbolname\fP from the source file. This option
may be given more than once.
.TP
.B \-N \fIsymbolname\fR, \fB\-\-strip\-symbol=\fIsymbolname
Do not copy symbol \fIsymbolname\fP from the source file. This option
may be given more than once, and may be combined with strip options
other than \fB\-K\fR.
.TP
.B \-v
.TP
.B \-\-verbose
Verbose output: list all object files modified. In the case of
archives,
.B "strip \-V"
lists all members of the archive.
.TP
.B \-V
.TP
.B \-\-version
Show the version number for \fBstrip\fP and exit.
.SH "SEE ALSO"
.RB "`\|" binutils "\|'"
entry in
.BR info ;
.IR "The GNU Binary Utilities" ,
Roland H. Pesch (October 1991).
.SH COPYING
Copyright (c) 1991 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

BIN
oldbinutils/mips/bin/ar Executable file

Binary file not shown.

BIN
oldbinutils/mips/bin/as Executable file

Binary file not shown.

BIN
oldbinutils/mips/bin/ld Executable file

Binary file not shown.

BIN
oldbinutils/mips/bin/nm Executable file

Binary file not shown.

BIN
oldbinutils/mips/bin/ranlib Executable file

Binary file not shown.

BIN
oldbinutils/mips/bin/strip Executable file

Binary file not shown.

View File

@ -0,0 +1,141 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/opt/cross/mips/lib);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x0400000;
.interp : { *(.interp) }
.reginfo : { *(.reginfo) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.text :
{ *(.rel.text) *(.rel.gnu.linkonce.t*) }
.rela.text :
{ *(.rela.text) *(.rela.gnu.linkonce.t*) }
.rel.data :
{ *(.rel.data) *(.rel.gnu.linkonce.d*) }
.rela.data :
{ *(.rela.data) *(.rela.gnu.linkonce.d*) }
.rel.rodata :
{ *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
.rela.rodata :
{ *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.text :
{
_ftext = . ;
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.mips16.fn.*) *(.mips16.call.*)
} =0
_etext = .;
PROVIDE (etext = .);
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN(0x40000) + (. & (0x40000 - 1));
.data :
{
_fdata = . ;
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.ctors :
{
*(.ctors)
}
.dtors :
{
*(.dtors)
}
_gp = ALIGN(16) + 0x7ff0;
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
. = ALIGN(32 / 8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -0,0 +1,141 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/opt/cross/mips/lib);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x0400000;
.interp : { *(.interp) }
.reginfo : { *(.reginfo) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.text :
{ *(.rel.text) *(.rel.gnu.linkonce.t*) }
.rela.text :
{ *(.rela.text) *(.rela.gnu.linkonce.t*) }
.rel.data :
{ *(.rel.data) *(.rel.gnu.linkonce.d*) }
.rela.data :
{ *(.rela.data) *(.rela.gnu.linkonce.d*) }
.rel.rodata :
{ *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
.rela.rodata :
{ *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.text :
{
_ftext = . ;
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.mips16.fn.*) *(.mips16.call.*)
} =0
_etext = .;
PROVIDE (etext = .);
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = .;
.data :
{
_fdata = . ;
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.ctors :
{
*(.ctors)
}
.dtors :
{
*(.dtors)
}
_gp = ALIGN(16) + 0x7ff0;
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
. = ALIGN(32 / 8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -0,0 +1,141 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/opt/cross/mips/lib);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x0400000;
.interp : { *(.interp) }
.reginfo : { *(.reginfo) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.text :
{ *(.rel.text) *(.rel.gnu.linkonce.t*) }
.rela.text :
{ *(.rela.text) *(.rela.gnu.linkonce.t*) }
.rel.data :
{ *(.rel.data) *(.rel.gnu.linkonce.d*) }
.rela.data :
{ *(.rela.data) *(.rela.gnu.linkonce.d*) }
.rel.rodata :
{ *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
.rela.rodata :
{ *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.text :
{
_ftext = . ;
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.mips16.fn.*) *(.mips16.call.*)
} =0
_etext = .;
PROVIDE (etext = .);
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN(0x40000) + (. & (0x40000 - 1));
.data :
{
_fdata = . ;
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.ctors :
{
*(.ctors)
}
.dtors :
{
*(.dtors)
}
_gp = ALIGN(16) + 0x7ff0;
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
. = ALIGN(32 / 8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -0,0 +1,122 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
/* For some reason, the Solaris linker makes bad executables
if gld -r is used and the intermediate file has sections starting
at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld
bug. But for now assigning the zero vmas works. */
SECTIONS
{
/* Read-only sections, merged into text segment: */
.interp 0 : { *(.interp) }
.reginfo : { *(.reginfo) }
.hash 0 : { *(.hash) }
.dynsym 0 : { *(.dynsym) }
.dynstr 0 : { *(.dynstr) }
.gnu.version 0 : { *(.gnu.version) }
.gnu.version_d 0 : { *(.gnu.version_d) }
.gnu.version_r 0 : { *(.gnu.version_r) }
.rel.text 0 :
{ *(.rel.text) }
.rela.text 0 :
{ *(.rela.text) }
.rel.data 0 :
{ *(.rel.data) }
.rela.data 0 :
{ *(.rela.data) }
.rel.rodata 0 :
{ *(.rel.rodata) }
.rela.rodata 0 :
{ *(.rela.rodata) }
.rel.got 0 : { *(.rel.got) }
.rela.got 0 : { *(.rela.got) }
.rel.ctors 0 : { *(.rel.ctors) }
.rela.ctors 0 : { *(.rela.ctors) }
.rel.dtors 0 : { *(.rel.dtors) }
.rela.dtors 0 : { *(.rela.dtors) }
.rel.init 0 : { *(.rel.init) }
.rela.init 0 : { *(.rela.init) }
.rel.fini 0 : { *(.rel.fini) }
.rela.fini 0 : { *(.rela.fini) }
.rel.bss 0 : { *(.rel.bss) }
.rela.bss 0 : { *(.rela.bss) }
.rel.plt 0 : { *(.rel.plt) }
.rela.plt 0 : { *(.rela.plt) }
.init 0 : { *(.init) } =0
.plt 0 : { *(.plt) }
.text 0 :
{
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0
.fini 0 : { *(.fini) } =0
.rodata 0 : { *(.rodata) }
.rodata1 0 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
.data 0 :
{
*(.data)
}
.data1 0 : { *(.data1) }
.ctors 0 :
{
*(.ctors)
}
.dtors 0 :
{
*(.dtors)
}
.got 0 : { *(.got.plt) *(.got) }
.dynamic 0 : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata 0 : { *(.sdata) }
.sbss 0 : { *(.sbss) *(.scommon) }
.bss 0 :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -0,0 +1,140 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/opt/cross/mips/lib);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x5ffe0000 + SIZEOF_HEADERS;
.reginfo : { *(.reginfo) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.text :
{ *(.rel.text) *(.rel.gnu.linkonce.t*) }
.rela.text :
{ *(.rela.text) *(.rela.gnu.linkonce.t*) }
.rel.data :
{ *(.rel.data) *(.rel.gnu.linkonce.d*) }
.rela.data :
{ *(.rela.data) *(.rela.gnu.linkonce.d*) }
.rel.rodata :
{ *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
.rela.rodata :
{ *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.init : { *(.rel.init) }
.rela.init : { *(.rela.init) }
.rel.fini : { *(.rel.fini) }
.rela.fini : { *(.rela.fini) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0
.plt : { *(.plt) }
.text :
{
_ftext = . ;
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.mips16.fn.*) *(.mips16.call.*)
} =0
_etext = .;
PROVIDE (etext = .);
.fini : { *(.fini) } =0
.rodata : { *(.rodata) *(.gnu.linkonce.r*) }
.rodata1 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN(0x40000) + (. & (0x40000 - 1));
.data :
{
_fdata = . ;
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
}
.data1 : { *(.data1) }
.ctors :
{
*(.ctors)
}
.dtors :
{
*(.dtors)
}
_gp = ALIGN(16) + 0x7ff0;
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) }
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
. = ALIGN(32 / 8);
_end = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -0,0 +1,123 @@
OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
"elf32-littlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
/* For some reason, the Solaris linker makes bad executables
if gld -r is used and the intermediate file has sections starting
at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld
bug. But for now assigning the zero vmas works. */
SECTIONS
{
/* Read-only sections, merged into text segment: */
.interp 0 : { *(.interp) }
.reginfo : { *(.reginfo) }
.hash 0 : { *(.hash) }
.dynsym 0 : { *(.dynsym) }
.dynstr 0 : { *(.dynstr) }
.gnu.version 0 : { *(.gnu.version) }
.gnu.version_d 0 : { *(.gnu.version_d) }
.gnu.version_r 0 : { *(.gnu.version_r) }
.rel.text 0 :
{ *(.rel.text) }
.rela.text 0 :
{ *(.rela.text) }
.rel.data 0 :
{ *(.rel.data) }
.rela.data 0 :
{ *(.rela.data) }
.rel.rodata 0 :
{ *(.rel.rodata) }
.rela.rodata 0 :
{ *(.rela.rodata) }
.rel.got 0 : { *(.rel.got) }
.rela.got 0 : { *(.rela.got) }
.rel.ctors 0 : { *(.rel.ctors) }
.rela.ctors 0 : { *(.rela.ctors) }
.rel.dtors 0 : { *(.rel.dtors) }
.rela.dtors 0 : { *(.rela.dtors) }
.rel.init 0 : { *(.rel.init) }
.rela.init 0 : { *(.rela.init) }
.rel.fini 0 : { *(.rel.fini) }
.rela.fini 0 : { *(.rela.fini) }
.rel.bss 0 : { *(.rel.bss) }
.rela.bss 0 : { *(.rela.bss) }
.rel.plt 0 : { *(.rel.plt) }
.rela.plt 0 : { *(.rela.plt) }
.init 0 : { *(.init) } =0
.plt 0 : { *(.plt) }
.text 0 :
{
*(.text)
*(.stub)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} =0
.fini 0 : { *(.fini) } =0
.rodata 0 : { *(.rodata) }
.rodata1 0 : { *(.rodata1) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
.data 0 :
{
*(.data)
CONSTRUCTORS
}
.data1 0 : { *(.data1) }
.ctors 0 :
{
*(.ctors)
}
.dtors 0 :
{
*(.dtors)
}
.got 0 : { *(.got.plt) *(.got) }
.dynamic 0 : { *(.dynamic) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata 0 : { *(.sdata) }
.sbss 0 : { *(.sbss) *(.scommon) }
.bss 0 :
{
*(.dynbss)
*(.bss)
*(COMMON)
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
}

View File

@ -7,13 +7,13 @@ BUILD_DIR = build
##################### Compiler Options ####################### ##################### Compiler Options #######################
CROSS = mips-linux-gnu- CROSS = mips-linux-gnu-
AS = $(CROSS)as AS = ../oldbinutils/bin/mips-nintendo-nu64-as
CC = $(CROSS)gcc CC = $(CROSS)gcc
LD = $(CROSS)ld LD = ../oldbinutils/bin/mips-ld
OBJDUMP = $(CROSS)objdump OBJDUMP = ../oldbinutils/bin/mips-objdump
OBJCOPY = $(CROSS)objcopy OBJCOPY = ../oldbinutils/bin/mips-objcopy
ASFLAGS = -EB -mtune=vr4300 -march=vr4300 ASFLAGS = -EB -mcpu=vr4300
CFLAGS = -Wall -O2 -mtune=vr4300 -march=vr4300 -G 0 -c CFLAGS = -Wall -O2 -mtune=vr4300 -march=vr4300 -G 0 -c
LDFLAGS = -T undefined_syms.txt -T $(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.map LDFLAGS = -T undefined_syms.txt -T $(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.map

23
papermario/fix_asm.py Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/python3
import os
import re
script_dir = os.path.dirname(os.path.realpath(__file__))
asm_dir = script_dir + "/asm/"
regs = ["zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "s0",
"s1", "s2", "s3", "s4", "s5", "s6", "s7", "t8", "t9", "k0", "k1", "gp", "sp", "fp", "ra"]
for root, dirs, files in os.walk(asm_dir):
for file in files:
if file.endswith(".s"):
with open(os.path.join(root, file)) as f:
file_text_orig = f.read()
file_text = file_text_orig
for reg in regs:
regex = re.compile("\\$" + reg)
file_text = re.sub(regex, "$" + str(regs.index(reg)), file_text)
if file_text != file_text_orig:
with open(os.path.join(root, file), "w") as f:
f.write(file_text)