1999-02-02 22:51:16 +03:00
|
|
|
These are the GNU binutils. These are utilities of use when dealing
|
|
|
|
with object files.
|
1997-09-24 19:39:15 +04:00
|
|
|
|
1999-02-02 22:51:16 +03:00
|
|
|
The linker (ld) is in a separate directory, which should be ../ld.
|
|
|
|
Linker-specific notes are in ../ld/README.
|
1997-09-24 19:39:15 +04:00
|
|
|
|
|
|
|
As of version 2.5, the assembler (as) is also included in this package, in
|
|
|
|
../gas. Assembler-specific notes can be found in ../gas/README.
|
|
|
|
|
|
|
|
Recent changes are in ./NEWS, ../ld/NEWS, and ../gas/NEWS.
|
|
|
|
|
|
|
|
Unpacking and Installation -- quick overview
|
|
|
|
============================================
|
|
|
|
|
1999-02-02 22:51:16 +03:00
|
|
|
When you unpack the binutils-2.9.tar.gz file, you'll get a directory
|
|
|
|
called something like `binutils-2.9', which contains various files and
|
1997-09-24 19:39:15 +04:00
|
|
|
directories. Most of the files in the top directory are for
|
|
|
|
information and for configuration. The actual source code is in
|
|
|
|
subdirectories.
|
|
|
|
|
|
|
|
To build binutils, you can just do:
|
|
|
|
|
1999-02-02 22:51:16 +03:00
|
|
|
cd binutils-2.9
|
|
|
|
./configure [options]
|
1997-09-24 19:39:15 +04:00
|
|
|
make
|
|
|
|
make install # copies the programs files into /usr/local/bin
|
|
|
|
# by default.
|
|
|
|
|
|
|
|
This will configure and build all the libraries as well as the
|
|
|
|
assembler, the binutils, and the linker.
|
|
|
|
|
1999-02-02 22:51:16 +03:00
|
|
|
If you have GNU make, we recommend building in a different directory:
|
|
|
|
|
|
|
|
mkdir objdir
|
|
|
|
cd objdir
|
|
|
|
../binutils-2.9/configure [options]
|
|
|
|
make
|
|
|
|
make install
|
|
|
|
|
|
|
|
This relies on the VPATH feature of GNU make.
|
|
|
|
|
|
|
|
By default, the binutils will be configured to support the system on
|
|
|
|
which they are built. When doing cross development, use the --target
|
|
|
|
configure option to specify a different target.
|
|
|
|
|
|
|
|
The --enable-targets option adds support for more binary file formats
|
|
|
|
besides the default. List them as the argument to --enable-targets,
|
|
|
|
separated by commas. For example:
|
1997-09-24 19:39:15 +04:00
|
|
|
|
|
|
|
./configure --enable-targets=sun3,rs6000-aix,decstation
|
|
|
|
|
|
|
|
The name 'all' compiles in support for all valid BFD targets (this was
|
|
|
|
the default in releases before 2.3):
|
|
|
|
|
|
|
|
./configure --enable-targets=all
|
|
|
|
|
|
|
|
You can also specify the --enable-shared option when you run
|
|
|
|
configure. This will build the BFD and opcodes libraries as shared
|
1999-02-02 22:51:16 +03:00
|
|
|
libraries. You can use arguments with the --enable-shared option to
|
|
|
|
indicate that only certain libraries should be built shared; for
|
|
|
|
example, --enable-shared=bfd. The only potential shared libraries in
|
|
|
|
a binutils release are bfd and opcodes.
|
1997-09-24 19:39:15 +04:00
|
|
|
|
|
|
|
The binutils will be linked against the shared libraries. The build
|
|
|
|
step will attempt to place the correct library in the runtime search
|
|
|
|
path for the binaries. However, in some cases, after you install the
|
|
|
|
binaries, you may have to set an environment variable, normally
|
|
|
|
LD_LIBRARY_PATH, so that the system can find the installed libbfd
|
|
|
|
shared library.
|
|
|
|
|
|
|
|
To build under openVMS/AXP, see the file makefile.vms in the top level
|
|
|
|
directory.
|
|
|
|
|
|
|
|
If you don't have ar
|
|
|
|
====================
|
|
|
|
|
|
|
|
If your system does not already have an ar program, the normal
|
|
|
|
binutils build process will not work. In this case, run configure as
|
|
|
|
usual. Before running make, run this script:
|
|
|
|
|
|
|
|
#!/bin/sh
|
|
|
|
MAKE=${MAKE-make}
|
|
|
|
${MAKE} $* AR=true all-libiberty
|
|
|
|
${MAKE} $* AR=true all-bfd
|
|
|
|
cd binutils
|
|
|
|
${MAKE} $* ADDL_DEPS='$(BULIBS)' ADDL_LIBS='$(BULIBS) ../bfd/*.o `cat ../libiberty/required-list ../libiberty/needed-list | sed -e "s,\([^ ][^ ]*\),../libiberty/\1,g"`' ar
|
|
|
|
|
|
|
|
This script will build an ar program in binutils/ar. Move binutils/ar
|
|
|
|
into a directory on your PATH. After doing this, you can run make as
|
|
|
|
usual to build the complete binutils distribution. You do not need
|
|
|
|
the ranlib program in order to build the distribution.
|
|
|
|
|
|
|
|
Porting
|
|
|
|
=======
|
1999-02-02 22:51:16 +03:00
|
|
|
|
|
|
|
Binutils-2.9 supports many different architectures, but there
|
1997-09-24 19:39:15 +04:00
|
|
|
are many more not supported, including some that were supported
|
|
|
|
by earlier versions. We are hoping for volunteers to
|
|
|
|
improve this situation.
|
|
|
|
|
|
|
|
The major effort in porting binutils to a new host and/or target
|
|
|
|
architecture involves the BFD library. There is some documentation
|
|
|
|
in ../bfd/doc. The file ../gdb/doc/gdbint.texinfo (distributed
|
|
|
|
with gdb-4.x) may also be of help.
|
|
|
|
|
|
|
|
Reporting bugs
|
|
|
|
==============
|
1999-02-02 22:51:16 +03:00
|
|
|
|
|
|
|
Send bug reports and patches to bug-gnu-utils@gnu.org. Always mention
|
|
|
|
the version number you are running; this is printed by running any of
|
|
|
|
the binutils with the --version option. We appreciate reports about
|
|
|
|
bugs, but we do not promise to fix them.
|
|
|
|
|
|
|
|
Testing
|
|
|
|
=======
|
|
|
|
|
|
|
|
Testing this release of the binutils requires an unreleased version of
|
|
|
|
dejagnu. There is a dejagnu snapshot available at
|
|
|
|
ftp://ftp.cygnus.com/pub/binutils
|
|
|
|
which may be used for testing.
|
|
|
|
|
|
|
|
Maintenance
|
|
|
|
===========
|
|
|
|
|
|
|
|
The configure and Makefile.in files in the subdirectories are
|
|
|
|
generated by autoconf and automake, respectively. The libtool package
|
|
|
|
is also required. In order to make the generation rules fire
|
|
|
|
automatically, you must configure with the --enable-maintainer-mode
|
|
|
|
option. This option is not the default in order to avoid problems on
|
|
|
|
systems which have out of date versions of autoconf or automake
|
|
|
|
installed. The generated files in this release were built with
|
|
|
|
unreleased versions of autoconf, automake, and libtool. You can find
|
|
|
|
snapshots of the appropriate sources at
|
|
|
|
ftp://ftp.cygnus.com/pub/binutils
|