* ldmain.c (main): Error if --gc-sections and
[deliverable/binutils-gdb.git] / binutils / README
index 7482e0b91d0aa53f61251f8ca4bbe7980eaaddd5..fad44c749dece6f63a340843c6cb87748d84aa62 100644 (file)
@@ -1,10 +1,13 @@
-This is a BETA release of a completely rewritten binutils distribution.
-The linker (ld) has been moved into a separate directory,
-which should be ../ld.  Linker-specific notes are in ../ld/README.
+This is a beta release of a completely rewritten binutils distribution.
+(Rewritten since binutils 1.x, that is.)
+
+The linker (ld) has been moved into a separate directory, which should be
+../ld.  Linker-specific notes are in ../ld/README.
+
+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.
 
 These programs have been tested on various architectures.
-Most recently tested are sun3 and sun4s running sunos4,
-as well as Sony News running newsos3.
 However, since this is a beta release taken directly from an
 evolving source tree, there might be some problems.  In particular,
 the programs have not been ported to as many machines as the
@@ -12,41 +15,99 @@ old binutils.  There are also features of the old versions
 that are missing on the new programs.  We would appreciate
 patches to make things run on other machines; especially welcome
 are fixes for what used to work on the old programs!
+(See ./TODO, as well a ../bfd/TODO and ../ld/TODO.)
+
+Recent changes are in ./NEWS, ../ld/NEWS, and ../gas/NEWS.
 
 Unpacking and Installation -- quick overview
 ==========================
 
 In this release, the binary utilities, the linker, the generic GNU include
-files, the BFD ("binary file description") library, and getopt all have
-directories of their own underneath the binutils-2.0 directory.
+files, the BFD ("binary file description") library, gprof, and getopt all
+have directories of their own underneath the binutils-2.7 directory.
 The idea is that a variety of GNU tools can
 share a common copy of these things.  Configuration scripts and
 makefiles exist to cruise up and down this directory tree and
 automatically build all the pieces in the right order.
 
-When you unpack the binutils-2.0.tar.Z file, you'll get a directory called
-something like `binutils-2.0', which contains:
+When you unpack the binutils-2.7.tar.gz file, you'll get a directory
+called something like `binutils-2.7', which contains:
 
-       DOC.configure  README         config/        configure*     ld/
-       Makefile       bfd/           config.status* configure.in   libiberty/
-       Makefile.in    binutils/      config.sub     include/       texinfo/
+       COPYING          bfd/             configure*       libiberty/
+       COPYING.LIB      binutils/        configure.in     move-if-change*
+       CYGNUS           build-all.mk     etc/             opcodes/
+       ChangeLog        config/          gprof/           test-build.mk
+       Makefile.in      config.guess*    inc
 
 To build binutils, you can just do:
 
-       cd binutils-2.0
-       ./configure HOSTTYPE            (e.g. sun4, decstation)
+       cd binutils-2.7
+       ./configure [ --enable-targets='target1,target2...' ]
        make
-       make install # copies the programs files into /usr/local/bin by default.
+       make install # copies the programs files into /usr/local/bin
+                    # by default.
 
 This will configure and build all the libraries as well as binutils
 and the linker.
 
+The --enable-targets option adds support for more binary file
+formats besides the default.  By default, support for only the
+selected target file format is compiled in.  To add support for more
+formats, list them as the argument to --enable-targets, separated by
+commas.  For example:
+
+       ./configure --enable-targets=sun3,rs6000-aix,decstation
+
+The name 'all' compiles in support for all valid BFD targets (this was
+the default in previous releases):
+
+       ./configure --enable-targets=all
+
 The binutils can be used in a cross-development environment.
-The file DOC.configure contains more information.
+The file etc/configure.texi contains more information.
+
+You can also specify the --enable-shared option when you run
+configure.  This will build the BFD and opcodes libraries as shared
+libraries.  This will only work on certain systems, and currently will
+only work when compiling with gcc.  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
+possibilities in a binutils release are bfd and opcodes.
+
+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.
+
+If you specify --enable-commonbfdlib as well as --enable-shared, then
+a single shared library will be built containing the bfd, opcodes, and
+libiberty libraries.  It will be installed as libbfd.  This option
+will make the binutils programs as small as possible.
+
+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
 =======
-Binutils-2.0 supports many different architectures, but there
+Binutils-2.7 supports many different architectures, but there
 are many more not supported, including some that were supported
 by earlier versions.  We are hoping for volunteers to
 improve this situation.
@@ -54,7 +115,7 @@ 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-3.2) may also be of help.
+with gdb-4.x) may also be of help.
 
 If your system uses some variant of old-style a.out-format,
 you can start with a copy of bfd/newsos3.c, and edit it to fit.
@@ -66,8 +127,8 @@ Reporting bugs
 ==============
 If you can't track down a bug and send suggestions/patches
 for fixes, you should probably *not* be using this release.
-I cannot work on finding bugs at this stage (except for
-Cygnus-supported configurations).  But if you have suggestions
-or patches, send them to bothner@cygnus.com, for now.
-(After the official release, the correct address will
-be bug-gnu-utils@ai.mit.edu.)
+We have little time to spend tracking down whatever random bugs you
+may run into (except for configurations that Cygnus supports for
+its customers).  The general place to send bug reports or patches
+is to bug-gnu-utils@ai.mit.edu; you can also send them directly to
+raeburn@cygnus.com or ian@cygnus.com.
This page took 0.024302 seconds and 4 git commands to generate.