diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 2004-06-16 05:45:41 +0000 |
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 2004-06-16 05:45:41 +0000 |
| commit | da03bc7002a961c3863f89c3b3300cc0e3c122ed (patch) | |
| tree | 04848ae93445e503c4190ca1748abe15eabc9e11 /contrib/binutils/bfd/doc | |
| parent | 3d37d1c75e3d84684f4251afe6e06047d7ce2177 (diff) | |
Notes
Diffstat (limited to 'contrib/binutils/bfd/doc')
28 files changed, 2654 insertions, 1627 deletions
diff --git a/contrib/binutils/bfd/doc/ChangeLog b/contrib/binutils/bfd/doc/ChangeLog index 3d1e30ac15f8..fc0693343f38 100644 --- a/contrib/binutils/bfd/doc/ChangeLog +++ b/contrib/binutils/bfd/doc/ChangeLog @@ -1,550 +1,14 @@ -2002-09-23 Daniel Jacobowitz <drow@mvista.com> +2004-04-08 Alan Modra <amodra@bigpond.net.au> - Merge from mainline: - 2002-08-28 John David Anglin <dave@hiauly1.hia.nrc.ca> - * chew.c (paramstuff, outputdots, perform, bang and usage): Remove - void from function definitions. - -2002-08-13 Alan Modra <amodra@bigpond.net.au> - - * header.sed: Strip tabs. - -2002-06-08 Alan Modra <amodra@bigpond.net.au> - - * Makefile.am: Fix quote style in last change. - * Makefile.in: Regenerate. - -2002-06-07 Alan Modra <amodra@bigpond.net.au> - - * Makefile.am (libbfd.h): Don't use "echo -n". - (libcoff.h, bfd.h): Likewise. - * Makefile.in: Regenerate. - -2002-06-06 Lars Brinkhoff <lars@nocrew.org> - - * bfdint.texi: Change registry@sco.com to registry@caldera.com. - -2002-06-05 Alan Modra <amodra@bigpond.net.au> - - * Makefile.am (libbfd.h): Add "Extracted from.." comment. - (libcoff.h, bfd.h): Likewise. - * Makefile.in: Regenerate. - -2002-05-25 Alan Modra <amodra@bigpond.net.au> - - * chew.c: Use #include "" instead of <> for local header files. - -2002-04-20 Alan Modra <amodra@bigpond.net.au> - - * Makefile.in: Regenerate. - -2002-02-11 Alan Modra <amodra@bigpond.net.au> - - * Makefile.in: Regenerate. - -2002-02-01 Alan Modra <amodra@bigpond.net.au> - - * chew.c (WORD): Eliminate. - -2002-01-31 Ivan Guzvinec <ivang@opencores.org> - - * Makefile.in: Regenerate. - -2002-01-31 Alan Modra <amodra@bigpond.net.au> - - * chew.c (courierize): Don't modify @command params. - -2002-01-30 Nick Clifton <nickc@cambridge.redhat.com> - - * proto.str (ENUMDOC): Place two spaces between the end of - the text and the closing comment marker. - -2001-10-30 Hans-Peter Nilsson <hp@bitrange.com> - - * bfdint.texi (BFD target vector miscellaneous): Add - bfd_target_mmo_flavour. - * bfd.texinfo (BFD back ends): Add entry for mmo. - * Makefile.am (DOCFILES): Add mmo.texi. - (SRCDOC): Add mmo.c. - (s-mmo, mmo.texi): New rules. - -2001-10-29 Kazu Hirata <kazu@hxi.com> - - * bfdsumm.texi: Fix a typo. - -2001-10-26 Nick Clifton <nickc@cambridge.redhat.com> - - * bfd.texinfo: Change footer to refer to FSF. Change subtitle - to refer to original creation date. - -2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> - - * Makefile.am (install): Depend on install-info. - * Makefile.in: Regenerate. - -2001-10-03 Alan Modra <amodra@bigpond.net.au> - - * Makefile.am (BFD_H_DEP): Add ../version.h. - * Makefile.in: Regenerate. - -2001-10-02 Alan Modra <amodra@bigpond.net.au> - - * Makefile.in: Regenerate. - -2001-10-01 Alan Modra <amodra@bigpond.net.au> - - * header.sed: New file, adds header to generated files. - * Makefile.am: Rewrite rules generating libbfd.h, libcoff.h and - bfd.h, using above. Add missing elf.c dependecy for libbfd.h. - * Makefile.in: Regenerate. - -2001-09-21 Alan Modra <amodra@bigpond.net.au> - - * Makefile.in: Regenerate. - -2001-09-18 Alan Modra <amodra@bigpond.net.au> - - * bfdint.texi: Replace reference to bfd_read with bfd_bread. - Likewise for bfd_write. - -2001-07-24 Alan Modra <amodra@bigpond.net.au> - - * Makefile.in: Regenerate. - -2001-06-21 Hans-Peter Nilsson <hp@axis.com> - - * bfdint.texi (BFD relocation functions) <different formats>: - Mention that the GNU linker is aware of input-output format - restrictions when generating relocatable output. Make new - paragraph for final-link case. - (BFD target vector swap): Fix typo. - -2001-01-25 Kazu Hirata <kazu@hxi.com> - - * chew.c: Do not output trailing whitespaces in type and - functionname. Update copyright. - -2001-01-24 Kazu Hirata <kazu@hxi.com> - - * chew.c: Do not output a trailing whitespace. - -2000-11-06 Nick Clifton <nickc@redhat.com> - - * bfd.texinfo: Add GNU Free Documentation License. - -2000-07-09 Alan Modra <alan@linuxcare.com.au> - - * Makefile.in: Regenerate. - -2000-07-08 Alan Modra <alan@linuxcare.com.au> - - * chew.c (outputdots): Don't add a space before `/*'. - (courierize): Likewise. - -Wed May 24 12:03:25 2000 Hans-Peter Nilsson <hp@axis.com> - - * bfdint.texi (BFD ELF processor required): Add paragraph about - target necessities for readelf. - -2000-04-30 Ben Elliston <bje@redhat.com> - - * bfdint.texi (BFD generated files): Fix another typo. - -2000-04-17 Ben Elliston <bje@redhat.com> - - * bfdint.texi (BFD_JUMP_TABLE macros): Fix typo. - -Fri Apr 7 17:54:38 2000 Andrew Cagney <cagney@b1.cygnus.com> - - * Makefile.in: Rebuild with current autoconf/automake. - -Thu Feb 4 23:21:36 1999 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in: Rebuild with current autoconf/automake. - -Thu Jul 23 09:36:44 1998 Nick Clifton <nickc@cygnus.com> - - * bfdint.texi (BFD ELF processor required): Add paragraph - describing the necessity to create "include/elf/CPU.h". - -Thu May 7 14:45:43 1998 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am (chew.o): Add -I options for intl srcdir and - objdir. - * Makefile.in: Rebuild. - -Mon Apr 27 20:19:24 1998 Ian Lance Taylor <ian@cygnus.com> - - * bfdint.texi: New file. - * Makefile.am (noinst_TEXINFOS): New variable. - * Makefile.in: Rebuild. - -Mon Apr 13 16:48:56 1998 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in: Rebuild. - -Mon Apr 6 14:06:55 1998 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am (STAGESTUFF): Remove variable. - (CLEANFILES): Don't remove $(STAGESTUFF). - (DISTCLEANFILES, MAINTAINERCLEANFILES): New variables. - * Makefile.in: Rebuild. - -Fri Mar 27 16:25:25 1998 Ian Lance Taylor <ian@cygnus.com> - - * chew.c (skip_white_and_starts): Remove unused declaration. - (skip_white_and_stars): Add casts to avoid warnings. - (skip_trailing_newlines, paramstuff, courierize): Likewise. - (bulletize, do_fancy_stuff, iscommand): Likewise. - (kill_bogus_lines, nextword, main): Likewise. - (manglecomments): Comment out. - (outputdots, kill_bogus_lines): Remove unused local variables. - (perform, compile): Likewise. - (courierize): Fully parenthesize expression. - (copy_past_newline): Declare return value. - (print): Change printf format string. - (main): Call usage for an unrecognized option. - -Fri Feb 13 14:37:14 1998 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am (AUTOMAKE_OPTIONS): Define. - * Makefile.in: Rebuild. - -Mon Jan 26 15:38:36 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * doc.str (bodytext): Don't output @* at the end. - * chew.c (kill_bogus_lines): Make sure that a period at the - beginning is recognized. - (indent): Don't put indentation at the end. - (copy_past_newline): Expand tabs. - * Makefile.am (s-reloc, s-syms): Depend on doc.str. - * Makefile.in: Rebuild. - -Wed Oct 1 14:41:28 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am (libbfd.h): Don't use cpu-h8300.c, cpu-i960.c, or - elfcode.h as input files; they don't contribute anything. - * Makefile.in: Rebuild. - -Fri Aug 15 04:55:15 1997 Doug Evans <dje@canuck.cygnus.com> - - * Makefile.am (libbfd.h, libcoff.h): Invoke $(MKDOC) as ./$(MKDOC). - * Makefile.in: Rebuild. - -Fri Aug 1 12:59:58 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am (CC_FOR_BUILD): Don't set explicitly. - * Makefile.in: Rebuild. - -Thu Jul 31 20:00:12 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.am: New file, based on old Makefile.in. - * Makefile.in: Now built with automake. - -Tue Jul 22 14:44:00 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE> - - * Makefile.in: Change stamp-* files to s-* files. Use bfdt.texi - rather than bfd.texi. - (DOCFILES): Change bfd.texi to bfdt.texi. - * bfd.texinfo: Include bfdt.texi, not bfd.texi. - -Mon Jun 16 15:33:15 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (CC, CFLAGS): Substitute from configure script. - From Jeff Makey <jeff@cts.com>. - -Tue Apr 15 12:37:41 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (install-info): Use mkinstalldirs to build - $(infodir). - -Tue Apr 8 12:49:46 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (install-info): Permit info files to be in srcdir. - (stamp-*): Add a stamp-X target for each X.texi target. - (*.texi): Just depend upon stamp-X. - (clean): Remove stamp-*. - (distclean): Depend upon mostlyclean. Remove stamp-*. Don't - remove $(DOCFILES). - -Mon Apr 7 15:23:26 1997 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (distclean): Don't remove *.info files. - -Thu Feb 13 20:50:02 1997 Klaus Kaempf (kkaempf@progis.de) - - * makefile.vms: New file. - -Tue Jun 18 18:32:28 1996 Ian Lance Taylor <ian@cygnus.com> - - * chew.c (kill_bogus_lines): Reset sl when not at the start of a - line. From Uwe Ohse <uwe@tirka.gun.de>. - -Tue Jan 30 14:10:46 1996 Ian Lance Taylor <ian@cygnus.com> - - From Ronald F. Guilmette <rfg@monkeys.com>: - * Makefile.in (libbfd.h): Depend upon proto.str. - (libcoff.h, bfd.h): Likewise. - -Fri Nov 3 14:46:48 1995 Fred Fish <fnf@cygnus.com> - - * Makefile.in (SRCDOC, SRCPROT, core.texi, bfd.h): Use corefile.c, - renamed from core.c. - -Wed Nov 1 14:28:23 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de> - - * chew.c: Include <ctype.h>. - -Fri Oct 6 16:23:34 1995 Ken Raeburn <raeburn@cygnus.com> - - Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> - - * Makefile.in (Makefile): Only remake this Makefile. - -Wed Oct 4 15:51:05 1995 Ken Raeburn <raeburn@cygnus.com> - - * chew.c: Include <stdio.h>. - -Tue Sep 12 18:14:50 1995 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (maintainer-clean): New target. - -Thu Aug 31 12:18:43 1995 Ian Lance Taylor <ian@cygnus.com> - - * Makefile.in (bfd.h): Add additional #endif at end of bfd.h if - __cplusplus is defined. - -Tue Nov 29 16:13:34 1994 Doug Evans <dje@canuck.cygnus.com> - - * chew.c (write_buffer): New argument `f', all callers changed. - (stdout, stderr, print, drop, idrop): New forth words. - * proto.str (COMMENT): New command. - * doc.str (COMMENT): Likewise. - -Mon Sep 12 11:44:17 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) - - * Makefile.in (DOCFILES): Remove ctor.texi. - (IPROTOS): Remove ctor.ip. - (SRCIPROT): Remove $(srcdir)/../ctor.c. - (ctor.texi): Remove target. - (libbfd.h): Remove dependency on $(srcdir)/../ctor.c. Remove - $(MKDOC) run on $(srcdir)/../ctor.c. - * bfd.texinfo (Constructors): Remove section. - -Fri Sep 2 13:33:44 1994 Ken Raeburn (raeburn@cujo.cygnus.com) - - * chew.c: Include assert.h. Added prototypes for most functions. - Changed most uses of int to long. Do bounds checking on the - stacks. Added comment at the beginning documenting most of the - intrinsics. Lots of whitespace changes. Re-ordered some - functions. - (die, check_range, icheck_range): New functions. - (strip_trailing_newlines, print_stack_level): New functions. - (translatecomments): Don't insert tab before "/*". - (iscommand): Minimum command length is now 4. - (nextword): Handle some \-sequences. - (push_addr): Deleted. - (main): Add new intrinsics strip_trailing_newlines and - print_stack_level. Complain at end if stack contains more than - one element, or less. - (remchar): Make sure the string is not empty before chopping off a - character. - - * doc.str, proto.str: Handle new commands SENUM, ENUM, ENUMX, - ENUMEQ, ENUMEQX, ENUMDOC. - -Wed Jan 12 18:37:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * bfd.texinfo: Added Linker Functions node. - * Makefile.in (DOCFILES): Added linker.texi. - (SRCDOC): Added linker.c. - (linker.texi): New target. - -Tue Jan 4 10:52:56 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * chew.c: Don't rely on a correct declaration of exit. - (chew_exit): New function which just calls exit. - (main): Use it. - -Mon Jan 3 11:40:40 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * bfd.texinfo: Added Hash Tables node. - * Makefile.in (DOCFILES): Added hash.texi. - (SRCDOC): Added hash.c. - (hash.texi): New target. - -Thu Dec 30 16:57:04 1993 Ken Raeburn (raeburn@cujo.cygnus.com) - - * Makefile.in: Delete all references to seclet.c, since it's just - been deleted. Don't mention hash.c, linker.c, or genlink.h yet, - since they don't contain documentation yet (hint, hint!). - -Fri Nov 5 10:58:53 1993 David J. Mackenzie (djm@thepub.cygnus.com) - - * bfd.texinfo: Small cleanups. - -Fri Nov 19 03:46:11 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * Makefile.in (archures.texi): Depends on $(MKDOC). - -Tue Aug 10 14:22:39 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * bfd.texinfo (BFD back end): Don't include elfcode.texi, since - it's empty now and that triggers a makeinfo bug. - -Mon Aug 9 16:27:30 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * bfd.texinfo (BFD back end): New section on ELF, includes - elf.texi and elfcode.texi. - * Makefile.in (DOCFILES): Include elf.texi, elfcode.texi. - (SRCDOC): Include elfcode.h, elf.c. - (elf.texi, elfcode.texi): New intermediate targets. - -Thu Jun 24 13:48:13 1993 David J. Mackenzie (djm@thepub.cygnus.com) - - * Makefile.in (.c.o, chew.o): Put CFLAGS last. - * bfdsumm.texi: New file, broken out of bfd.texinfo, to share - with ld.texinfo. - -Mon Jun 14 12:07:07 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) - - * Makefile.in (install-info): remove parentdir cruft, - -Wed Jun 9 16:00:32 1993 Jim Kingdon (kingdon@cygnus.com) - - * Makefile.in (mostlyclean): Remove chew.o. - -Tue May 25 14:46:58 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * Makefile.in (libbfd.h): Use elfcode.h, not elf32.c. - -Mon May 24 15:50:07 1993 Ken Raeburn (raeburn@cygnus.com) - - * chew.c (compile): Add a couple of missing casts. - -Wed May 12 14:45:14 1993 Ian Lance Taylor (ian@cygnus.com) - - * Makefile.in (CC_FOR_BUILD): New variable, define to be $(CC). - (chew.o, $(MKDOC)): Build using CC_FOR_BUILD rather than CC, since - it must run on the build machine. - -Tue Apr 6 22:38:10 1993 John Gilmore (gnu@cygnus.com) - - * Makefile.in (chew): Don't compile from .c to executable in a - single step; it puts a temporary .o filename into the executable, - which makes multi-stage comparisons fail. Compile chew.c to - chew.o, and link that, which makes identical executables every time. - -Wed Mar 24 17:26:29 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com) - - * Makefile.in: fix typo (bfd.texinfo not bfd.texino) - -Fri Mar 19 01:13:00 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) - - * bfd.texinfo: Since BFD version number has been bumped, do same - to "version number" on title page, and elsewhere. Should be - fixed to extract real version number. - -Tue Mar 16 12:15:13 1993 Per Bothner (bothner@rtl.cygnus.com) - - * Makefile.in: Add *clean rules. - -Mon Jan 11 18:43:56 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - - * Makefile.in (libbfd.h): Removed duplicate init.c and libbfd.c. - Added seclet.c. - (bfd.h): Added dependency on bfd.c and seclet.c. Added seclet.c - to build. - -Thu Dec 17 19:35:43 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) - - * Makefile.in: added dvi target, define and use $(TEXI2DVI) - -Thu Dec 3 17:42:48 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) - - * Makefile.in (TEXIDIR): New variable. - (bfd.dvi): Look for bfd.texinfo in $(srcdir). Generate index. - - * bfd.texinfo: Minor doc fixes. - -Thu Nov 5 03:13:55 1992 John Gilmore (gnu@cygnus.com) - - Cleanup: Replace all uses of EXFUN in the BFD sources, with PARAMS. - - * chew.c (exfunstuff): Eliminate. - (paramstuff): Replace exfunstuff with function to generate PARAMS. - * proto.str: Use paramstuff rather than exfunstuff. - -Mon Aug 17 12:40:32 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * chew.c: various patches provided by Howard Chu. - -Fri Jun 19 18:59:54 1992 John Gilmore (gnu at cygnus.com) - - * Makefile.in (libbfd.h): Add elf.c as a source of prototypes. - -Mon May 11 18:55:59 1992 John Gilmore (gnu at cygnus.com) - - * chew.c: exit() should be declared by config files, not by - portable source code. Its type could be int or void function. - -Mon May 4 13:45:57 1992 K. Richard Pixley (rich@rtl.cygnus.com) - - * Makefile.in: another CFLAGS correction. - -Tue Apr 28 10:21:32 1992 K. Richard Pixley (rich@rtl.cygnus.com) - - * Makefile.in: Do the CFLAGS thing. - -Fri Apr 10 22:34:52 1992 Fred Fish (fnf@cygnus.com) - - * Makefile.in (MINUS_G): Add macro and default to -g. - -Fri Mar 6 18:53:18 1992 Steve Chamberlain (sac@thepub.cygnus.com) - - * chew.c: now has -w switch turn on warnings - -Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com) - - * Makefile.in, configure.in: removed traces of namesubdir, - -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced - copyrights to '92, changed some from Cygnus to FSF. - -Tue Dec 10 22:11:05 1991 K. Richard Pixley (rich at rtl.cygnus.com) - - * Makefile.in: build chew into the current directory. Complete - the MKDOC macro transition. - -Tue Dec 10 08:26:28 1991 Steve Chamberlain (sac at rtl.cygnus.com) - - * chew.c: don't core dump when can't open file - * Makefile.in: get proto.str from the right place when built in - odd directories - -Tue Dec 10 04:07:25 1991 K. Richard Pixley (rich at rtl.cygnus.com) - - * Makefile.in: infodir belongs in datadir. - -Sat Dec 7 17:01:23 1991 Steve Chamberlain (sac at rtl.cygnus.com) - - * chew.c: Much modified - * proto.str, doc.str: New files for extracting to product - prototypes and documents respectively. - - -Fri Dec 6 22:57:12 1991 K. Richard Pixley (rich at rtl.cygnus.com) - - * Makefile.in: added standards.text support, host/site/target - inclusion hooks, install using INSTALL_DATA rather than cp, - don't echo on install. - -Thu Dec 5 22:46:17 1991 K. Richard Pixley (rich at rtl.cygnus.com) - - * Makefile.in: idestdir and ddestdir go away. Added copyrights - and shift gpl to v2. Added ChangeLog if it didn't exist. docdir - and mandir now keyed off datadir by default. + Apply from mainline. + 2004-03-27 Alan Modra <amodra@bigpond.net.au> + * bfdint.texi: Remove all mention of elflink.h. +For older changes see ChangeLog-9103 Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 version-control: never End: diff --git a/contrib/binutils/bfd/doc/ChangeLog-9103 b/contrib/binutils/bfd/doc/ChangeLog-9103 new file mode 100644 index 000000000000..3636ed8bfaaa --- /dev/null +++ b/contrib/binutils/bfd/doc/ChangeLog-9103 @@ -0,0 +1,594 @@ +2003-10-15 Andrew Cagney <cagney@redhat.com> + + * bfdint.texi (BFD target vector symbols): Rename _get_symtab to + _canonicalize_symtab. + +2003-10-08 David Taylor <dtaylor@emc.com> + + * bfd.texinfo: Remove spurious backslash. + +2003-07-04 Josh Baratz <baratz@intersystems.com> + + * Makefile.am (MKDOC rule): Add $(CFLAGS) in case it contains + CC_FOR_BUILD specific switches. + * Makefile.in: Regenerate. + +2003-06-29 Alan Modra <amodra@bigpond.net.au> + + * chew.c (paramstuff): Don't emit PARAMS. + +2003-02-12 Bob Wilson <bob.wilson@acm.org> + + * bfd.texinfo: Fix quotes for texinfo. Make section title + capitalization more consistent. Use @example instead of @lisp. + Replace FDL appendix with include of fdl.texi. + * fdl.texi: New file. + +2002-11-18 Klee Dienes <kdienes@apple.com> + + * Makefile.am (DOCFILES): Add bfdwin.texi, bfdio.texi. + (PROTOS): Add bfdio.p, bfdwin.p. + (SRCDOC): Add bfdio.c, bfdwin.c. + (SRCPROT): Add bfdio.c, bfdwin.c. + (SRCIPROT): Add bfdio.c, bfdwin.c. + (LIBBFD_H_DEP): Add bfdio.c, bfdwin.c. + (BFD_H_DEP): Add bfdio.c, bfdwin.c. + Add rules for bfdio.texi, bfdwin.text. + * bfd.texinfo: Include bfdio.texi. + +2002-10-14 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2002-10-11 Daniel Jacobowitz <drow@mvista.com> + + * Makefile.in: Regenerated. + +2002-08-29 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * chew.c (paramstuff, outputdots, perform, bang and usage): Remove + void from function definitions. + +2002-08-13 Alan Modra <amodra@bigpond.net.au> + + * header.sed: Strip tabs. + +2002-06-08 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am: Fix quote style in last change. + * Makefile.in: Regenerate. + +2002-06-07 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (libbfd.h): Don't use "echo -n". + (libcoff.h, bfd.h): Likewise. + * Makefile.in: Regenerate. + +2002-06-06 Lars Brinkhoff <lars@nocrew.org> + + * bfdint.texi: Change registry@sco.com to registry@caldera.com. + +2002-06-05 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (libbfd.h): Add "Extracted from.." comment. + (libcoff.h, bfd.h): Likewise. + * Makefile.in: Regenerate. + +2002-05-25 Alan Modra <amodra@bigpond.net.au> + + * chew.c: Use #include "" instead of <> for local header files. + +2002-04-20 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2002-02-11 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2002-02-01 Alan Modra <amodra@bigpond.net.au> + + * chew.c (WORD): Eliminate. + +2002-01-31 Ivan Guzvinec <ivang@opencores.org> + + * Makefile.in: Regenerate. + +2002-01-31 Alan Modra <amodra@bigpond.net.au> + + * chew.c (courierize): Don't modify @command params. + +2002-01-30 Nick Clifton <nickc@cambridge.redhat.com> + + * proto.str (ENUMDOC): Place two spaces between the end of + the text and the closing comment marker. + +2001-10-30 Hans-Peter Nilsson <hp@bitrange.com> + + * bfdint.texi (BFD target vector miscellaneous): Add + bfd_target_mmo_flavour. + * bfd.texinfo (BFD back ends): Add entry for mmo. + * Makefile.am (DOCFILES): Add mmo.texi. + (SRCDOC): Add mmo.c. + (s-mmo, mmo.texi): New rules. + +2001-10-29 Kazu Hirata <kazu@hxi.com> + + * bfdsumm.texi: Fix a typo. + +2001-10-26 Nick Clifton <nickc@cambridge.redhat.com> + + * bfd.texinfo: Change footer to refer to FSF. Change subtitle + to refer to original creation date. + +2002-01-26 Hans-Peter Nilsson <hp@bitrange.com> + + * Makefile.am (install): Depend on install-info. + * Makefile.in: Regenerate. + +2001-10-03 Alan Modra <amodra@bigpond.net.au> + + * Makefile.am (BFD_H_DEP): Add ../version.h. + * Makefile.in: Regenerate. + +2001-10-02 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2001-10-01 Alan Modra <amodra@bigpond.net.au> + + * header.sed: New file, adds header to generated files. + * Makefile.am: Rewrite rules generating libbfd.h, libcoff.h and + bfd.h, using above. Add missing elf.c dependecy for libbfd.h. + * Makefile.in: Regenerate. + +2001-09-21 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2001-09-18 Alan Modra <amodra@bigpond.net.au> + + * bfdint.texi: Replace reference to bfd_read with bfd_bread. + Likewise for bfd_write. + +2001-07-24 Alan Modra <amodra@bigpond.net.au> + + * Makefile.in: Regenerate. + +2001-06-21 Hans-Peter Nilsson <hp@axis.com> + + * bfdint.texi (BFD relocation functions) <different formats>: + Mention that the GNU linker is aware of input-output format + restrictions when generating relocatable output. Make new + paragraph for final-link case. + (BFD target vector swap): Fix typo. + +2001-01-25 Kazu Hirata <kazu@hxi.com> + + * chew.c: Do not output trailing whitespaces in type and + functionname. Update copyright. + +2001-01-24 Kazu Hirata <kazu@hxi.com> + + * chew.c: Do not output a trailing whitespace. + +2000-11-06 Nick Clifton <nickc@redhat.com> + + * bfd.texinfo: Add GNU Free Documentation License. + +2000-07-09 Alan Modra <alan@linuxcare.com.au> + + * Makefile.in: Regenerate. + +2000-07-08 Alan Modra <alan@linuxcare.com.au> + + * chew.c (outputdots): Don't add a space before `/*'. + (courierize): Likewise. + +Wed May 24 12:03:25 2000 Hans-Peter Nilsson <hp@axis.com> + + * bfdint.texi (BFD ELF processor required): Add paragraph about + target necessities for readelf. + +2000-04-30 Ben Elliston <bje@redhat.com> + + * bfdint.texi (BFD generated files): Fix another typo. + +2000-04-17 Ben Elliston <bje@redhat.com> + + * bfdint.texi (BFD_JUMP_TABLE macros): Fix typo. + +2000-04-07 Andrew Cagney <cagney@b1.cygnus.com> + + * Makefile.in: Rebuild with current autoconf/automake. + +1999-02-04 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in: Rebuild with current autoconf/automake. + +1998-07-23 Nick Clifton <nickc@cygnus.com> + + * bfdint.texi (BFD ELF processor required): Add paragraph + describing the necessity to create "include/elf/CPU.h". + +1998-05-07 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (chew.o): Add -I options for intl srcdir and + objdir. + * Makefile.in: Rebuild. + +1998-04-27 Ian Lance Taylor <ian@cygnus.com> + + * bfdint.texi: New file. + * Makefile.am (noinst_TEXINFOS): New variable. + * Makefile.in: Rebuild. + +1998-04-13 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in: Rebuild. + +1998-04-06 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (STAGESTUFF): Remove variable. + (CLEANFILES): Don't remove $(STAGESTUFF). + (DISTCLEANFILES, MAINTAINERCLEANFILES): New variables. + * Makefile.in: Rebuild. + +1998-03-27 Ian Lance Taylor <ian@cygnus.com> + + * chew.c (skip_white_and_starts): Remove unused declaration. + (skip_white_and_stars): Add casts to avoid warnings. + (skip_trailing_newlines, paramstuff, courierize): Likewise. + (bulletize, do_fancy_stuff, iscommand): Likewise. + (kill_bogus_lines, nextword, main): Likewise. + (manglecomments): Comment out. + (outputdots, kill_bogus_lines): Remove unused local variables. + (perform, compile): Likewise. + (courierize): Fully parenthesize expression. + (copy_past_newline): Declare return value. + (print): Change printf format string. + (main): Call usage for an unrecognized option. + +1998-02-13 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (AUTOMAKE_OPTIONS): Define. + * Makefile.in: Rebuild. + +1998-01-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * doc.str (bodytext): Don't output @* at the end. + * chew.c (kill_bogus_lines): Make sure that a period at the + beginning is recognized. + (indent): Don't put indentation at the end. + (copy_past_newline): Expand tabs. + * Makefile.am (s-reloc, s-syms): Depend on doc.str. + * Makefile.in: Rebuild. + +1997-10-01 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (libbfd.h): Don't use cpu-h8300.c, cpu-i960.c, or + elfcode.h as input files; they don't contribute anything. + * Makefile.in: Rebuild. + +1997-08-15 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.am (libbfd.h, libcoff.h): Invoke $(MKDOC) as ./$(MKDOC). + * Makefile.in: Rebuild. + +1997-08-01 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (CC_FOR_BUILD): Don't set explicitly. + * Makefile.in: Rebuild. + +1997-07-31 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am: New file, based on old Makefile.in. + * Makefile.in: Now built with automake. + +1997-07-22 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE> + + * Makefile.in: Change stamp-* files to s-* files. Use bfdt.texi + rather than bfd.texi. + (DOCFILES): Change bfd.texi to bfdt.texi. + * bfd.texinfo: Include bfdt.texi, not bfd.texi. + +1997-06-16 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (CC, CFLAGS): Substitute from configure script. + From Jeff Makey <jeff@cts.com>. + +1997-04-15 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (install-info): Use mkinstalldirs to build + $(infodir). + +1997-04-08 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (install-info): Permit info files to be in srcdir. + (stamp-*): Add a stamp-X target for each X.texi target. + (*.texi): Just depend upon stamp-X. + (clean): Remove stamp-*. + (distclean): Depend upon mostlyclean. Remove stamp-*. Don't + remove $(DOCFILES). + +1997-04-07 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (distclean): Don't remove *.info files. + +1997-02-13 Klaus Kaempf (kkaempf@progis.de) + + * makefile.vms: New file. + +1996-06-18 Ian Lance Taylor <ian@cygnus.com> + + * chew.c (kill_bogus_lines): Reset sl when not at the start of a + line. From Uwe Ohse <uwe@tirka.gun.de>. + +1996-01-30 Ian Lance Taylor <ian@cygnus.com> + + From Ronald F. Guilmette <rfg@monkeys.com>: + * Makefile.in (libbfd.h): Depend upon proto.str. + (libcoff.h, bfd.h): Likewise. + +1995-11-03 Fred Fish <fnf@cygnus.com> + + * Makefile.in (SRCDOC, SRCPROT, core.texi, bfd.h): Use corefile.c, + renamed from core.c. + +1995-11-01 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de> + + * chew.c: Include <ctype.h>. + +1995-10-06 Ken Raeburn <raeburn@cygnus.com> + + Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * Makefile.in (Makefile): Only remake this Makefile. + +1995-10-04 Ken Raeburn <raeburn@cygnus.com> + + * chew.c: Include <stdio.h>. + +1995-09-12 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (maintainer-clean): New target. + +1995-08-31 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (bfd.h): Add additional #endif at end of bfd.h if + __cplusplus is defined. + +1994-11-29 Doug Evans <dje@canuck.cygnus.com> + + * chew.c (write_buffer): New argument `f', all callers changed. + (stdout, stderr, print, drop, idrop): New forth words. + * proto.str (COMMENT): New command. + * doc.str (COMMENT): Likewise. + +1994-09-12 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * Makefile.in (DOCFILES): Remove ctor.texi. + (IPROTOS): Remove ctor.ip. + (SRCIPROT): Remove $(srcdir)/../ctor.c. + (ctor.texi): Remove target. + (libbfd.h): Remove dependency on $(srcdir)/../ctor.c. Remove + $(MKDOC) run on $(srcdir)/../ctor.c. + * bfd.texinfo (Constructors): Remove section. + +1994-09-02 Ken Raeburn (raeburn@cujo.cygnus.com) + + * chew.c: Include assert.h. Added prototypes for most functions. + Changed most uses of int to long. Do bounds checking on the + stacks. Added comment at the beginning documenting most of the + intrinsics. Lots of whitespace changes. Re-ordered some + functions. + (die, check_range, icheck_range): New functions. + (strip_trailing_newlines, print_stack_level): New functions. + (translatecomments): Don't insert tab before "/*". + (iscommand): Minimum command length is now 4. + (nextword): Handle some \-sequences. + (push_addr): Deleted. + (main): Add new intrinsics strip_trailing_newlines and + print_stack_level. Complain at end if stack contains more than + one element, or less. + (remchar): Make sure the string is not empty before chopping off a + character. + + * doc.str, proto.str: Handle new commands SENUM, ENUM, ENUMX, + ENUMEQ, ENUMEQX, ENUMDOC. + +1994-01-12 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * bfd.texinfo: Added Linker Functions node. + * Makefile.in (DOCFILES): Added linker.texi. + (SRCDOC): Added linker.c. + (linker.texi): New target. + +1994-01-04 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * chew.c: Don't rely on a correct declaration of exit. + (chew_exit): New function which just calls exit. + (main): Use it. + +1994-01-03 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * bfd.texinfo: Added Hash Tables node. + * Makefile.in (DOCFILES): Added hash.texi. + (SRCDOC): Added hash.c. + (hash.texi): New target. + +1993-12-30 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in: Delete all references to seclet.c, since it's just + been deleted. Don't mention hash.c, linker.c, or genlink.h yet, + since they don't contain documentation yet (hint, hint!). + +1993-11-05 David J. Mackenzie (djm@thepub.cygnus.com) + + * bfd.texinfo: Small cleanups. + +1993-11-19 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (archures.texi): Depends on $(MKDOC). + +1993-08-10 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * bfd.texinfo (BFD back end): Don't include elfcode.texi, since + it's empty now and that triggers a makeinfo bug. + +1993-08-09 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * bfd.texinfo (BFD back end): New section on ELF, includes + elf.texi and elfcode.texi. + * Makefile.in (DOCFILES): Include elf.texi, elfcode.texi. + (SRCDOC): Include elfcode.h, elf.c. + (elf.texi, elfcode.texi): New intermediate targets. + +1993-06-24 David J. Mackenzie (djm@thepub.cygnus.com) + + * Makefile.in (.c.o, chew.o): Put CFLAGS last. + * bfdsumm.texi: New file, broken out of bfd.texinfo, to share + with ld.texinfo. + +1993-06-14 david d `zoo' zuhn (zoo at rtl.cygnus.com) + + * Makefile.in (install-info): remove parentdir cruft, + +1993-06-09 Jim Kingdon (kingdon@cygnus.com) + + * Makefile.in (mostlyclean): Remove chew.o. + +1993-05-25 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (libbfd.h): Use elfcode.h, not elf32.c. + +1993-05-24 Ken Raeburn (raeburn@cygnus.com) + + * chew.c (compile): Add a couple of missing casts. + +1993-05-12 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (CC_FOR_BUILD): New variable, define to be $(CC). + (chew.o, $(MKDOC)): Build using CC_FOR_BUILD rather than CC, since + it must run on the build machine. + +1993-04-07 John Gilmore (gnu@cygnus.com) + + * Makefile.in (chew): Don't compile from .c to executable in a + single step; it puts a temporary .o filename into the executable, + which makes multi-stage comparisons fail. Compile chew.c to + chew.o, and link that, which makes identical executables every time. + +1993-03-24 david d `zoo' zuhn (zoo at poseidon.cygnus.com) + + * Makefile.in: fix typo (bfd.texinfo not bfd.texino) + +1993-03-19 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * bfd.texinfo: Since BFD version number has been bumped, do same + to "version number" on title page, and elsewhere. Should be + fixed to extract real version number. + +1993-03-16 Per Bothner (bothner@rtl.cygnus.com) + + * Makefile.in: Add *clean rules. + +1993-01-11 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (libbfd.h): Removed duplicate init.c and libbfd.c. + Added seclet.c. + (bfd.h): Added dependency on bfd.c and seclet.c. Added seclet.c + to build. + +1992-12-17 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: added dvi target, define and use $(TEXI2DVI) + +1992-12-03 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (TEXIDIR): New variable. + (bfd.dvi): Look for bfd.texinfo in $(srcdir). Generate index. + + * bfd.texinfo: Minor doc fixes. + +1992-11-05 John Gilmore (gnu@cygnus.com) + + Cleanup: Replace all uses of EXFUN in the BFD sources, with PARAMS. + + * chew.c (exfunstuff): Eliminate. + (paramstuff): Replace exfunstuff with function to generate PARAMS. + * proto.str: Use paramstuff rather than exfunstuff. + +1992-08-17 Steve Chamberlain (sac@thepub.cygnus.com) + + * chew.c: various patches provided by Howard Chu. + +1992-06-19 John Gilmore (gnu at cygnus.com) + + * Makefile.in (libbfd.h): Add elf.c as a source of prototypes. + +1992-05-11 John Gilmore (gnu at cygnus.com) + + * chew.c: exit() should be declared by config files, not by + portable source code. Its type could be int or void function. + +1992-05-04 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: another CFLAGS correction. + +1992-04-28 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: Do the CFLAGS thing. + +1992-04-11 Fred Fish (fnf@cygnus.com) + + * Makefile.in (MINUS_G): Add macro and default to -g. + +1992-03-06 Steve Chamberlain (sac@thepub.cygnus.com) + + * chew.c: now has -w switch turn on warnings + +1992-02-26 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in, configure.in: removed traces of namesubdir, + -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced + copyrights to '92, changed some from Cygnus to FSF. + +1991-12-10 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: build chew into the current directory. Complete + the MKDOC macro transition. + +1991-12-10 Steve Chamberlain (sac at rtl.cygnus.com) + + * chew.c: don't core dump when can't open file + * Makefile.in: get proto.str from the right place when built in + odd directories + +1991-12-10 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: infodir belongs in datadir. + +1991-12-07 Steve Chamberlain (sac at rtl.cygnus.com) + + * chew.c: Much modified + * proto.str, doc.str: New files for extracting to product + prototypes and documents respectively. + + +1991-12-06 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: added standards.text support, host/site/target + inclusion hooks, install using INSTALL_DATA rather than cp, + don't echo on install. + +1991-12-05 K. Richard Pixley (rich at rtl.cygnus.com) + + * Makefile.in: idestdir and ddestdir go away. Added copyrights + and shift gpl to v2. Added ChangeLog if it didn't exist. docdir + and mandir now keyed off datadir by default. + + +Local Variables: +version-control: never +End: diff --git a/contrib/binutils/bfd/doc/Makefile.am b/contrib/binutils/bfd/doc/Makefile.am index 0787143fcd9d..4aaa341807ce 100644 --- a/contrib/binutils/bfd/doc/Makefile.am +++ b/contrib/binutils/bfd/doc/Makefile.am @@ -4,13 +4,15 @@ AUTOMAKE_OPTIONS = cygnus DOCFILES = aoutx.texi archive.texi archures.texi \ bfdt.texi cache.texi coffcode.texi \ - core.texi elf.texi elfcode.texi format.texi libbfd.texi \ + core.texi elf.texi elfcode.texi format.texi \ + libbfd.texi bfdwin.texi bfdio.texi \ opncls.texi reloc.texi section.texi \ syms.texi targets.texi init.texi hash.texi linker.texi \ mmo.texi PROTOS = archive.p archures.p bfd.p \ core.p format.p \ + bfdio.p bfdwin.p \ libbfd.p opncls.p reloc.p \ section.p syms.p targets.p \ format.p core.p init.p @@ -22,6 +24,7 @@ IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip coffcode.ip # you don't need these three: SRCDOC = $(srcdir)/../aoutx.h $(srcdir)/../archive.c \ $(srcdir)/../archures.c $(srcdir)/../bfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../cache.c $(srcdir)/../coffcode.h \ $(srcdir)/../corefile.c $(srcdir)/../elf.c \ $(srcdir)/../elfcode.h $(srcdir)/../format.c \ @@ -34,11 +37,13 @@ SRCDOC = $(srcdir)/../aoutx.h $(srcdir)/../archive.c \ SRCPROT = $(srcdir)/../archive.c $(srcdir)/../archures.c \ $(srcdir)/../bfd.c $(srcdir)/../coffcode.h $(srcdir)/../corefile.c \ $(srcdir)/../format.c $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../opncls.c $(srcdir)/../reloc.c \ $(srcdir)/../section.c $(srcdir)/../syms.c \ $(srcdir)/../targets.c $(srcdir)/../init.c SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../reloc.c $(srcdir)/../cpu-h8300.c \ $(srcdir)/../cpu-i960.c $(srcdir)/../archures.c \ $(srcdir)/../init.c @@ -50,7 +55,7 @@ info_TEXINFOS = bfd.texinfo MKDOC = chew$(EXEEXT_FOR_BUILD) $(MKDOC): chew.o - $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS) + $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) chew.o: chew.c $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c @@ -143,6 +148,18 @@ s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str touch s-libbfd libbfd.texi: s-libbfd +s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str + ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp + $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi + touch s-bfdio +bfdio.texi: s-bfdio + +s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str + ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp + $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi + touch s-bfdwin +bfdwin.texi: s-bfdwin + s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str ./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../opncls.c >opncls.tmp $(srcdir)/../../move-if-change opncls.tmp opncls.texi @@ -195,6 +212,8 @@ LIBBFD_H_DEP = \ $(srcdir)/../libbfd-in.h \ $(srcdir)/../init.c \ $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c \ + $(srcdir)/../bfdwin.c \ $(srcdir)/../cache.c \ $(srcdir)/../reloc.c \ $(srcdir)/../archures.c \ @@ -239,6 +258,8 @@ BFD_H_DEP = \ $(srcdir)/../init.c \ $(srcdir)/../opncls.c \ $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c \ + $(srcdir)/../bfdwin.c \ $(srcdir)/../section.c \ $(srcdir)/../archures.c \ $(srcdir)/../reloc.c \ @@ -248,6 +269,8 @@ BFD_H_DEP = \ $(srcdir)/../corefile.c \ $(srcdir)/../targets.c \ $(srcdir)/../format.c \ + $(srcdir)/../linker.c \ + $(srcdir)/../simple.c \ $(srcdir)/header.sed \ $(srcdir)/proto.str \ $(srcdir)/../version.h \ diff --git a/contrib/binutils/bfd/doc/Makefile.in b/contrib/binutils/bfd/doc/Makefile.in index f35cc9af9e3d..85d64277e3c3 100644 --- a/contrib/binutils/bfd/doc/Makefile.in +++ b/contrib/binutils/bfd/doc/Makefile.in @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -68,6 +68,7 @@ AS = @AS@ BFD_HOST_64BIT_LONG = @BFD_HOST_64BIT_LONG@ BFD_HOST_64_BIT = @BFD_HOST_64_BIT@ BFD_HOST_64_BIT_DEFINED = @BFD_HOST_64_BIT_DEFINED@ +BFD_HOST_LONG_LONG = @BFD_HOST_LONG_LONG@ BFD_HOST_U_64_BIT = @BFD_HOST_U_64_BIT@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ @@ -116,10 +117,11 @@ WIN32LIBADD = @WIN32LIBADD@ all_backends = @all_backends@ bfd_backends = @bfd_backends@ bfd_default_target_size = @bfd_default_target_size@ +bfd_file_ptr = @bfd_file_ptr@ bfd_libs = @bfd_libs@ bfd_machines = @bfd_machines@ +bfd_ufile_ptr = @bfd_ufile_ptr@ bfd_version = @bfd_version@ -bfd_version_date = @bfd_version_date@ bfd_version_string = @bfd_version_string@ bfdincludedir = @bfdincludedir@ bfdlibdir = @bfdlibdir@ @@ -131,7 +133,8 @@ AUTOMAKE_OPTIONS = cygnus DOCFILES = aoutx.texi archive.texi archures.texi \ bfdt.texi cache.texi coffcode.texi \ - core.texi elf.texi elfcode.texi format.texi libbfd.texi \ + core.texi elf.texi elfcode.texi format.texi \ + libbfd.texi bfdwin.texi bfdio.texi \ opncls.texi reloc.texi section.texi \ syms.texi targets.texi init.texi hash.texi linker.texi \ mmo.texi @@ -139,6 +142,7 @@ DOCFILES = aoutx.texi archive.texi archures.texi \ PROTOS = archive.p archures.p bfd.p \ core.p format.p \ + bfdio.p bfdwin.p \ libbfd.p opncls.p reloc.p \ section.p syms.p targets.p \ format.p core.p init.p @@ -151,6 +155,7 @@ IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip coffcode.ip # you don't need these three: SRCDOC = $(srcdir)/../aoutx.h $(srcdir)/../archive.c \ $(srcdir)/../archures.c $(srcdir)/../bfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../cache.c $(srcdir)/../coffcode.h \ $(srcdir)/../corefile.c $(srcdir)/../elf.c \ $(srcdir)/../elfcode.h $(srcdir)/../format.c \ @@ -164,12 +169,14 @@ SRCDOC = $(srcdir)/../aoutx.h $(srcdir)/../archive.c \ SRCPROT = $(srcdir)/../archive.c $(srcdir)/../archures.c \ $(srcdir)/../bfd.c $(srcdir)/../coffcode.h $(srcdir)/../corefile.c \ $(srcdir)/../format.c $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../opncls.c $(srcdir)/../reloc.c \ $(srcdir)/../section.c $(srcdir)/../syms.c \ $(srcdir)/../targets.c $(srcdir)/../init.c SRCIPROT = $(srcdir)/../cache.c $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c $(srcdir)/../bfdwin.c \ $(srcdir)/../reloc.c $(srcdir)/../cpu-h8300.c \ $(srcdir)/../cpu-i960.c $(srcdir)/../archures.c \ $(srcdir)/../init.c @@ -185,6 +192,8 @@ LIBBFD_H_DEP = \ $(srcdir)/../libbfd-in.h \ $(srcdir)/../init.c \ $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c \ + $(srcdir)/../bfdwin.c \ $(srcdir)/../cache.c \ $(srcdir)/../reloc.c \ $(srcdir)/../archures.c \ @@ -207,6 +216,8 @@ BFD_H_DEP = \ $(srcdir)/../init.c \ $(srcdir)/../opncls.c \ $(srcdir)/../libbfd.c \ + $(srcdir)/../bfdio.c \ + $(srcdir)/../bfdwin.c \ $(srcdir)/../section.c \ $(srcdir)/../archures.c \ $(srcdir)/../reloc.c \ @@ -216,6 +227,8 @@ BFD_H_DEP = \ $(srcdir)/../corefile.c \ $(srcdir)/../targets.c \ $(srcdir)/../format.c \ + $(srcdir)/../linker.c \ + $(srcdir)/../simple.c \ $(srcdir)/header.sed \ $(srcdir)/proto.str \ $(srcdir)/../version.h \ @@ -330,7 +343,7 @@ uninstall-info: else ii=; fi; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ - test -z "$ii" \ + test -z "$$ii" \ || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ done @$(NORMAL_UNINSTALL) @@ -459,7 +472,7 @@ mostlyclean distclean maintainer-clean $(MKDOC): chew.o - $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(LOADLIBES) $(LDFLAGS) + $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) chew.o: chew.c $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c @@ -552,6 +565,18 @@ s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str touch s-libbfd libbfd.texi: s-libbfd +s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str + ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp + $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi + touch s-bfdio +bfdio.texi: s-bfdio + +s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str + ./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp + $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi + touch s-bfdwin +bfdwin.texi: s-bfdwin + s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str ./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../opncls.c >opncls.tmp $(srcdir)/../../move-if-change opncls.tmp opncls.texi diff --git a/contrib/binutils/bfd/doc/aoutx.texi b/contrib/binutils/bfd/doc/aoutx.texi index d99fd0542338..0c4167b7775b 100644 --- a/contrib/binutils/bfd/doc/aoutx.texi +++ b/contrib/binutils/bfd/doc/aoutx.texi @@ -161,7 +161,7 @@ handle any last-minute setup. @subsubsection @code{aout_@var{size}_mkobject} @strong{Synopsis} @example -boolean aout_@var{size}_mkobject, (bfd *abfd); +bfd_boolean aout_@var{size}_mkobject, (bfd *abfd); @end example @strong{Description}@* Initialize BFD @var{abfd} for use with a.out files. @@ -187,7 +187,7 @@ is always understood. @subsubsection @code{aout_@var{size}_set_arch_mach} @strong{Synopsis} @example -boolean aout_@var{size}_set_arch_mach, +bfd_boolean aout_@var{size}_set_arch_mach, (bfd *, enum bfd_architecture arch, unsigned long machine)); @@ -201,7 +201,7 @@ can support the architecture required. @subsubsection @code{aout_@var{size}_new_section_hook} @strong{Synopsis} @example -boolean aout_@var{size}_new_section_hook, +bfd_boolean aout_@var{size}_new_section_hook, (bfd *abfd, asection *newsect)); @end example diff --git a/contrib/binutils/bfd/doc/archive.texi b/contrib/binutils/bfd/doc/archive.texi index 7e91a1690c8b..e20906aa551e 100644 --- a/contrib/binutils/bfd/doc/archive.texi +++ b/contrib/binutils/bfd/doc/archive.texi @@ -54,7 +54,8 @@ Archives are supported in BFD in @code{archive.c}. @subsubsection @code{bfd_get_next_mapent} @strong{Synopsis} @example -symindex bfd_get_next_mapent(bfd *abfd, symindex previous, carsym **sym); +symindex bfd_get_next_mapent + (bfd *abfd, symindex previous, carsym **sym); @end example @strong{Description}@* Step through archive @var{abfd}'s symbol table (if it @@ -73,7 +74,7 @@ user-visible element is its name, a null-terminated string. @subsubsection @code{bfd_set_archive_head} @strong{Synopsis} @example -boolean bfd_set_archive_head(bfd *output, bfd *new_head); +bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); @end example @strong{Description}@* Set the head of the chain of @@ -83,7 +84,7 @@ BFDs contained in the archive @var{output} to @var{new_head}. @subsubsection @code{bfd_openr_next_archived_file} @strong{Synopsis} @example -bfd *bfd_openr_next_archived_file(bfd *archive, bfd *previous); +bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); @end example @strong{Description}@* Provided a BFD, @var{archive}, containing an archive and NULL, open diff --git a/contrib/binutils/bfd/doc/archures.texi b/contrib/binutils/bfd/doc/archures.texi index 0faf97daefc6..06ee6d318cee 100644 --- a/contrib/binutils/bfd/doc/archures.texi +++ b/contrib/binutils/bfd/doc/archures.texi @@ -50,6 +50,7 @@ enum bfd_architecture #define bfd_mach_mcf5206e 10 #define bfd_mach_mcf5307 11 #define bfd_mach_mcf5407 12 +#define bfd_mach_mcf528x 13 bfd_arch_vax, /* DEC Vax */ bfd_arch_i960, /* Intel 960 */ /* The order of the following is important. @@ -95,12 +96,16 @@ enum bfd_architecture #define bfd_mach_mips4010 4010 #define bfd_mach_mips4100 4100 #define bfd_mach_mips4111 4111 +#define bfd_mach_mips4120 4120 #define bfd_mach_mips4300 4300 #define bfd_mach_mips4400 4400 #define bfd_mach_mips4600 4600 #define bfd_mach_mips4650 4650 #define bfd_mach_mips5000 5000 +#define bfd_mach_mips5400 5400 +#define bfd_mach_mips5500 5500 #define bfd_mach_mips6000 6000 +#define bfd_mach_mips7000 7000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 #define bfd_mach_mips12000 12000 @@ -108,13 +113,15 @@ enum bfd_architecture #define bfd_mach_mips5 5 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ #define bfd_mach_mipsisa32 32 +#define bfd_mach_mipsisa32r2 33 #define bfd_mach_mipsisa64 64 +#define bfd_mach_mipsisa64r2 65 bfd_arch_i386, /* Intel 386 */ -#define bfd_mach_i386_i386 0 -#define bfd_mach_i386_i8086 1 -#define bfd_mach_i386_i386_intel_syntax 2 -#define bfd_mach_x86_64 3 -#define bfd_mach_x86_64_intel_syntax 4 +#define bfd_mach_i386_i386 1 +#define bfd_mach_i386_i8086 2 +#define bfd_mach_i386_i386_intel_syntax 3 +#define bfd_mach_x86_64 64 +#define bfd_mach_x86_64_intel_syntax 65 bfd_arch_we32k, /* AT&T WE32xxx */ bfd_arch_tahoe, /* CCI/Harris Tahoe */ bfd_arch_i860, /* Intel 860 */ @@ -123,15 +130,20 @@ enum bfd_architecture bfd_arch_alliant, /* Alliant */ bfd_arch_convex, /* Convex */ bfd_arch_m88k, /* Motorola 88xxx */ + bfd_arch_m98k, /* Motorola 98xxx */ bfd_arch_pyramid, /* Pyramid Technology */ - bfd_arch_h8300, /* Hitachi H8/300 */ -#define bfd_mach_h8300 1 -#define bfd_mach_h8300h 2 -#define bfd_mach_h8300s 3 + bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ +#define bfd_mach_h8300 1 +#define bfd_mach_h8300h 2 +#define bfd_mach_h8300s 3 +#define bfd_mach_h8300hn 4 +#define bfd_mach_h8300sn 5 +#define bfd_mach_h8300sx 6 +#define bfd_mach_h8300sxn 7 bfd_arch_pdp11, /* DEC PDP-11 */ bfd_arch_powerpc, /* PowerPC */ -#define bfd_mach_ppc 0 -#define bfd_mach_ppc64 1 +#define bfd_mach_ppc 32 +#define bfd_mach_ppc64 64 #define bfd_mach_ppc_403 403 #define bfd_mach_ppc_403gc 4030 #define bfd_mach_ppc_505 505 @@ -148,38 +160,52 @@ enum bfd_architecture #define bfd_mach_ppc_rs64ii 642 #define bfd_mach_ppc_rs64iii 643 #define bfd_mach_ppc_7400 7400 +#define bfd_mach_ppc_e500 500 bfd_arch_rs6000, /* IBM RS/6000 */ -#define bfd_mach_rs6k 0 +#define bfd_mach_rs6k 6000 #define bfd_mach_rs6k_rs1 6001 #define bfd_mach_rs6k_rsc 6003 #define bfd_mach_rs6k_rs2 6002 bfd_arch_hppa, /* HP PA RISC */ +#define bfd_mach_hppa10 10 +#define bfd_mach_hppa11 11 +#define bfd_mach_hppa20 20 +#define bfd_mach_hppa20w 25 bfd_arch_d10v, /* Mitsubishi D10V */ -#define bfd_mach_d10v 0 +#define bfd_mach_d10v 1 #define bfd_mach_d10v_ts2 2 #define bfd_mach_d10v_ts3 3 bfd_arch_d30v, /* Mitsubishi D30V */ bfd_arch_dlx, /* DLX */ bfd_arch_m68hc11, /* Motorola 68HC11 */ bfd_arch_m68hc12, /* Motorola 68HC12 */ +#define bfd_mach_m6812_default 0 +#define bfd_mach_m6812 1 +#define bfd_mach_m6812s 2 bfd_arch_z8k, /* Zilog Z8000 */ #define bfd_mach_z8001 1 #define bfd_mach_z8002 2 - bfd_arch_h8500, /* Hitachi H8/500 */ - bfd_arch_sh, /* Hitachi SH */ -#define bfd_mach_sh 0 + bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ + bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ +#define bfd_mach_sh 1 #define bfd_mach_sh2 0x20 #define bfd_mach_sh_dsp 0x2d +#define bfd_mach_sh2e 0x2e #define bfd_mach_sh3 0x30 #define bfd_mach_sh3_dsp 0x3d #define bfd_mach_sh3e 0x3e #define bfd_mach_sh4 0x40 +#define bfd_mach_sh4_nofpu 0x41 +#define bfd_mach_sh4a 0x4a +#define bfd_mach_sh4a_nofpu 0x4b +#define bfd_mach_sh4al_dsp 0x4d #define bfd_mach_sh5 0x50 bfd_arch_alpha, /* Dec Alpha */ #define bfd_mach_alpha_ev4 0x10 #define bfd_mach_alpha_ev5 0x20 #define bfd_mach_alpha_ev6 0x30 bfd_arch_arm, /* Advanced Risc Machines ARM. */ +#define bfd_mach_arm_unknown 0 #define bfd_mach_arm_2 1 #define bfd_mach_arm_2a 2 #define bfd_mach_arm_3 3 @@ -190,40 +216,54 @@ enum bfd_architecture #define bfd_mach_arm_5T 8 #define bfd_mach_arm_5TE 9 #define bfd_mach_arm_XScale 10 +#define bfd_mach_arm_ep9312 11 +#define bfd_mach_arm_iWMMXt 12 bfd_arch_ns32k, /* National Semiconductors ns32000 */ bfd_arch_w65, /* WDC 65816 */ bfd_arch_tic30, /* Texas Instruments TMS320C30 */ + bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ +#define bfd_mach_tic3x 30 +#define bfd_mach_tic4x 40 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ bfd_arch_tic80, /* TI TMS320c80 (MVP) */ bfd_arch_v850, /* NEC V850 */ -#define bfd_mach_v850 0 +#define bfd_mach_v850 1 #define bfd_mach_v850e 'E' -#define bfd_mach_v850ea 'A' +#define bfd_mach_v850e1 '1' bfd_arch_arc, /* ARC Cores */ -#define bfd_mach_arc_5 0 -#define bfd_mach_arc_6 1 -#define bfd_mach_arc_7 2 -#define bfd_mach_arc_8 3 - bfd_arch_m32r, /* Mitsubishi M32R/D */ -#define bfd_mach_m32r 0 /* For backwards compatibility. */ +#define bfd_mach_arc_5 5 +#define bfd_mach_arc_6 6 +#define bfd_mach_arc_7 7 +#define bfd_mach_arc_8 8 + bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ +#define bfd_mach_m32r 1 /* For backwards compatibility. */ #define bfd_mach_m32rx 'x' +#define bfd_mach_m32r2 '2' bfd_arch_mn10200, /* Matsushita MN10200 */ bfd_arch_mn10300, /* Matsushita MN10300 */ #define bfd_mach_mn10300 300 #define bfd_mach_am33 330 +#define bfd_mach_am33_2 332 bfd_arch_fr30, #define bfd_mach_fr30 0x46523330 bfd_arch_frv, -#define bfd_mach_frv 0 -#define bfd_mach_frvsimple 1 +#define bfd_mach_frv 1 +#define bfd_mach_frvsimple 2 #define bfd_mach_fr300 300 #define bfd_mach_fr400 400 #define bfd_mach_frvtomcat 499 /* fr500 prototype */ #define bfd_mach_fr500 500 +#define bfd_mach_fr550 550 bfd_arch_mcore, bfd_arch_ia64, /* HP/Intel ia64 */ -#define bfd_mach_ia64_elf64 0 -#define bfd_mach_ia64_elf32 1 +#define bfd_mach_ia64_elf64 64 +#define bfd_mach_ia64_elf32 32 + bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ +#define bfd_mach_ip2022 1 +#define bfd_mach_ip2022ext 2 + bfd_arch_iq2000, /* Vitesse IQ2000. */ +#define bfd_mach_iq2000 1 +#define bfd_mach_iq10 2 bfd_arch_pj, bfd_arch_avr, /* Atmel AVR microcontrollers. */ #define bfd_mach_avr1 1 @@ -233,12 +273,29 @@ enum bfd_architecture #define bfd_mach_avr5 5 bfd_arch_cris, /* Axis CRIS */ bfd_arch_s390, /* IBM s390 */ -#define bfd_mach_s390_31 0 -#define bfd_mach_s390_64 1 +#define bfd_mach_s390_31 31 +#define bfd_mach_s390_64 64 bfd_arch_openrisc, /* OpenRISC */ bfd_arch_mmix, /* Donald Knuth's educational processor. */ bfd_arch_xstormy16, -#define bfd_mach_xstormy16 0 +#define bfd_mach_xstormy16 1 + bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ +#define bfd_mach_msp11 11 +#define bfd_mach_msp110 110 +#define bfd_mach_msp12 12 +#define bfd_mach_msp13 13 +#define bfd_mach_msp14 14 +#define bfd_mach_msp15 15 +#define bfd_mach_msp16 16 +#define bfd_mach_msp31 31 +#define bfd_mach_msp32 32 +#define bfd_mach_msp33 33 +#define bfd_mach_msp41 41 +#define bfd_mach_msp42 42 +#define bfd_mach_msp43 43 +#define bfd_mach_msp44 44 + bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ +#define bfd_mach_xtensa 1 bfd_arch_last @}; @end example @@ -261,15 +318,14 @@ typedef struct bfd_arch_info const char *arch_name; const char *printable_name; unsigned int section_align_power; - /* True if this is the default machine for the architecture. + /* TRUE if this is the default machine for the architecture. The default arch should be the first entry for an arch so that all the entries for that arch can be accessed via @code{next}. */ - boolean the_default; + bfd_boolean the_default; const struct bfd_arch_info * (*compatible) - PARAMS ((const struct bfd_arch_info *a, - const struct bfd_arch_info *b)); + (const struct bfd_arch_info *a, const struct bfd_arch_info *b); - boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); + bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); const struct bfd_arch_info *next; @} @@ -281,7 +337,7 @@ bfd_arch_info_type; @subsubsection @code{bfd_printable_name} @strong{Synopsis} @example -const char *bfd_printable_name(bfd *abfd); +const char *bfd_printable_name (bfd *abfd); @end example @strong{Description}@* Return a printable string representing the architecture and machine @@ -291,7 +347,7 @@ from the pointer to the architecture info structure. @subsubsection @code{bfd_scan_arch} @strong{Synopsis} @example -const bfd_arch_info_type *bfd_scan_arch(const char *string); +const bfd_arch_info_type *bfd_scan_arch (const char *string); @end example @strong{Description}@* Figure out if BFD supports any cpu which could be described with @@ -302,7 +358,7 @@ structure if a machine is found, otherwise NULL. @subsubsection @code{bfd_arch_list} @strong{Synopsis} @example -const char **bfd_arch_list(void); +const char **bfd_arch_list (void); @end example @strong{Description}@* Return a freshly malloced NULL-terminated vector of the names @@ -312,16 +368,15 @@ of all the valid BFD architectures. Do not modify the names. @subsubsection @code{bfd_arch_get_compatible} @strong{Synopsis} @example -const bfd_arch_info_type *bfd_arch_get_compatible( - const bfd *abfd, - const bfd *bbfd); +const bfd_arch_info_type *bfd_arch_get_compatible + (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); @end example @strong{Description}@* -Determine whether two BFDs' -architectures and machine types are compatible. Calculates -the lowest common denominator between the two architectures -and machine types implied by the BFDs and returns a pointer to -an @code{arch_info} structure describing the compatible machine. +Determine whether two BFDs' architectures and machine types +are compatible. Calculates the lowest common denominator +between the two architectures and machine types implied by +the BFDs and returns a pointer to an @code{arch_info} structure +describing the compatible machine. @findex bfd_default_arch_struct @subsubsection @code{bfd_default_arch_struct} @@ -339,7 +394,7 @@ extern const bfd_arch_info_type bfd_default_arch_struct; @subsubsection @code{bfd_set_arch_info} @strong{Synopsis} @example -void bfd_set_arch_info(bfd *abfd, const bfd_arch_info_type *arg); +void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); @end example @strong{Description}@* Set the architecture info of @var{abfd} to @var{arg}. @@ -348,9 +403,8 @@ Set the architecture info of @var{abfd} to @var{arg}. @subsubsection @code{bfd_default_set_arch_mach} @strong{Synopsis} @example -boolean bfd_default_set_arch_mach(bfd *abfd, - enum bfd_architecture arch, - unsigned long mach); +bfd_boolean bfd_default_set_arch_mach + (bfd *abfd, enum bfd_architecture arch, unsigned long mach); @end example @strong{Description}@* Set the architecture and machine type in BFD @var{abfd} @@ -362,7 +416,7 @@ pointer. @subsubsection @code{bfd_get_arch} @strong{Synopsis} @example -enum bfd_architecture bfd_get_arch(bfd *abfd); +enum bfd_architecture bfd_get_arch (bfd *abfd); @end example @strong{Description}@* Return the enumerated type which describes the BFD @var{abfd}'s @@ -372,7 +426,7 @@ architecture. @subsubsection @code{bfd_get_mach} @strong{Synopsis} @example -unsigned long bfd_get_mach(bfd *abfd); +unsigned long bfd_get_mach (bfd *abfd); @end example @strong{Description}@* Return the long type which describes the BFD @var{abfd}'s @@ -382,7 +436,7 @@ machine. @subsubsection @code{bfd_arch_bits_per_byte} @strong{Synopsis} @example -unsigned int bfd_arch_bits_per_byte(bfd *abfd); +unsigned int bfd_arch_bits_per_byte (bfd *abfd); @end example @strong{Description}@* Return the number of bits in one of the BFD @var{abfd}'s @@ -392,7 +446,7 @@ architecture's bytes. @subsubsection @code{bfd_arch_bits_per_address} @strong{Synopsis} @example -unsigned int bfd_arch_bits_per_address(bfd *abfd); +unsigned int bfd_arch_bits_per_address (bfd *abfd); @end example @strong{Description}@* Return the number of bits in one of the BFD @var{abfd}'s @@ -403,8 +457,7 @@ architecture's addresses. @strong{Synopsis} @example const bfd_arch_info_type *bfd_default_compatible - (const bfd_arch_info_type *a, - const bfd_arch_info_type *b); + (const bfd_arch_info_type *a, const bfd_arch_info_type *b); @end example @strong{Description}@* The default function for testing for compatibility. @@ -413,7 +466,8 @@ The default function for testing for compatibility. @subsubsection @code{bfd_default_scan} @strong{Synopsis} @example -boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string); +bfd_boolean bfd_default_scan + (const struct bfd_arch_info *info, const char *string); @end example @strong{Description}@* The default function for working out whether this is an @@ -423,7 +477,7 @@ architecture hit and a machine hit. @subsubsection @code{bfd_get_arch_info} @strong{Synopsis} @example -const bfd_arch_info_type * bfd_get_arch_info(bfd *abfd); +const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); @end example @strong{Description}@* Return the architecture info struct in @var{abfd}. @@ -433,12 +487,10 @@ Return the architecture info struct in @var{abfd}. @strong{Synopsis} @example const bfd_arch_info_type *bfd_lookup_arch - (enum bfd_architecture - arch, - unsigned long machine); + (enum bfd_architecture arch, unsigned long machine); @end example @strong{Description}@* -Look for the architecure info structure which matches the +Look for the architecture info structure which matches the arguments @var{arch} and @var{machine}. A machine of 0 matches the machine/architecture structure which marks itself as the default. @@ -460,7 +512,7 @@ This routine is depreciated. @subsubsection @code{bfd_octets_per_byte} @strong{Synopsis} @example -unsigned int bfd_octets_per_byte(bfd *abfd); +unsigned int bfd_octets_per_byte (bfd *abfd); @end example @strong{Description}@* Return the number of octets (8-bit quantities) per target byte @@ -471,8 +523,8 @@ DSP targets have 16, 32, or even 48 bits per byte. @subsubsection @code{bfd_arch_mach_octets_per_byte} @strong{Synopsis} @example -unsigned int bfd_arch_mach_octets_per_byte(enum bfd_architecture arch, - unsigned long machine); +unsigned int bfd_arch_mach_octets_per_byte + (enum bfd_architecture arch, unsigned long machine); @end example @strong{Description}@* See bfd_octets_per_byte. diff --git a/contrib/binutils/bfd/doc/bfd.texinfo b/contrib/binutils/bfd/doc/bfd.texinfo index 380501e778fe..3ed419476d1e 100644 --- a/contrib/binutils/bfd/doc/bfd.texinfo +++ b/contrib/binutils/bfd/doc/bfd.texinfo @@ -1,6 +1,6 @@ \input texinfo.tex @setfilename bfd.info -@c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 2000 +@c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 2000, 2003 @c Free Software Foundation, Inc. @c @tex @@ -30,14 +30,14 @@ END-INFO-DIR-ENTRY @ifinfo This file documents the BFD library. -Copyright (C) 1991, 2000, 2001 Free Software Foundation, Inc. +Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the - section entitled "GNU Free Documentation License". + section entitled ``GNU Free Documentation License''. @ignore Permission is granted to process this file through Tex and print the @@ -64,7 +64,7 @@ notice identical to this one except for the removal of this paragraph @tex \def\$#1${{#1}} % Kluge: collect RCS revision info without $...$ -\xdef\manvers{\$Revision: 1.5 $} % For use in headers, footers too +\xdef\manvers{1.5} % For use in headers, footers too {\parskip=0pt \hfill Free Software Foundation\par \hfill sac\@www.gnu.org\par @@ -75,14 +75,14 @@ notice identical to this one except for the removal of this paragraph @end tex @vskip 0pt plus 1filll -Copyright @copyright{} 1991, 2001 Free Software Foundation, Inc. +Copyright @copyright{} 1991, 2001, 2003 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the - section entitled "GNU Free Documentation License". + section entitled ``GNU Free Documentation License''. @end titlepage @end iftex @@ -170,17 +170,17 @@ For example, this sequence does what you would probably expect: return the number of sections in an object file attached to a BFD @code{abfd}. -@lisp +@example @c @cartouche #include "bfd.h" -unsigned int number_of_sections(abfd) +unsigned int number_of_sections (abfd) bfd *abfd; @{ - return bfd_count_sections(abfd); + return bfd_count_sections (abfd); @} @c @end cartouche -@end lisp +@end example The abstraction used within BFD is that an object file has: @@ -205,8 +205,9 @@ IEEE-695. @include bfdsumm.texi @node BFD front end, BFD back ends, Overview, Top -@chapter BFD front end +@chapter BFD Front End @include bfdt.texi +@include bfdio.texi @menu * Memory Usage:: @@ -227,7 +228,7 @@ IEEE-695. @end menu @node Memory Usage, Initialization, BFD front end, BFD front end -@section Memory usage +@section Memory Usage BFD keeps all of its internal structures in obstacks. There is one obstack per open BFD file, into which the current state is stored. When a BFD is closed, the obstack is deleted, and so everything which has been @@ -323,370 +324,9 @@ All of BFD lives in one directory. @include mmo.texi @node GNU Free Documentation License, Index, BFD back ends, Top -@chapter GNU Free Documentation License -@cindex GNU Free Documentation License +@include fdl.texi - GNU Free Documentation License - - Version 1.1, March 2000 - - Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - -0. PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - -1. APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not "Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - -2. VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -3. COPYING IN QUANTITY - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -4. MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -B. List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has less than five). -C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. -D. Preserve all the copyright notices of the Document. -E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -F. Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -G. Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -H. Include an unaltered copy of this License. -I. Preserve the section entitled "History", and its title, and add to - it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section entitled "History" in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the "History" section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -M. Delete any section entitled "Endorsements". Such a section - may not be included in the Modified Version. -N. Do not retitle any existing section as "Endorsements" - or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -5. COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - - -6. COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - -7. AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - - -8. TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - - -9. TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - - -10. FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - - -ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -@smallexample - Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License". -@end smallexample - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write "no Front-Cover Texts" instead of -"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - -@node Index, , GNU Free Documentation License , Top +@node Index, , GNU Free Documentation License, Top @unnumbered Index @printindex cp diff --git a/contrib/binutils/bfd/doc/bfdint.texi b/contrib/binutils/bfd/doc/bfdint.texi index d2996dcfcb3d..95c0096e468d 100644 --- a/contrib/binutils/bfd/doc/bfdint.texi +++ b/contrib/binutils/bfd/doc/bfdint.texi @@ -1,6 +1,6 @@ \input texinfo @c Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, -@c 2000, 2001 +@c 2000, 2001, 2002, 2003 @c Free Software Foundation, Inc. @setfilename bfdint.info @@ -694,7 +694,7 @@ information in BFD private data. This is called via @samp{bfd_get_symtab_upper_bound}. The corresponding field in the target vector is named @samp{_bfd_get_symtab_upper_bound}. -@item _get_symtab +@item _canonicalize_symtab Read in the symbol table. This is called via @samp{bfd_canonicalize_symtab}. The corresponding field in the target vector is named @samp{_bfd_canonicalize_symtab}. @@ -835,7 +835,7 @@ corresponding field in the target vector is named @item _bfd_get_relocated_section_contents Read the contents of a section and apply the relocation information. -This handles both a final link and a relocateable link; in the latter +This handles both a final link and a relocatable link; in the latter case, it adjust the relocation information as well. This is called via @samp{bfd_get_relocated_section_contents}. Most targets implement it by calling @samp{bfd_generic_get_relocated_section_contents}. @@ -1073,11 +1073,6 @@ sizes. Like @file{elfcode.h}, but for functions that are specific to ELF core files. This is included only by @file{elfcode.h}. -@item elflink.h -@cindex @file{elflink.h} -Like @file{elfcode.h}, but for functions used by the ELF linker. This -is included only by @file{elfcode.h}. - @item elfxx-target.h @cindex @file{elfxx-target.h} This file is the source for the generated files @file{elf32-target.h} @@ -1169,7 +1164,7 @@ allocate space in a different section and use the offset within that section as the value to store. In the IEEE object file format, relocations may involve arbitrary expressions. -When doing a relocateable link, the linker may or may not have to do +When doing a relocatable link, the linker may or may not have to do anything with a relocation, depending upon the definition of the relocation. Simple relocations generally do not require any special action. @@ -1240,9 +1235,9 @@ existing target, you need to do the following: @itemize @bullet @item Make sure you clearly understand what the contents of the section should -look like after assembly, after a relocateable link, and after a final +look like after assembly, after a relocatable link, and after a final link. Make sure you clearly understand the operations the linker must -perform during a relocateable link and during a final link. +perform during a relocatable link and during a final link. @item Write a howto structure for the relocation. The howto structure is @@ -1257,7 +1252,7 @@ call @samp{bfd_install_relocation}, so your howto structure has to be able to handle that. You may need to set the @samp{special_function} field to handle assembly correctly. Be careful to ensure that any code you write to handle the assembler will also work correctly when doing a -relocateable link. For example, see @samp{bfd_elf_generic_reloc}. +relocatable link. For example, see @samp{bfd_elf_generic_reloc}. @item Test the assembler. Consider the cases of relocation against an @@ -1271,14 +1266,14 @@ If your target uses the new linker, which is recommended, add any required handling to the target specific relocation function. In simple cases this will just involve a call to @samp{_bfd_final_link_relocate} or @samp{_bfd_relocate_contents}, depending upon the definition of the -relocation and whether the link is relocateable or not. +relocation and whether the link is relocatable or not. @item Test the linker. Test the case of a final link. If the relocation can overflow, use a linker script to force an overflow and make sure the -error is reported correctly. Test a relocateable link, whether the -symbol is defined or undefined in the relocateable output. For both the -final and relocateable link, test the case when the symbol is a common +error is reported correctly. Test a relocatable link, whether the +symbol is defined or undefined in the relocatable output. For both the +final and relocatable link, test the case when the symbol is a common symbol, when the symbol looked like a common symbol but became a defined symbol, when the symbol is defined in a different object file, and when the symbol is defined in the same object file. @@ -1291,7 +1286,7 @@ thing for the relocation. You may need to set the doing a link in which the output object file format is S-records. @item -Using the linker to generate relocateable output in a different object +Using the linker to generate relocatable output in a different object file format is impossible in the general case, so you generally don't have to worry about that. The GNU linker makes sure to stop that from happening when an input file in a different format has relocations. @@ -1350,7 +1345,7 @@ howto structure. Some mechanism would be used to determine which type of howto structure was being used by a particular format. The new howto structure would clearly define the relocation behaviour in -the case of an assembly, a relocateable link, and a final link. At +the case of an assembly, a relocatable link, and a final link. At least one special function would be defined as an escape, and it might make sense to define more. @@ -1482,8 +1477,7 @@ external data. @file{elfcode.h} is compiled twice, once via @file{elfcode.h} includes functions to swap the ELF structures in and out of external form, as well as a few more complex functions. -Linker support is found in @file{elflink.c} and @file{elflink.h}. The -latter file is compiled twice, for both 32 and 64 bit support. The +Linker support is found in @file{elflink.c}. The linker support is only used if the processor specific file defines @samp{elf_backend_relocate_section}, which is required to relocate the section contents. If that macro is not defined, the generic linker code @@ -1566,7 +1560,7 @@ relocations. @samp{Rela} relocations will require more space in object files (but not in executables, except when using dynamic linking). However, this is outweighed by the simplicity of addend handling when using @samp{Rela} relocations. With @samp{Rel} relocations, the addend -must be stored in the section contents, which makes relocateable links +must be stored in the section contents, which makes relocatable links more complex. For example, consider C code like @code{i = a[1000];} where @samp{a} is @@ -1578,7 +1572,7 @@ relocations, that addend must be stored in the instructions themselves. If you are adding support for a RISC chip which uses two or more instructions to load an address, then the addend may not fit in a single instruction, and will have to be somehow split among the instructions. -This makes linking awkward, particularly when doing a relocateable link +This makes linking awkward, particularly when doing a relocatable link in which the addend may have to be updated. It can be done---the MIPS ELF support does it---but it should be avoided when possible. @@ -1611,7 +1605,7 @@ called @file{@var{cpu}.h}. This file should define any target specific information which may be needed outside of the BFD code. In particular it should use the @samp{START_RELOC_NUMBERS}, @samp{RELOC_NUMBER}, @samp{FAKE_RELOC}, @samp{EMPTY_RELOC} and @samp{END_RELOC_NUMBERS} -macros to create a table mapping the number used to indentify a +macros to create a table mapping the number used to identify a relocation to a name describing that relocation. While not a BFD component, you probably also want to make the binutils @@ -1645,7 +1639,7 @@ information, and modify the section contents according to the relocation information. In simple cases, this is little more than a loop over the relocations which computes the value of each relocation and calls @samp{_bfd_final_link_relocate}. The function must check for a -relocateable link, and in that case normally needs to do nothing other +relocatable link, and in that case normally needs to do nothing other than adjust the addend for relocations against a section symbol. The complex cases generally have to do with dynamic linker support. GOT @@ -1788,7 +1782,7 @@ The implementation within BFD of a particular object file format. The set of functions which appear in a particular target vector. @item BFD -The BFD library itself. Also, each object file, archive, or exectable +The BFD library itself. Also, each object file, archive, or executable opened by the BFD library has the type @samp{bfd *}, and is sometimes referred to as a bfd. diff --git a/contrib/binutils/bfd/doc/bfdio.texi b/contrib/binutils/bfd/doc/bfdio.texi new file mode 100644 index 000000000000..b8c79d30ccdf --- /dev/null +++ b/contrib/binutils/bfd/doc/bfdio.texi @@ -0,0 +1,41 @@ +@findex bfd_get_mtime +@subsubsection @code{bfd_get_mtime} +@strong{Synopsis} +@example +long bfd_get_mtime (bfd *abfd); +@end example +@strong{Description}@* +Return the file modification time (as read from the file system, or +from the archive header for archive members). + +@findex bfd_get_size +@subsubsection @code{bfd_get_size} +@strong{Synopsis} +@example +long bfd_get_size (bfd *abfd); +@end example +@strong{Description}@* +Return the file size (as read from file system) for the file +associated with BFD @var{abfd}. + +The initial motivation for, and use of, this routine is not +so we can get the exact size of the object the BFD applies to, since +that might not be generally possible (archive members for example). +It would be ideal if someone could eventually modify +it so that such results were guaranteed. + +Instead, we want to ask questions like "is this NNN byte sized +object I'm about to try read from file offset YYY reasonable?" +As as example of where we might do this, some object formats +use string tables for which the first @code{sizeof (long)} bytes of the +table contain the size of the table itself, including the size bytes. +If an application tries to read what it thinks is one of these +string tables, without some way to validate the size, and for +some reason the size is wrong (byte swapping error, wrong location +for the string table, etc.), the only clue is likely to be a read +error when it tries to read the table, or a "virtual memory +exhausted" error when it tries to allocate 15 bazillon bytes +of space for the 15 bazillon byte table it is about to read. +This function at least allows us to answer the question, "is the +size reasonable?". + diff --git a/contrib/binutils/bfd/doc/bfdt.texi b/contrib/binutils/bfd/doc/bfdt.texi index 46bb61a4c635..74cace4a60a5 100644 --- a/contrib/binutils/bfd/doc/bfdt.texi +++ b/contrib/binutils/bfd/doc/bfdt.texi @@ -10,8 +10,11 @@ to the rest of the data. @example -struct _bfd +struct bfd @{ + /* A unique identifier of the BFD */ + unsigned int id; + /* The filename the application opened the BFD with. */ const char *filename; @@ -25,33 +28,33 @@ struct _bfd is the result of an fopen on the filename. However, if the BFD_IN_MEMORY flag is set, then iostream is actually a pointer to a bfd_in_memory struct. */ - PTR iostream; + void *iostream; /* Is the file descriptor being cached? That is, can it be closed as needed, and re-opened when accessed later? */ - boolean cacheable; + bfd_boolean cacheable; /* Marks whether there was a default target specified when the BFD was opened. This is used to select which matching algorithm to use to choose the back end. */ - boolean target_defaulted; + bfd_boolean target_defaulted; /* The caching routines use these to maintain a least-recently-used list of BFDs. */ - struct _bfd *lru_prev, *lru_next; + struct bfd *lru_prev, *lru_next; /* When a file is closed by the caching routines, BFD retains state information on the file here... */ ufile_ptr where; /* ... and here: (``once'' means at least once). */ - boolean opened_once; + bfd_boolean opened_once; /* Set if we have a locally maintained mtime value, rather than getting it from the file each time. */ - boolean mtime_set; + bfd_boolean mtime_set; - /* File modified time, if mtime_set is true. */ + /* File modified time, if mtime_set is TRUE. */ long mtime; /* Reserved for an unimplemented file locking extension. */ @@ -80,16 +83,16 @@ struct _bfd /* Remember when output has begun, to stop strange things from happening. */ - boolean output_has_begun; + bfd_boolean output_has_begun; /* A hash table for section names. */ struct bfd_hash_table section_htab; /* Pointer to linked list of sections. */ - struct sec *sections; + struct bfd_section *sections; /* The place where we add to the section list. */ - struct sec **section_tail; + struct bfd_section **section_tail; /* The number of sections. */ unsigned int section_count; @@ -102,7 +105,7 @@ struct _bfd unsigned int symcount; /* Symbol table for output BFD (with symcount entries). */ - struct symbol_cache_entry **outsymbols; + struct bfd_symbol **outsymbols; /* Used for slurped dynamic symbol tables. */ unsigned int dynsymcount; @@ -111,14 +114,14 @@ struct _bfd const struct bfd_arch_info *arch_info; /* Stuff only useful for archives. */ - PTR arelt_data; - struct _bfd *my_archive; /* The containing archive BFD. */ - struct _bfd *next; /* The next BFD in the archive. */ - struct _bfd *archive_head; /* The first BFD in the archive. */ - boolean has_armap; + void *arelt_data; + struct bfd *my_archive; /* The containing archive BFD. */ + struct bfd *next; /* The next BFD in the archive. */ + struct bfd *archive_head; /* The first BFD in the archive. */ + bfd_boolean has_armap; /* A chain of BFD structures involved in a link. */ - struct _bfd *link_next; + struct bfd *link_next; /* A field used by _bfd_generic_link_add_archive_symbols. This will be used only for archive elements. */ @@ -156,17 +159,22 @@ struct _bfd struct cisco_core_struct *cisco_core_data; struct versados_data_struct *versados_data; struct netbsd_core_struct *netbsd_core_data; - PTR any; + struct mach_o_data_struct *mach_o_data; + struct mach_o_fat_data_struct *mach_o_fat_data; + struct bfd_pef_data_struct *pef_data; + struct bfd_pef_xlib_data_struct *pef_xlib_data; + struct bfd_sym_data_struct *sym_data; + void *any; @} tdata; /* Used by the application to hold private data. */ - PTR usrdata; + void *usrdata; /* Where all the allocated stuff under this BFD goes. This is a - struct objalloc *, but we use PTR to avoid requiring the inclusion of - objalloc.h. */ - PTR memory; + struct objalloc *, but we use void * to avoid requiring the inclusion + of objalloc.h. */ + void *memory; @}; @end example @@ -258,14 +266,14 @@ by @var{message}, a colon, and a space. It is followed by a newline. @subsection BFD error handler Some BFD functions want to print messages describing the problem. They call a BFD error handler function. This -function may be overriden by the program. +function may be overridden by the program. The BFD error handler acts like printf. @example -typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...)); +typedef void (*bfd_error_handler_type) (const char *, ...); @end example @findex bfd_set_error_handler @@ -317,7 +325,7 @@ returns the file name. @subsubsection @code{bfd_get_reloc_upper_bound} @strong{Synopsis} @example -long bfd_get_reloc_upper_bound(bfd *abfd, asection *sect); +long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); @end example @strong{Description}@* Return the number of bytes required to store the @@ -329,10 +337,7 @@ attached to bfd @var{abfd}. If an error occurs, return -1. @strong{Synopsis} @example long bfd_canonicalize_reloc - (bfd *abfd, - asection *sec, - arelent **loc, - asymbol **syms); + (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); @end example @strong{Description}@* Call the back end associated with the open BFD @@ -362,7 +367,7 @@ The argument @var{abfd} is ignored. @subsubsection @code{bfd_set_file_flags} @strong{Synopsis} @example -boolean bfd_set_file_flags(bfd *abfd, flagword flags); +bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); @end example @strong{Description}@* Set the flag word in the BFD @var{abfd} to the value @var{flags}. @@ -418,60 +423,19 @@ not sign extend addresses, and @code{-1} otherwise. @subsubsection @code{bfd_set_start_address} @strong{Synopsis} @example -boolean bfd_set_start_address(bfd *abfd, bfd_vma vma); +bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); @end example @strong{Description}@* Make @var{vma} the entry point of output BFD @var{abfd}. @strong{Returns}@* -Returns @code{true} on success, @code{false} otherwise. - -@findex bfd_get_mtime -@subsubsection @code{bfd_get_mtime} -@strong{Synopsis} -@example -long bfd_get_mtime(bfd *abfd); -@end example -@strong{Description}@* -Return the file modification time (as read from the file system, or -from the archive header for archive members). - -@findex bfd_get_size -@subsubsection @code{bfd_get_size} -@strong{Synopsis} -@example -long bfd_get_size(bfd *abfd); -@end example -@strong{Description}@* -Return the file size (as read from file system) for the file -associated with BFD @var{abfd}. - -The initial motivation for, and use of, this routine is not -so we can get the exact size of the object the BFD applies to, since -that might not be generally possible (archive members for example). -It would be ideal if someone could eventually modify -it so that such results were guaranteed. - -Instead, we want to ask questions like "is this NNN byte sized -object I'm about to try read from file offset YYY reasonable?" -As as example of where we might do this, some object formats -use string tables for which the first @code{sizeof (long)} bytes of the -table contain the size of the table itself, including the size bytes. -If an application tries to read what it thinks is one of these -string tables, without some way to validate the size, and for -some reason the size is wrong (byte swapping error, wrong location -for the string table, etc.), the only clue is likely to be a read -error when it tries to read the table, or a "virtual memory -exhausted" error when it tries to allocate 15 bazillon bytes -of space for the 15 bazillon byte table it is about to read. -This function at least allows us to answer the quesion, "is the -size reasonable?". +Returns @code{TRUE} on success, @code{FALSE} otherwise. @findex bfd_get_gp_size @subsubsection @code{bfd_get_gp_size} @strong{Synopsis} @example -unsigned int bfd_get_gp_size(bfd *abfd); +unsigned int bfd_get_gp_size (bfd *abfd); @end example @strong{Description}@* Return the maximum size of objects to be optimized using the GP @@ -482,7 +446,7 @@ argument to the compiler, assembler or linker. @subsubsection @code{bfd_set_gp_size} @strong{Synopsis} @example -void bfd_set_gp_size(bfd *abfd, unsigned int i); +void bfd_set_gp_size (bfd *abfd, unsigned int i); @end example @strong{Description}@* Set the maximum size of objects to be optimized using the GP @@ -493,7 +457,7 @@ the @code{-G} argument to the compiler, assembler or linker. @subsubsection @code{bfd_scan_vma} @strong{Synopsis} @example -bfd_vma bfd_scan_vma(const char *string, const char **end, int base); +bfd_vma bfd_scan_vma (const char *string, const char **end, int base); @end example @strong{Description}@* Convert, like @code{strtoul}, a numerical expression @@ -512,11 +476,11 @@ returned. @subsubsection @code{bfd_copy_private_bfd_data} @strong{Synopsis} @example -boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd); +bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); @end example @strong{Description}@* Copy private BFD information from the BFD @var{ibfd} to the -the BFD @var{obfd}. Return @code{true} on success, @code{false} on error. +the BFD @var{obfd}. Return @code{TRUE} on success, @code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -535,12 +499,12 @@ Not enough memory exists to create private data for @var{obfd}. @subsubsection @code{bfd_merge_private_bfd_data} @strong{Synopsis} @example -boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd); +bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); @end example @strong{Description}@* Merge private BFD information from the BFD @var{ibfd} to the -the output file BFD @var{obfd} when linking. Return @code{true} -on success, @code{false} on error. Possible error returns are: +the output file BFD @var{obfd} when linking. Return @code{TRUE} +on success, @code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -558,11 +522,11 @@ Not enough memory exists to create private data for @var{obfd}. @subsubsection @code{bfd_set_private_flags} @strong{Synopsis} @example -boolean bfd_set_private_flags(bfd *abfd, flagword flags); +bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); @end example @strong{Description}@* Set private BFD flag information in the BFD @var{abfd}. -Return @code{true} on success, @code{false} on error. Possible error +Return @code{TRUE} on success, @code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -573,40 +537,38 @@ Not enough memory exists to create private data for @var{obfd}. @end itemize @example #define bfd_set_private_flags(abfd, flags) \ - BFD_SEND (abfd, _bfd_set_private_flags, \ - (abfd, flags)) + BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) @end example -@findex stuff -@subsubsection @code{stuff} +@findex Other functions +@subsubsection @code{Other functions} @strong{Description}@* -Stuff which should be documented: +The following functions exist but have not yet been documented. @example #define bfd_sizeof_headers(abfd, reloc) \ - BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc)) + BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc)) #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ - BFD_SEND (abfd, _bfd_find_nearest_line, (abfd, sec, syms, off, file, func, line)) + BFD_SEND (abfd, _bfd_find_nearest_line, \ + (abfd, sec, syms, off, file, func, line)) - /* Do these three do anything useful at all, for any back end? */ #define bfd_debug_info_start(abfd) \ - BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) + BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) #define bfd_debug_info_end(abfd) \ - BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) + BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) #define bfd_debug_info_accumulate(abfd, section) \ - BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) - + BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) #define bfd_stat_arch_elt(abfd, stat) \ - BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) + BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) #define bfd_update_armap_timestamp(abfd) \ - BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) + BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) #define bfd_set_arch_mach(abfd, arch, mach)\ - BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) + BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) #define bfd_relax_section(abfd, section, link_info, again) \ BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) @@ -654,9 +616,8 @@ Stuff which should be documented: BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) extern bfd_byte *bfd_get_relocated_section_contents - PARAMS ((bfd *, struct bfd_link_info *, - struct bfd_link_order *, bfd_byte *, - boolean, asymbol **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, + bfd_boolean, asymbol **); @end example @@ -664,7 +625,7 @@ extern bfd_byte *bfd_get_relocated_section_contents @subsubsection @code{bfd_alt_mach_code} @strong{Synopsis} @example -boolean bfd_alt_mach_code(bfd *abfd, int alternative); +bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); @end example @strong{Description}@* When more than one machine code number is available for the @@ -673,3 +634,57 @@ the preferred one (alternative == 0) and any others. Currently, only ELF supports this feature, with up to two alternate machine codes. + +@example +struct bfd_preserve +@{ + void *marker; + void *tdata; + flagword flags; + const struct bfd_arch_info *arch_info; + struct bfd_section *sections; + struct bfd_section **section_tail; + unsigned int section_count; + struct bfd_hash_table section_htab; +@}; + +@end example +@findex bfd_preserve_save +@subsubsection @code{bfd_preserve_save} +@strong{Synopsis} +@example +bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); +@end example +@strong{Description}@* +When testing an object for compatibility with a particular +target back-end, the back-end object_p function needs to set +up certain fields in the bfd on successfully recognizing the +object. This typically happens in a piecemeal fashion, with +failures possible at many points. On failure, the bfd is +supposed to be restored to its initial state, which is +virtually impossible. However, restoring a subset of the bfd +state works in practice. This function stores the subset and +reinitializes the bfd. + +@findex bfd_preserve_restore +@subsubsection @code{bfd_preserve_restore} +@strong{Synopsis} +@example +void bfd_preserve_restore (bfd *, struct bfd_preserve *); +@end example +@strong{Description}@* +This function restores bfd state saved by bfd_preserve_save. +If MARKER is non-NULL in struct bfd_preserve then that block +and all subsequently bfd_alloc'd memory is freed. + +@findex bfd_preserve_finish +@subsubsection @code{bfd_preserve_finish} +@strong{Synopsis} +@example +void bfd_preserve_finish (bfd *, struct bfd_preserve *); +@end example +@strong{Description}@* +This function should be called when the bfd state saved by +bfd_preserve_save is no longer needed. ie. when the back-end +object_p function returns with success. + diff --git a/contrib/binutils/bfd/doc/bfdwin.texi b/contrib/binutils/bfd/doc/bfdwin.texi new file mode 100644 index 000000000000..b1fd7d5bed69 --- /dev/null +++ b/contrib/binutils/bfd/doc/bfdwin.texi @@ -0,0 +1,2 @@ +@findex +@subsubsection @code{} diff --git a/contrib/binutils/bfd/doc/cache.texi b/contrib/binutils/bfd/doc/cache.texi index 56d1f185c9f0..2bc3696b101b 100644 --- a/contrib/binutils/bfd/doc/cache.texi +++ b/contrib/binutils/bfd/doc/cache.texi @@ -48,7 +48,7 @@ otherwise, it has to perform the complicated lookup function. @subsubsection @code{bfd_cache_init} @strong{Synopsis} @example -boolean bfd_cache_init (bfd *abfd); +bfd_boolean bfd_cache_init (bfd *abfd); @end example @strong{Description}@* Add a newly opened BFD to the cache. @@ -57,21 +57,21 @@ Add a newly opened BFD to the cache. @subsubsection @code{bfd_cache_close} @strong{Synopsis} @example -boolean bfd_cache_close (bfd *abfd); +bfd_boolean bfd_cache_close (bfd *abfd); @end example @strong{Description}@* Remove the BFD @var{abfd} from the cache. If the attached file is open, then close it too. @strong{Returns}@* -@code{false} is returned if closing the file fails, @code{true} is +@code{FALSE} is returned if closing the file fails, @code{TRUE} is returned if all is well. @findex bfd_open_file @subsubsection @code{bfd_open_file} @strong{Synopsis} @example -FILE* bfd_open_file(bfd *abfd); +FILE* bfd_open_file (bfd *abfd); @end example @strong{Description}@* Call the OS to open a file for @var{abfd}. Return the @code{FILE *} @@ -84,7 +84,7 @@ cache, so it won't have to be removed from it. @subsubsection @code{bfd_cache_lookup_worker} @strong{Synopsis} @example -FILE *bfd_cache_lookup_worker(bfd *abfd); +FILE *bfd_cache_lookup_worker (bfd *abfd); @end example @strong{Description}@* Called when the macro @code{bfd_cache_lookup} fails to find a diff --git a/contrib/binutils/bfd/doc/chew.c b/contrib/binutils/bfd/doc/chew.c index bdf76e46e197..7c060da2d1cb 100644 --- a/contrib/binutils/bfd/doc/chew.c +++ b/contrib/binutils/bfd/doc/chew.c @@ -1,6 +1,6 @@ /* chew Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, - 2002 + 2002, 2003 Free Software Foundation, Inc. Contributed by steve chamberlain @cygnus @@ -494,8 +494,11 @@ paramstuff () string_type out; init_string (&out); +#define NO_PARAMS 1 + /* Make sure that it's not already param'd or proto'd. */ - if (find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "(")) + if (NO_PARAMS + || find (tos, "PARAMS") || find (tos, "PROTO") || !find (tos, "(")) { catstr (&out, tos); } diff --git a/contrib/binutils/bfd/doc/coffcode.texi b/contrib/binutils/bfd/doc/coffcode.texi index 473747e21fbb..f9e15a62834e 100644 --- a/contrib/binutils/bfd/doc/coffcode.texi +++ b/contrib/binutils/bfd/doc/coffcode.texi @@ -188,7 +188,7 @@ section. This transformation uses the This routine runs though the provided symbol table and uses the offsets generated by the previous pass and the pointers generated when the symbol table was read in to create the -structured hierachy required by coff. It changes each pointer +structured hierarchy required by coff. It changes each pointer to a symbol into the index into the symbol table of the asymbol. @itemize @bullet @@ -259,7 +259,7 @@ typedef struct coff_symbol_struct struct lineno_cache_entry *lineno; /* Have the line numbers been relocated yet ? */ - boolean done_lineno; + bfd_boolean done_lineno; @} coff_symbol_type; @end example @findex bfd_coff_backend_data @@ -325,10 +325,10 @@ typedef struct unsigned int _bfd_relsz; unsigned int _bfd_linesz; unsigned int _bfd_filnmlen; - boolean _bfd_coff_long_filenames; - boolean _bfd_coff_long_section_names; + bfd_boolean _bfd_coff_long_filenames; + bfd_boolean _bfd_coff_long_section_names; unsigned int _bfd_coff_default_section_alignment_power; - boolean _bfd_coff_force_symnames_in_strings; + bfd_boolean _bfd_coff_force_symnames_in_strings; unsigned int _bfd_coff_debug_string_prefix_length; void (*_bfd_coff_swap_filehdr_in) @@ -343,32 +343,32 @@ typedef struct void (*_bfd_coff_swap_reloc_in) PARAMS ((bfd *abfd, PTR, PTR)); - boolean (*_bfd_coff_bad_format_hook) + bfd_boolean (*_bfd_coff_bad_format_hook) PARAMS ((bfd *, PTR)); - boolean (*_bfd_coff_set_arch_mach_hook) + bfd_boolean (*_bfd_coff_set_arch_mach_hook) PARAMS ((bfd *, PTR)); PTR (*_bfd_coff_mkobject_hook) PARAMS ((bfd *, PTR, PTR)); - boolean (*_bfd_styp_to_sec_flags_hook) + bfd_boolean (*_bfd_styp_to_sec_flags_hook) PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); void (*_bfd_set_alignment_hook) PARAMS ((bfd *, asection *, PTR)); - boolean (*_bfd_coff_slurp_symbol_table) + bfd_boolean (*_bfd_coff_slurp_symbol_table) PARAMS ((bfd *)); - boolean (*_bfd_coff_symname_in_debug) + bfd_boolean (*_bfd_coff_symname_in_debug) PARAMS ((bfd *, struct internal_syment *)); - boolean (*_bfd_coff_pointerize_aux_hook) + bfd_boolean (*_bfd_coff_pointerize_aux_hook) PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *)); - boolean (*_bfd_coff_print_aux) + bfd_boolean (*_bfd_coff_print_aux) PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *, combined_entry_type *, unsigned int)); @@ -383,13 +383,13 @@ typedef struct enum coff_symbol_classification (*_bfd_coff_classify_symbol) PARAMS ((bfd *, struct internal_syment *)); - boolean (*_bfd_coff_compute_section_file_positions) + bfd_boolean (*_bfd_coff_compute_section_file_positions) PARAMS ((bfd *)); - boolean (*_bfd_coff_start_final_link) + bfd_boolean (*_bfd_coff_start_final_link) PARAMS ((bfd *, struct bfd_link_info *)); - boolean (*_bfd_coff_relocate_section) + bfd_boolean (*_bfd_coff_relocate_section) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); @@ -398,19 +398,19 @@ typedef struct struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); - boolean (*_bfd_coff_adjust_symndx) + bfd_boolean (*_bfd_coff_adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, boolean *)); + struct internal_reloc *, bfd_boolean *)); - boolean (*_bfd_coff_link_add_one_symbol) + bfd_boolean (*_bfd_coff_link_add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, - asection *, bfd_vma, const char *, boolean, boolean, + asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); - boolean (*_bfd_coff_link_output_has_begun) + bfd_boolean (*_bfd_coff_link_output_has_begun) PARAMS ((bfd *, struct coff_final_link_info *)); - boolean (*_bfd_coff_final_link_postscript) + bfd_boolean (*_bfd_coff_final_link_postscript) PARAMS ((bfd *, struct coff_final_link_info *)); @} bfd_coff_backend_data; @@ -480,7 +480,8 @@ typedef struct #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ - ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr)) + ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ + (abfd, filehdr, aouthdr)) #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ @@ -505,7 +506,8 @@ typedef struct ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ (abfd, file, base, symbol, aux, indaux)) -#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)\ +#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ + reloc, data, src_ptr, dst_ptr)\ ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) @@ -533,7 +535,8 @@ typedef struct #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ (obfd, info, ibfd, sec, rel, adjustedp)) -#define bfd_coff_link_add_one_symbol(info,abfd,name,flags,section,value,string,cp,coll,hashp)\ +#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ + value, string, cp, coll, hashp)\ ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ (info, abfd, name, flags, section, value, string, cp, coll, hashp)) diff --git a/contrib/binutils/bfd/doc/core.texi b/contrib/binutils/bfd/doc/core.texi index 08a8c259b42f..e45759cf647b 100644 --- a/contrib/binutils/bfd/doc/core.texi +++ b/contrib/binutils/bfd/doc/core.texi @@ -8,7 +8,7 @@ These are functions pertaining to core files. @subsubsection @code{bfd_core_file_failing_command} @strong{Synopsis} @example -const char *bfd_core_file_failing_command(bfd *abfd); +const char *bfd_core_file_failing_command (bfd *abfd); @end example @strong{Description}@* Return a read-only string explaining which program was running @@ -18,7 +18,7 @@ when it failed and produced the core file @var{abfd}. @subsubsection @code{bfd_core_file_failing_signal} @strong{Synopsis} @example -int bfd_core_file_failing_signal(bfd *abfd); +int bfd_core_file_failing_signal (bfd *abfd); @end example @strong{Description}@* Returns the signal number which caused the core dump which @@ -28,11 +28,11 @@ generated the file the BFD @var{abfd} is attached to. @subsubsection @code{core_file_matches_executable_p} @strong{Synopsis} @example -boolean core_file_matches_executable_p +bfd_boolean core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd); @end example @strong{Description}@* -Return @code{true} if the core file attached to @var{core_bfd} +Return @code{TRUE} if the core file attached to @var{core_bfd} was generated by a run of the executable file attached to -@var{exec_bfd}, @code{false} otherwise. +@var{exec_bfd}, @code{FALSE} otherwise. diff --git a/contrib/binutils/bfd/doc/fdl.texi b/contrib/binutils/bfd/doc/fdl.texi new file mode 100644 index 000000000000..176233cb1b05 --- /dev/null +++ b/contrib/binutils/bfd/doc/fdl.texi @@ -0,0 +1,366 @@ +@c -*-texinfo-*- +@appendix GNU Free Documentation License +@center Version 1.1, March 2000 + +@display +Copyright (C) 2000, Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display +@sp 1 +@enumerate 0 +@item +PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document ``free'' in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of ``copyleft'', which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + +@sp 1 +@item +APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The ``Document'', below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as ``you.'' + +A ``Modified Version'' of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A ``Secondary Section'' is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The ``Invariant Sections'' are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The ``Cover Texts'' are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A ``Transparent'' copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not ``Transparent'' is called ``Opaque.'' + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The ``Title Page'' means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, ``Title Page'' means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. +@sp 1 +@item +VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. +@sp 1 +@item +COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. +@sp 1 +@item +MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission.@* +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five).@* +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher.@* +D. Preserve all the copyright notices of the Document.@* +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices.@* +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below.@* +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice.@* +H. Include an unaltered copy of this License.@* +I. Preserve the section entitled ``History'', and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled ``History'' in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence.@* +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the ``History'' section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission.@* +K. In any section entitled ``Acknowledgements'' or ``Dedications'', + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein.@* +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles.@* +M. Delete any section entitled ``Endorsements.'' Such a section + may not be included in the Modified Version.@* +N. Do not retitle any existing section as ``Endorsements'' + or to conflict in title with any Invariant Section.@* +@sp 1 +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled ``Endorsements'', provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. +@sp 1 +@item +COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled ``History'' +in the various original documents, forming one section entitled +``History''; likewise combine any sections entitled ``Acknowledgements'', +and any sections entitled ``Dedications.'' You must delete all sections +entitled ``Endorsements.'' +@sp 1 +@item +COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. +@sp 1 +@item +AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an ``aggregate'', and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. +@sp 1 +@item +TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. +@sp 1 +@item +TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. +@sp 1 +@item +FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License ``or any later version'' applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + +@end enumerate + +@unnumberedsec ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + +@smallexample +@group +Copyright (C) @var{year} @var{your name}. +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation; +with the Invariant Sections being @var{list their titles}, with the +Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. +A copy of the license is included in the section entitled "GNU +Free Documentation License." +@end group +@end smallexample + +If you have no Invariant Sections, write ``with no Invariant Sections'' +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write ``no Front-Cover Texts'' instead of +``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/contrib/binutils/bfd/doc/format.texi b/contrib/binutils/bfd/doc/format.texi index d64bba15313a..32a1d751fcd4 100644 --- a/contrib/binutils/bfd/doc/format.texi +++ b/contrib/binutils/bfd/doc/format.texi @@ -27,7 +27,7 @@ The BFD contains the result of an executable core dump. @subsubsection @code{bfd_check_format} @strong{Synopsis} @example -boolean bfd_check_format(bfd *abfd, bfd_format format); +bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); @end example @strong{Description}@* Verify if the file attached to the BFD @var{abfd} is compatible @@ -42,7 +42,7 @@ interrogated to determine a match. If the default target matches, it is used. If not, exactly one target must recognize the file, or an error results. -The function returns @code{true} on success, otherwise @code{false} +The function returns @code{TRUE} on success, otherwise @code{FALSE} with one of the following error codes: @itemize @bullet @@ -70,10 +70,11 @@ more than one backend recognised the file format. @subsubsection @code{bfd_check_format_matches} @strong{Synopsis} @example -boolean bfd_check_format_matches(bfd *abfd, bfd_format format, char ***matching); +bfd_boolean bfd_check_format_matches + (bfd *abfd, bfd_format format, char ***matching); @end example @strong{Description}@* -Like @code{bfd_check_format}, except when it returns false with +Like @code{bfd_check_format}, except when it returns FALSE with @code{bfd_errno} set to @code{bfd_error_file_ambiguously_recognized}. In that case, if @var{matching} is not NULL, it will be filled in with a NULL-terminated list of the names of the formats that matched, @@ -87,7 +88,7 @@ should free it. @subsubsection @code{bfd_set_format} @strong{Synopsis} @example -boolean bfd_set_format(bfd *abfd, bfd_format format); +bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); @end example @strong{Description}@* This function sets the file format of the BFD @var{abfd} to the @@ -99,7 +100,7 @@ is not open for writing, then an error occurs. @subsubsection @code{bfd_format_string} @strong{Synopsis} @example -const char *bfd_format_string(bfd_format format); +const char *bfd_format_string (bfd_format format); @end example @strong{Description}@* Return a pointer to a const string diff --git a/contrib/binutils/bfd/doc/hash.texi b/contrib/binutils/bfd/doc/hash.texi index eb87273eceb1..3e7372c88add 100644 --- a/contrib/binutils/bfd/doc/hash.texi +++ b/contrib/binutils/bfd/doc/hash.texi @@ -35,7 +35,7 @@ bfd_hash_table} (defined in @code{bfd.h}) and call @code{bfd_hash_table_init} (if you know approximately how many entries you will need, the function @code{bfd_hash_table_init_n}, which takes a @var{size} argument, may be used). -@code{bfd_hash_table_init} returns @code{false} if some sort of +@code{bfd_hash_table_init} returns @code{FALSE} if some sort of error occurs. @findex bfd_hash_newfunc @@ -61,24 +61,24 @@ been allocated for a hash table. This will not free up the The function @code{bfd_hash_lookup} is used both to look up a string in the hash table and to create a new entry. -If the @var{create} argument is @code{false}, @code{bfd_hash_lookup} +If the @var{create} argument is @code{FALSE}, @code{bfd_hash_lookup} will look up a string. If the string is found, it will returns a pointer to a @code{struct bfd_hash_entry}. If the string is not found in the table @code{bfd_hash_lookup} will return @code{NULL}. You should not modify any of the fields in the returns @code{struct bfd_hash_entry}. -If the @var{create} argument is @code{true}, the string will be +If the @var{create} argument is @code{TRUE}, the string will be entered into the hash table if it is not already there. Either way a pointer to a @code{struct bfd_hash_entry} will be returned, either to the existing structure or to a newly created one. In this case, a @code{NULL} return means that an error occurred. -If the @var{create} argument is @code{true}, and a new entry is +If the @var{create} argument is @code{TRUE}, and a new entry is created, the @var{copy} argument is used to decide whether to copy the string onto the hash table objalloc or not. If -@var{copy} is passed as @code{false}, you must be careful not to +@var{copy} is passed as @code{FALSE}, you must be careful not to deallocate or modify the string as long as the hash table exists. @@ -95,7 +95,7 @@ hash table entry (a @code{struct bfd_hash_entry *}) and the generic pointer passed to @code{bfd_hash_traverse}. The function must return a @code{boolean} value, which indicates whether to continue traversing the hash table. If the function returns -@code{false}, @code{bfd_hash_traverse} will stop the traversal and +@code{FALSE}, @code{bfd_hash_traverse} will stop the traversal and return immediately. @node Deriving a New Hash Table Type, , Traversing a Hash Table, Hash Tables diff --git a/contrib/binutils/bfd/doc/init.texi b/contrib/binutils/bfd/doc/init.texi index e561a7720f7d..0905f6bc4ca9 100644 --- a/contrib/binutils/bfd/doc/init.texi +++ b/contrib/binutils/bfd/doc/init.texi @@ -5,7 +5,7 @@ These are the functions that handle initializing a BFD. @subsubsection @code{bfd_init} @strong{Synopsis} @example -void bfd_init(void); +void bfd_init (void); @end example @strong{Description}@* This routine must be called before any other BFD function to diff --git a/contrib/binutils/bfd/doc/libbfd.texi b/contrib/binutils/bfd/doc/libbfd.texi index b28650fc65a5..5c9ced016304 100644 --- a/contrib/binutils/bfd/doc/libbfd.texi +++ b/contrib/binutils/bfd/doc/libbfd.texi @@ -10,7 +10,7 @@ completeness. @subsubsection @code{bfd_write_bigendian_4byte_int} @strong{Synopsis} @example -boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); +bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); @end example @strong{Description}@* Write a 4 byte integer @var{i} to the output BFD @var{abfd}, in big @@ -43,54 +43,54 @@ To detect calling these with less than a @code{bfd_vma}, use /* Byte swapping macros for user section data. */ #define bfd_put_8(abfd, val, ptr) \ - ((void) (*((unsigned char *) (ptr)) = (unsigned char) (val))) + ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) #define bfd_put_signed_8 \ - bfd_put_8 + bfd_put_8 #define bfd_get_8(abfd, ptr) \ - (*(unsigned char *) (ptr) & 0xff) + (*(unsigned char *) (ptr) & 0xff) #define bfd_get_signed_8(abfd, ptr) \ - (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) + (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) #define bfd_put_16(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx16, ((val),(ptr))) + BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) #define bfd_put_signed_16 \ - bfd_put_16 + bfd_put_16 #define bfd_get_16(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx16, (ptr)) + BFD_SEND (abfd, bfd_getx16, (ptr)) #define bfd_get_signed_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) #define bfd_put_32(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx32, ((val),(ptr))) + BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) #define bfd_put_signed_32 \ - bfd_put_32 + bfd_put_32 #define bfd_get_32(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx32, (ptr)) + BFD_SEND (abfd, bfd_getx32, (ptr)) #define bfd_get_signed_32(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx_signed_32, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) #define bfd_put_64(abfd, val, ptr) \ - BFD_SEND(abfd, bfd_putx64, ((val), (ptr))) + BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) #define bfd_put_signed_64 \ - bfd_put_64 + bfd_put_64 #define bfd_get_64(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx64, (ptr)) + BFD_SEND (abfd, bfd_getx64, (ptr)) #define bfd_get_signed_64(abfd, ptr) \ - BFD_SEND(abfd, bfd_getx_signed_64, (ptr)) + BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) -#define bfd_get(bits, abfd, ptr) \ - ( (bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ - : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ - : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ - : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ - : (abort (), (bfd_vma) - 1)) +#define bfd_get(bits, abfd, ptr) \ + ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ + : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ + : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ + : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ + : (abort (), (bfd_vma) - 1)) -#define bfd_put(bits, abfd, val, ptr) \ - ( (bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ - : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ - : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ - : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ - : (abort (), (void) 0)) +#define bfd_put(bits, abfd, val, ptr) \ + ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ + : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ + : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ + : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ + : (abort (), (void) 0)) @end example @@ -142,52 +142,24 @@ order and their data in little endian order. #define bfd_h_get_signed_64(abfd, ptr) \ BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) -/* Refinements on the above, which should eventually go away. Save - cluttering the source with (bfd_vma) and (bfd_byte *) casts. */ +/* Aliases for the above, which should eventually go away. */ -#define H_PUT_64(abfd, val, where) \ - bfd_h_put_64 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_32(abfd, val, where) \ - bfd_h_put_32 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_16(abfd, val, where) \ - bfd_h_put_16 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_8 bfd_h_put_8 - -#define H_PUT_S64(abfd, val, where) \ - bfd_h_put_signed_64 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_S32(abfd, val, where) \ - bfd_h_put_signed_32 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_S16(abfd, val, where) \ - bfd_h_put_signed_16 ((abfd), (bfd_vma) (val), (bfd_byte *) (where)) - -#define H_PUT_S8 bfd_h_put_signed_8 - -#define H_GET_64(abfd, where) \ - bfd_h_get_64 ((abfd), (bfd_byte *) (where)) - -#define H_GET_32(abfd, where) \ - bfd_h_get_32 ((abfd), (bfd_byte *) (where)) - -#define H_GET_16(abfd, where) \ - bfd_h_get_16 ((abfd), (bfd_byte *) (where)) - -#define H_GET_8 bfd_h_get_8 - -#define H_GET_S64(abfd, where) \ - bfd_h_get_signed_64 ((abfd), (bfd_byte *) (where)) - -#define H_GET_S32(abfd, where) \ - bfd_h_get_signed_32 ((abfd), (bfd_byte *) (where)) - -#define H_GET_S16(abfd, where) \ - bfd_h_get_signed_16 ((abfd), (bfd_byte *) (where)) - -#define H_GET_S8 bfd_h_get_signed_8 +#define H_PUT_64 bfd_h_put_64 +#define H_PUT_32 bfd_h_put_32 +#define H_PUT_16 bfd_h_put_16 +#define H_PUT_8 bfd_h_put_8 +#define H_PUT_S64 bfd_h_put_signed_64 +#define H_PUT_S32 bfd_h_put_signed_32 +#define H_PUT_S16 bfd_h_put_signed_16 +#define H_PUT_S8 bfd_h_put_signed_8 +#define H_GET_64 bfd_h_get_64 +#define H_GET_32 bfd_h_get_32 +#define H_GET_16 bfd_h_get_16 +#define H_GET_8 bfd_h_get_8 +#define H_GET_S64 bfd_h_get_signed_64 +#define H_GET_S32 bfd_h_get_signed_32 +#define H_GET_S16 bfd_h_get_signed_16 +#define H_GET_S8 bfd_h_get_signed_8 @end example diff --git a/contrib/binutils/bfd/doc/linker.texi b/contrib/binutils/bfd/doc/linker.texi index 5105cc77fb3e..f2e2bc1cb74f 100644 --- a/contrib/binutils/bfd/doc/linker.texi +++ b/contrib/binutils/bfd/doc/linker.texi @@ -55,7 +55,7 @@ however, some additional information will be needed. For example, with each entry in the hash table the a.out linker keeps the index the symbol has in the final output file -(this index number is used so that when doing a relocateable +(this index number is used so that when doing a relocatable link the symbol index used in the output file can be quickly filled in when copying over a reloc). The a.out linker code defines the required structures and functions for a hash table @@ -158,7 +158,7 @@ If the @code{_bfd_final_link} routine is also going to need to read the symbol information, the @code{_bfd_link_add_symbols} routine should save it somewhere attached to the object file BFD. However, the information should only be saved if the -@code{keep_memory} field of the @code{info} argument is true, so +@code{keep_memory} field of the @code{info} argument is TRUE, so that the @code{-no-keep-memory} linker switch is effective. The a.out function which adds symbols from an object file is @@ -229,7 +229,7 @@ which has several aspects. It must relocate the contents of the input sections and copy the data into the output sections. It must build an output symbol table including any local symbols from the input files and the global symbols from the -hash table. When producing relocateable output, it must +hash table. When producing relocatable output, it must modify the input relocs and write them into the output file. There may also be object format dependent work to be done. @@ -266,7 +266,7 @@ various input sections, fill constants, and, eventually, other types of information. They also describe relocs that must be created by the BFD backend, but do not correspond to any input file; this is used to support -Ur, which builds constructors -while generating a relocateable object file. +while generating a relocatable object file. @node Relocating the section contents, Writing the symbol table, Information provided by the linker, Performing the Final Link @subsubsection Relocating the section contents @@ -285,7 +285,7 @@ output section in terms of a section belonging to one of the input files. The @code{_bfd_final_link} function should read the contents of the section and any associated relocs, apply the relocs to the section contents, and write out the modified -section contents. If performing a relocateable link, the +section contents. If performing a relocatable link, the relocs themselves must also be modified and written out. @findex _bfd_relocate_contents @@ -352,7 +352,7 @@ file at the end of @code{NAME(aout,final_link)}. @subsubsection @code{bfd_link_split_section} @strong{Synopsis} @example -boolean bfd_link_split_section(bfd *abfd, asection *sec); +bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); @end example @strong{Description}@* Return nonzero if @var{sec} should be split during a diff --git a/contrib/binutils/bfd/doc/mmo.texi b/contrib/binutils/bfd/doc/mmo.texi new file mode 100644 index 000000000000..c30895287fec --- /dev/null +++ b/contrib/binutils/bfd/doc/mmo.texi @@ -0,0 +1,365 @@ +@section mmo backend +The mmo object format is used exclusively together with Professor +Donald E.@: Knuth's educational 64-bit processor MMIX. The simulator +@command{mmix} which is available at +@url{http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz} +understands this format. That package also includes a combined +assembler and linker called @command{mmixal}. The mmo format has +no advantages feature-wise compared to e.g. ELF. It is a simple +non-relocatable object format with no support for archives or +debugging information, except for symbol value information and +line numbers (which is not yet implemented in BFD). See +@url{http://www-cs-faculty.stanford.edu/~knuth/mmix.html} for more +information about MMIX. The ELF format is used for intermediate +object files in the BFD implementation. + +@c We want to xref the symbol table node. A feature in "chew" +@c requires that "commands" do not contain spaces in the +@c arguments. Hence the hyphen in "Symbol-table". +@menu +* File layout:: +* Symbol-table:: +* mmo section mapping:: +@end menu + +@node File layout, Symbol-table, mmo, mmo +@subsection File layout +The mmo file contents is not partitioned into named sections as +with e.g.@: ELF. Memory areas is formed by specifying the +location of the data that follows. Only the memory area +@samp{0x0000@dots{}00} to @samp{0x01ff@dots{}ff} is executable, so +it is used for code (and constants) and the area +@samp{0x2000@dots{}00} to @samp{0x20ff@dots{}ff} is used for +writable data. @xref{mmo section mapping}. + +Contents is entered as 32-bit words, xor:ed over previous +contents, always zero-initialized. A word that starts with the +byte @samp{0x98} forms a command called a @samp{lopcode}, where +the next byte distinguished between the thirteen lopcodes. The +two remaining bytes, called the @samp{Y} and @samp{Z} fields, or +the @samp{YZ} field (a 16-bit big-endian number), are used for +various purposes different for each lopcode. As documented in +@url{http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz}, +the lopcodes are: + +There is provision for specifying ``special data'' of 65536 +different types. We use type 80 (decimal), arbitrarily chosen the +same as the ELF @code{e_machine} number for MMIX, filling it with +section information normally found in ELF objects. @xref{mmo +section mapping}. + +@table @code +@item lop_quote +0x98000001. The next word is contents, regardless of whether it +starts with 0x98 or not. + +@item lop_loc +0x9801YYZZ, where @samp{Z} is 1 or 2. This is a location +directive, setting the location for the next data to the next +32-bit word (for @math{Z = 1}) or 64-bit word (for @math{Z = 2}), +plus @math{Y * 2^56}. Normally @samp{Y} is 0 for the text segment +and 2 for the data segment. + +@item lop_skip +0x9802YYZZ. Increase the current location by @samp{YZ} bytes. + +@item lop_fixo +0x9803YYZZ, where @samp{Z} is 1 or 2. Store the current location +as 64 bits into the location pointed to by the next 32-bit +(@math{Z = 1}) or 64-bit (@math{Z = 2}) word, plus @math{Y * +2^56}. + +@item lop_fixr +0x9804YYZZ. @samp{YZ} is stored into the current location plus +@math{2 - 4 * YZ}. + +@item lop_fixrx +0x980500ZZ. @samp{Z} is 16 or 24. A value @samp{L} derived from +the following 32-bit word are used in a manner similar to +@samp{YZ} in lop_fixr: it is xor:ed into the current location +minus @math{4 * L}. The first byte of the word is 0 or 1. If it +is 1, then @math{L = (@var{lowest 24 bits of word}) - 2^Z}, if 0, +then @math{L = (@var{lowest 24 bits of word})}. + +@item lop_file +0x9806YYZZ. @samp{Y} is the file number, @samp{Z} is count of +32-bit words. Set the file number to @samp{Y} and the line +counter to 0. The next @math{Z * 4} bytes contain the file name, +padded with zeros if the count is not a multiple of four. The +same @samp{Y} may occur multiple times, but @samp{Z} must be 0 for +all but the first occurrence. + +@item lop_line +0x9807YYZZ. @samp{YZ} is the line number. Together with +lop_file, it forms the source location for the next 32-bit word. +Note that for each non-lopcode 32-bit word, line numbers are +assumed incremented by one. + +@item lop_spec +0x9808YYZZ. @samp{YZ} is the type number. Data until the next +lopcode other than lop_quote forms special data of type @samp{YZ}. +@xref{mmo section mapping}. + +Other types than 80, (or type 80 with a content that does not +parse) is stored in sections named @code{.MMIX.spec_data.@var{n}} +where @var{n} is the @samp{YZ}-type. The flags for such a +sections say not to allocate or load the data. The vma is 0. +Contents of multiple occurrences of special data @var{n} is +concatenated to the data of the previous lop_spec @var{n}s. The +location in data or code at which the lop_spec occurred is lost. + +@item lop_pre +0x980901ZZ. The first lopcode in a file. The @samp{Z} field forms the +length of header information in 32-bit words, where the first word +tells the time in seconds since @samp{00:00:00 GMT Jan 1 1970}. + +@item lop_post +0x980a00ZZ. @math{Z > 32}. This lopcode follows after all +content-generating lopcodes in a program. The @samp{Z} field +denotes the value of @samp{rG} at the beginning of the program. +The following @math{256 - Z} big-endian 64-bit words are loaded +into global registers @samp{$G} @dots{} @samp{$255}. + +@item lop_stab +0x980b0000. The next-to-last lopcode in a program. Must follow +immediately after the lop_post lopcode and its data. After this +lopcode follows all symbols in a compressed format +(@pxref{Symbol-table}). + +@item lop_end +0x980cYYZZ. The last lopcode in a program. It must follow the +lop_stab lopcode and its data. The @samp{YZ} field contains the +number of 32-bit words of symbol table information after the +preceding lop_stab lopcode. +@end table + +Note that the lopcode "fixups"; @code{lop_fixr}, @code{lop_fixrx} and +@code{lop_fixo} are not generated by BFD, but are handled. They are +generated by @code{mmixal}. + +This trivial one-label, one-instruction file: + +@example + :Main TRAP 1,2,3 +@end example + +can be represented this way in mmo: + +@example + 0x98090101 - lop_pre, one 32-bit word with timestamp. + <timestamp> + 0x98010002 - lop_loc, text segment, using a 64-bit address. + Note that mmixal does not emit this for the file above. + 0x00000000 - Address, high 32 bits. + 0x00000000 - Address, low 32 bits. + 0x98060002 - lop_file, 2 32-bit words for file-name. + 0x74657374 - "test" + 0x2e730000 - ".s\0\0" + 0x98070001 - lop_line, line 1. + 0x00010203 - TRAP 1,2,3 + 0x980a00ff - lop_post, setting $255 to 0. + 0x00000000 + 0x00000000 + 0x980b0000 - lop_stab for ":Main" = 0, serial 1. + 0x203a4040 @xref{Symbol-table}. + 0x10404020 + 0x4d206120 + 0x69016e00 + 0x81000000 + 0x980c0005 - lop_end; symbol table contained five 32-bit words. +@end example +@node Symbol-table, mmo section mapping, File layout, mmo +@subsection Symbol table format +From mmixal.w (or really, the generated mmixal.tex) in +@url{http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz}): +``Symbols are stored and retrieved by means of a @samp{ternary +search trie}, following ideas of Bentley and Sedgewick. (See +ACM--SIAM Symp.@: on Discrete Algorithms @samp{8} (1997), 360--369; +R.@:Sedgewick, @samp{Algorithms in C} (Reading, Mass.@: +Addison--Wesley, 1998), @samp{15.4}.) Each trie node stores a +character, and there are branches to subtries for the cases where +a given character is less than, equal to, or greater than the +character in the trie. There also is a pointer to a symbol table +entry if a symbol ends at the current node.'' + +So it's a tree encoded as a stream of bytes. The stream of bytes +acts on a single virtual global symbol, adding and removing +characters and signalling complete symbol points. Here, we read +the stream and create symbols at the completion points. + +First, there's a control byte @code{m}. If any of the listed bits +in @code{m} is nonzero, we execute what stands at the right, in +the listed order: + +@example + (MMO3_LEFT) + 0x40 - Traverse left trie. + (Read a new command byte and recurse.) + + (MMO3_SYMBITS) + 0x2f - Read the next byte as a character and store it in the + current character position; increment character position. + Test the bits of @code{m}: + + (MMO3_WCHAR) + 0x80 - The character is 16-bit (so read another byte, + merge into current character. + + (MMO3_TYPEBITS) + 0xf - We have a complete symbol; parse the type, value + and serial number and do what should be done + with a symbol. The type and length information + is in j = (m & 0xf). + + (MMO3_REGQUAL_BITS) + j == 0xf: A register variable. The following + byte tells which register. + j <= 8: An absolute symbol. Read j bytes as the + big-endian number the symbol equals. + A j = 2 with two zero bytes denotes an + unknown symbol. + j > 8: As with j <= 8, but add (0x20 << 56) + to the value in the following j - 8 + bytes. + + Then comes the serial number, as a variant of + uleb128, but better named ubeb128: + Read bytes and shift the previous value left 7 + (multiply by 128). Add in the new byte, repeat + until a byte has bit 7 set. The serial number + is the computed value minus 128. + + (MMO3_MIDDLE) + 0x20 - Traverse middle trie. (Read a new command byte + and recurse.) Decrement character position. + + (MMO3_RIGHT) + 0x10 - Traverse right trie. (Read a new command byte and + recurse.) +@end example + +Let's look again at the @code{lop_stab} for the trivial file +(@pxref{File layout}). + +@example + 0x980b0000 - lop_stab for ":Main" = 0, serial 1. + 0x203a4040 + 0x10404020 + 0x4d206120 + 0x69016e00 + 0x81000000 +@end example + +This forms the trivial trie (note that the path between ``:'' and +``M'' is redundant): + +@example + 203a ":" + 40 / + 40 / + 10 \ + 40 / + 40 / + 204d "M" + 2061 "a" + 2069 "i" + 016e "n" is the last character in a full symbol, and + with a value represented in one byte. + 00 The value is 0. + 81 The serial number is 1. +@end example + +@node mmo section mapping, , Symbol-table, mmo +@subsection mmo section mapping +The implementation in BFD uses special data type 80 (decimal) to +encapsulate and describe named sections, containing e.g.@: debug +information. If needed, any datum in the encapsulation will be +quoted using lop_quote. First comes a 32-bit word holding the +number of 32-bit words containing the zero-terminated zero-padded +segment name. After the name there's a 32-bit word holding flags +describing the section type. Then comes a 64-bit big-endian word +with the section length (in bytes), then another with the section +start address. Depending on the type of section, the contents +might follow, zero-padded to 32-bit boundary. For a loadable +section (such as data or code), the contents might follow at some +later point, not necessarily immediately, as a lop_loc with the +same start address as in the section description, followed by the +contents. This in effect forms a descriptor that must be emitted +before the actual contents. Sections described this way must not +overlap. + +For areas that don't have such descriptors, synthetic sections are +formed by BFD. Consecutive contents in the two memory areas +@samp{0x0000@dots{}00} to @samp{0x01ff@dots{}ff} and +@samp{0x2000@dots{}00} to @samp{0x20ff@dots{}ff} are entered in +sections named @code{.text} and @code{.data} respectively. If an area +is not otherwise described, but would together with a neighboring +lower area be less than @samp{0x40000000} bytes long, it is joined +with the lower area and the gap is zero-filled. For other cases, +a new section is formed, named @code{.MMIX.sec.@var{n}}. Here, +@var{n} is a number, a running count through the mmo file, +starting at 0. + +A loadable section specified as: + +@example + .section secname,"ax" + TETRA 1,2,3,4,-1,-2009 + BYTE 80 +@end example + +and linked to address @samp{0x4}, is represented by the sequence: + +@example + 0x98080050 - lop_spec 80 + 0x00000002 - two 32-bit words for the section name + 0x7365636e - "secn" + 0x616d6500 - "ame\0" + 0x00000033 - flags CODE, READONLY, LOAD, ALLOC + 0x00000000 - high 32 bits of section length + 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits + 0x00000000 - high 32 bits of section address + 0x00000004 - section address is 4 + 0x98010002 - 64 bits with address of following data + 0x00000000 - high 32 bits of address + 0x00000004 - low 32 bits: data starts at address 4 + 0x00000001 - 1 + 0x00000002 - 2 + 0x00000003 - 3 + 0x00000004 - 4 + 0xffffffff - -1 + 0xfffff827 - -2009 + 0x50000000 - 80 as a byte, padded with zeros. +@end example + +Note that the lop_spec wrapping does not include the section +contents. Compare this to a non-loaded section specified as: + +@example + .section thirdsec + TETRA 200001,100002 + BYTE 38,40 +@end example + +This, when linked to address @samp{0x200000000000001c}, is +represented by: + +@example + 0x98080050 - lop_spec 80 + 0x00000002 - two 32-bit words for the section name + 0x7365636e - "thir" + 0x616d6500 - "dsec" + 0x00000010 - flag READONLY + 0x00000000 - high 32 bits of section length + 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits + 0x20000000 - high 32 bits of address + 0x0000001c - low 32 bits of address 0x200000000000001c + 0x00030d41 - 200001 + 0x000186a2 - 100002 + 0x26280000 - 38, 40 as bytes, padded with zeros +@end example + +For the latter example, the section contents must not be +loaded in memory, and is therefore specified as part of the +special data. The address is usually unimportant but might +provide information for e.g.@: the DWARF 2 debugging format. diff --git a/contrib/binutils/bfd/doc/opncls.texi b/contrib/binutils/bfd/doc/opncls.texi index 6c778f92e09f..8cd2ab9048b1 100644 --- a/contrib/binutils/bfd/doc/opncls.texi +++ b/contrib/binutils/bfd/doc/opncls.texi @@ -5,7 +5,7 @@ @subsubsection @code{bfd_openr} @strong{Synopsis} @example -bfd *bfd_openr(const char *filename, const char *target); +bfd *bfd_openr (const char *filename, const char *target); @end example @strong{Description}@* Open the file @var{filename} (using @code{fopen}) with the target @@ -15,37 +15,38 @@ Calls @code{bfd_find_target}, so @var{target} is interpreted as by that function. If @code{NULL} is returned then an error has occured. Possible errors -are @code{bfd_error_no_memory}, @code{bfd_error_invalid_target} or @code{system_call} error. +are @code{bfd_error_no_memory}, @code{bfd_error_invalid_target} or +@code{system_call} error. @findex bfd_fdopenr @subsubsection @code{bfd_fdopenr} @strong{Synopsis} @example -bfd *bfd_fdopenr(const char *filename, const char *target, int fd); +bfd *bfd_fdopenr (const char *filename, const char *target, int fd); @end example @strong{Description}@* -@code{bfd_fdopenr} is to @code{bfd_fopenr} much like @code{fdopen} is to @code{fopen}. -It opens a BFD on a file already described by the @var{fd} -supplied. +@code{bfd_fdopenr} is to @code{bfd_fopenr} much like @code{fdopen} is to +@code{fopen}. It opens a BFD on a file already described by the +@var{fd} supplied. -When the file is later @code{bfd_close}d, the file descriptor will be closed. +When the file is later @code{bfd_close}d, the file descriptor will +be closed. If the caller desires that this file descriptor be +cached by BFD (opened as needed, closed as needed to free +descriptors for other opens), with the supplied @var{fd} used as +an initial file descriptor (but subject to closure at any time), +call bfd_set_cacheable(bfd, 1) on the returned BFD. The default +is to assume no caching; the file descriptor will remain open +until @code{bfd_close}, and will not be affected by BFD operations +on other files. -If the caller desires that this file descriptor be cached by BFD -(opened as needed, closed as needed to free descriptors for -other opens), with the supplied @var{fd} used as an initial -file descriptor (but subject to closure at any time), call -bfd_set_cacheable(bfd, 1) on the returned BFD. The default is to -assume no cacheing; the file descriptor will remain open until -@code{bfd_close}, and will not be affected by BFD operations on other -files. - -Possible errors are @code{bfd_error_no_memory}, @code{bfd_error_invalid_target} and @code{bfd_error_system_call}. +Possible errors are @code{bfd_error_no_memory}, +@code{bfd_error_invalid_target} and @code{bfd_error_system_call}. @findex bfd_openstreamr @subsubsection @code{bfd_openstreamr} @strong{Synopsis} @example -bfd *bfd_openstreamr(const char *, const char *, PTR); +bfd *bfd_openstreamr (const char *, const char *, void *); @end example @strong{Description}@* Open a BFD for read access on an existing stdio stream. When @@ -55,7 +56,7 @@ the BFD is passed to @code{bfd_close}, the stream will be closed. @subsubsection @code{bfd_openw} @strong{Synopsis} @example -bfd *bfd_openw(const char *filename, const char *target); +bfd *bfd_openw (const char *filename, const char *target); @end example @strong{Description}@* Create a BFD, associated with file @var{filename}, using the @@ -68,13 +69,13 @@ Possible errors are @code{bfd_error_system_call}, @code{bfd_error_no_memory}, @subsubsection @code{bfd_close} @strong{Synopsis} @example -boolean bfd_close(bfd *abfd); +bfd_boolean bfd_close (bfd *abfd); @end example @strong{Description}@* -Close a BFD. If the BFD was open for writing, -then pending operations are completed and the file written out -and closed. If the created file is executable, then -@code{chmod} is called to mark it as such. +Close a BFD. If the BFD was open for writing, then pending +operations are completed and the file written out and closed. +If the created file is executable, then @code{chmod} is called +to mark it as such. All memory attached to the BFD is released. @@ -82,19 +83,19 @@ The file descriptor associated with the BFD is closed (even if it was passed in to BFD by @code{bfd_fdopenr}). @strong{Returns}@* -@code{true} is returned if all is ok, otherwise @code{false}. +@code{TRUE} is returned if all is ok, otherwise @code{FALSE}. @findex bfd_close_all_done @subsubsection @code{bfd_close_all_done} @strong{Synopsis} @example -boolean bfd_close_all_done(bfd *); +bfd_boolean bfd_close_all_done (bfd *); @end example @strong{Description}@* -Close a BFD. Differs from @code{bfd_close} -since it does not complete any pending operations. This -routine would be used if the application had just used BFD for -swapping and didn't want to use any of the writing code. +Close a BFD. Differs from @code{bfd_close} since it does not +complete any pending operations. This routine would be used +if the application had just used BFD for swapping and didn't +want to use any of the writing code. If the created file is executable, then @code{chmod} is called to mark it as such. @@ -102,25 +103,24 @@ to mark it as such. All memory attached to the BFD is released. @strong{Returns}@* -@code{true} is returned if all is ok, otherwise @code{false}. +@code{TRUE} is returned if all is ok, otherwise @code{FALSE}. @findex bfd_create @subsubsection @code{bfd_create} @strong{Synopsis} @example -bfd *bfd_create(const char *filename, bfd *templ); +bfd *bfd_create (const char *filename, bfd *templ); @end example @strong{Description}@* -Create a new BFD in the manner of -@code{bfd_openw}, but without opening a file. The new BFD -takes the target from the target used by @var{template}. The -format is always set to @code{bfd_object}. +Create a new BFD in the manner of @code{bfd_openw}, but without +opening a file. The new BFD takes the target from the target +used by @var{template}. The format is always set to @code{bfd_object}. @findex bfd_make_writable @subsubsection @code{bfd_make_writable} @strong{Synopsis} @example -boolean bfd_make_writable(bfd *abfd); +bfd_boolean bfd_make_writable (bfd *abfd); @end example @strong{Description}@* Takes a BFD as created by @code{bfd_create} and converts it @@ -129,13 +129,13 @@ by converting the BFD to BFD_IN_MEMORY. It's assumed that you will call @code{bfd_make_readable} on this bfd later. @strong{Returns}@* -@code{true} is returned if all is ok, otherwise @code{false}. +@code{TRUE} is returned if all is ok, otherwise @code{FALSE}. @findex bfd_make_readable @subsubsection @code{bfd_make_readable} @strong{Synopsis} @example -boolean bfd_make_readable(bfd *abfd); +bfd_boolean bfd_make_readable (bfd *abfd); @end example @strong{Description}@* Takes a BFD as created by @code{bfd_create} and @@ -145,15 +145,121 @@ contents out to the memory buffer, then reversing the direction. @strong{Returns}@* -@code{true} is returned if all is ok, otherwise @code{false}. +@code{TRUE} is returned if all is ok, otherwise @code{FALSE}. @findex bfd_alloc @subsubsection @code{bfd_alloc} @strong{Synopsis} @example -PTR bfd_alloc (bfd *abfd, size_t wanted); +void *bfd_alloc (bfd *abfd, size_t wanted); @end example @strong{Description}@* Allocate a block of @var{wanted} bytes of memory attached to @code{abfd} and return a pointer to it. +@findex bfd_calc_gnu_debuglink_crc32 +@subsubsection @code{bfd_calc_gnu_debuglink_crc32} +@strong{Synopsis} +@example +unsigned long bfd_calc_gnu_debuglink_crc32 + (unsigned long crc, const unsigned char *buf, bfd_size_type len); +@end example +@strong{Description}@* +Computes a CRC value as used in the .gnu_debuglink section. +Advances the previously computed @var{crc} value by computing +and adding in the crc32 for @var{len} bytes of @var{buf}. + +@strong{Returns}@* +Return the updated CRC32 value. + +@findex get_debug_link_info +@subsubsection @code{get_debug_link_info} +@strong{Synopsis} +@example +char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out); +@end example +@strong{Description}@* +fetch the filename and CRC32 value for any separate debuginfo +associated with @var{abfd}. Return NULL if no such info found, +otherwise return filename and update @var{crc32_out}. + +@findex separate_debug_file_exists +@subsubsection @code{separate_debug_file_exists} +@strong{Synopsis} +@example +bfd_boolean separate_debug_file_exists + (char *name, unsigned long crc32); +@end example +@strong{Description}@* +Checks to see if @var{name} is a file and if its contents +match @var{crc32}. + +@findex find_separate_debug_file +@subsubsection @code{find_separate_debug_file} +@strong{Synopsis} +@example +char *find_separate_debug_file (bfd *abfd); +@end example +@strong{Description}@* +Searches @var{abfd} for a reference to separate debugging +information, scans various locations in the filesystem, including +the file tree rooted at @var{debug_file_directory}, and returns a +filename of such debugging information if the file is found and has +matching CRC32. Returns NULL if no reference to debugging file +exists, or file cannot be found. + +@findex bfd_follow_gnu_debuglink +@subsubsection @code{bfd_follow_gnu_debuglink} +@strong{Synopsis} +@example +char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); +@end example +@strong{Description}@* +Takes a BFD and searches it for a .gnu_debuglink section. If this +section is found, it examines the section for the name and checksum +of a '.debug' file containing auxiliary debugging information. It +then searches the filesystem for this .debug file in some standard +locations, including the directory tree rooted at @var{dir}, and if +found returns the full filename. + +If @var{dir} is NULL, it will search a default path configured into +libbfd at build time. [XXX this feature is not currently +implemented]. + +@strong{Returns}@* +@code{NULL} on any errors or failure to locate the .debug file, +otherwise a pointer to a heap-allocated string containing the +filename. The caller is responsible for freeing this string. + +@findex bfd_create_gnu_debuglink_section +@subsubsection @code{bfd_create_gnu_debuglink_section} +@strong{Synopsis} +@example +struct bfd_section *bfd_create_gnu_debuglink_section + (bfd *abfd, const char *filename); +@end example +@strong{Description}@* +Takes a @var{BFD} and adds a .gnu_debuglink section to it. The section is sized +to be big enough to contain a link to the specified @var{filename}. + +@strong{Returns}@* +A pointer to the new section is returned if all is ok. Otherwise @code{NULL} is +returned and bfd_error is set. + +@findex bfd_fill_in_gnu_debuglink_section +@subsubsection @code{bfd_fill_in_gnu_debuglink_section} +@strong{Synopsis} +@example +bfd_boolean bfd_fill_in_gnu_debuglink_section + (bfd *abfd, struct bfd_section *sect, const char *filename); +@end example +@strong{Description}@* +Takes a @var{BFD} and containing a .gnu_debuglink section @var{SECT} +and fills in the contents of the section to contain a link to the +specified @var{filename}. The filename should be relative to the +current directory. + +@strong{Returns}@* +@code{TRUE} is returned if all is ok. Otherwise @code{FALSE} is returned +and bfd_error is set. + diff --git a/contrib/binutils/bfd/doc/reloc.texi b/contrib/binutils/bfd/doc/reloc.texi index 1ebd4309e31d..9253a33f032e 100644 --- a/contrib/binutils/bfd/doc/reloc.texi +++ b/contrib/binutils/bfd/doc/reloc.texi @@ -60,7 +60,7 @@ typedef enum bfd_reloc_status typedef struct reloc_cache_entry @{ /* A pointer into the canonical table of pointers. */ - struct symbol_cache_entry **sym_ptr_ptr; + struct bfd_symbol **sym_ptr_ptr; /* offset in section. */ bfd_size_type address; @@ -84,15 +84,16 @@ Here is a description of each of the fields within an @code{arelent}: @code{sym_ptr_ptr} @end itemize The symbol table pointer points to a pointer to the symbol -associated with the relocation request. It is -the pointer into the table returned by the back end's -@code{get_symtab} action. @xref{Symbols}. The symbol is referenced -through a pointer to a pointer so that tools like the linker -can fix up all the symbols of the same name by modifying only -one pointer. The relocation routine looks in the symbol and -uses the base of the section the symbol is attached to and the -value of the symbol as the initial relocation offset. If the -symbol pointer is zero, then the section provided is looked up. +associated with the relocation request. It is the pointer +into the table returned by the back end's +@code{canonicalize_symtab} action. @xref{Symbols}. The symbol is +referenced through a pointer to a pointer so that tools like +the linker can fix up all the symbols of the same name by +modifying only one pointer. The relocation routine looks in +the symbol and uses the base of the section the symbol is +attached to and the value of the symbol as the initial +relocation offset. If the symbol pointer is zero, then the +section provided is looked up. @itemize @bullet @@ -254,7 +255,7 @@ information that libbfd needs to know to tie up a back end's data. @example -struct symbol_cache_entry; /* Forward declaration. */ +struct bfd_symbol; /* Forward declaration. */ struct reloc_howto_struct @{ @@ -283,7 +284,7 @@ struct reloc_howto_struct data section of the addend. The relocation function will subtract from the relocation value the address of the location being relocated. */ - boolean pc_relative; + bfd_boolean pc_relative; /* The bit position of the reloc value in the destination. The relocated value is left shifted by this amount. */ @@ -295,11 +296,11 @@ struct reloc_howto_struct /* If this field is non null, then the supplied function is called rather than the normal function. This allows really - strange relocation methods to be accomodated (e.g., i960 callj + strange relocation methods to be accommodated (e.g., i960 callj instructions). */ bfd_reloc_status_type (*special_function) - PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *, - bfd *, char **)); + (bfd *, arelent *, struct bfd_symbol *, void *, asection *, + bfd *, char **); /* The textual name of the relocation type. */ char *name; @@ -319,21 +320,20 @@ struct reloc_howto_struct USE_REL targets set this field to TRUE. Why this is so is peculiar to each particular target. For relocs that aren't used in partial links (e.g. GOT stuff) it doesn't matter what this is set to. */ - boolean partial_inplace; + bfd_boolean partial_inplace; - /* The src_mask selects which parts of the read in data - are to be used in the relocation sum. E.g., if this was an 8 bit - byte of data which we read and relocated, this would be - 0x000000ff. When we have relocs which have an addend, such as - sun4 extended relocs, the value in the offset part of a - relocating field is garbage so we never use it. In this case - the mask would be 0x00000000. */ + /* src_mask selects the part of the instruction (or data) to be used + in the relocation sum. If the target relocations don't have an + addend in the reloc, eg. ELF USE_REL, src_mask will normally equal + dst_mask to extract the addend from the section contents. If + relocations do have an addend in the reloc, eg. ELF USE_RELA, this + field should be zero. Non-zero values for ELF USE_RELA targets are + bogus as in those cases the value in the dst_mask part of the + section contents should be treated as garbage. */ bfd_vma src_mask; - /* The dst_mask selects which parts of the instruction are replaced - into the instruction. In most cases src_mask == dst_mask, - except in the above special case, where dst_mask would be - 0x000000ff, and src_mask would be 0x00000000. */ + /* dst_mask selects which parts of the instruction (or data) are + replaced with a relocated value. */ bfd_vma dst_mask; /* When some formats create PC relative instructions, they leave @@ -342,7 +342,7 @@ struct reloc_howto_struct be made just by adding in an ordinary offset (e.g., sun3 a.out). Some formats leave the displacement part of an instruction empty (e.g., m88k bcs); this flag signals the fact. */ - boolean pcrel_offset; + bfd_boolean pcrel_offset; @}; @end example @@ -361,7 +361,7 @@ moment, we are compatible, so do it this way. @example #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ - NAME, false, 0, 0, IN) + NAME, FALSE, 0, 0, IN) @end example @@ -369,8 +369,8 @@ moment, we are compatible, so do it this way. This is used to fill in an empty howto entry in an array. @example #define EMPTY_HOWTO(C) \ - HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \ - NULL, false, 0, 0, false) + HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ + NULL, FALSE, 0, 0, FALSE) @end example @@ -379,7 +379,7 @@ Helper routine to turn a symbol into a relocation value. @example #define HOWTO_PREPARE(relocation, symbol) \ @{ \ - if (symbol != (asymbol *) NULL) \ + if (symbol != NULL) \ @{ \ if (bfd_is_com_section (symbol->section)) \ @{ \ @@ -422,8 +422,7 @@ arelent_chain; @subsubsection @code{bfd_check_overflow} @strong{Synopsis} @example -bfd_reloc_status_type -bfd_check_overflow +bfd_reloc_status_type bfd_check_overflow (enum complain_overflow how, unsigned int bitsize, unsigned int rightshift, @@ -441,11 +440,10 @@ Perform overflow checking on @var{relocation} which has @subsubsection @code{bfd_perform_relocation} @strong{Synopsis} @example -bfd_reloc_status_type -bfd_perform_relocation +bfd_reloc_status_type bfd_perform_relocation (bfd *abfd, arelent *reloc_entry, - PTR data, + void *data, asection *input_section, bfd *output_bfd, char **error_message); @@ -470,11 +468,10 @@ this return @code{bfd_reloc_dangerous}. @subsubsection @code{bfd_install_relocation} @strong{Synopsis} @example -bfd_reloc_status_type -bfd_install_relocation +bfd_reloc_status_type bfd_install_relocation (bfd *abfd, arelent *reloc_entry, - PTR data, bfd_vma data_start, + void *data, bfd_vma data_start, asection *input_section, char **error_message); @end example @@ -647,6 +644,32 @@ SPARC64 relocations @deffn {} BFD_RELOC_SPARC_REV32 SPARC little endian relocation @end deffn +@deffn {} BFD_RELOC_SPARC_TLS_GD_HI22 +@deffnx {} BFD_RELOC_SPARC_TLS_GD_LO10 +@deffnx {} BFD_RELOC_SPARC_TLS_GD_ADD +@deffnx {} BFD_RELOC_SPARC_TLS_GD_CALL +@deffnx {} BFD_RELOC_SPARC_TLS_LDM_HI22 +@deffnx {} BFD_RELOC_SPARC_TLS_LDM_LO10 +@deffnx {} BFD_RELOC_SPARC_TLS_LDM_ADD +@deffnx {} BFD_RELOC_SPARC_TLS_LDM_CALL +@deffnx {} BFD_RELOC_SPARC_TLS_LDO_HIX22 +@deffnx {} BFD_RELOC_SPARC_TLS_LDO_LOX10 +@deffnx {} BFD_RELOC_SPARC_TLS_LDO_ADD +@deffnx {} BFD_RELOC_SPARC_TLS_IE_HI22 +@deffnx {} BFD_RELOC_SPARC_TLS_IE_LO10 +@deffnx {} BFD_RELOC_SPARC_TLS_IE_LD +@deffnx {} BFD_RELOC_SPARC_TLS_IE_LDX +@deffnx {} BFD_RELOC_SPARC_TLS_IE_ADD +@deffnx {} BFD_RELOC_SPARC_TLS_LE_HIX22 +@deffnx {} BFD_RELOC_SPARC_TLS_LE_LOX10 +@deffnx {} BFD_RELOC_SPARC_TLS_DTPMOD32 +@deffnx {} BFD_RELOC_SPARC_TLS_DTPMOD64 +@deffnx {} BFD_RELOC_SPARC_TLS_DTPOFF32 +@deffnx {} BFD_RELOC_SPARC_TLS_DTPOFF64 +@deffnx {} BFD_RELOC_SPARC_TLS_TPOFF32 +@deffnx {} BFD_RELOC_SPARC_TLS_TPOFF64 +SPARC TLS relocations +@end deffn @deffn {} BFD_RELOC_ALPHA_GPDISP_HI16 Alpha ECOFF and ELF relocations. Some of these treat the symbol or "addend" in some special way. @@ -713,7 +736,7 @@ GP register. @end deffn @deffn {} BFD_RELOC_ALPHA_BRSGP Like BFD_RELOC_23_PCREL_S2, except that the source and target must -share a common GP, and the target address is adjusted for +share a common GP, and the target address is adjusted for STO_ALPHA_STD_GPLOAD. @end deffn @deffn {} BFD_RELOC_ALPHA_TLSGD @@ -783,6 +806,8 @@ Relocation against a MIPS literal section. @deffnx {} BFD_RELOC_MIPS_REL16 @deffnx {} BFD_RELOC_MIPS_RELGOT @deffnx {} BFD_RELOC_MIPS_JALR +MIPS ELF relocations. +@end deffn @deffn {} BFD_RELOC_FRV_LABEL16 @deffnx {} BFD_RELOC_FRV_LABEL24 @deffnx {} BFD_RELOC_FRV_LO16 @@ -792,9 +817,48 @@ Relocation against a MIPS literal section. @deffnx {} BFD_RELOC_FRV_GPREL32 @deffnx {} BFD_RELOC_FRV_GPRELHI @deffnx {} BFD_RELOC_FRV_GPRELLO +@deffnx {} BFD_RELOC_FRV_GOT12 +@deffnx {} BFD_RELOC_FRV_GOTHI +@deffnx {} BFD_RELOC_FRV_GOTLO +@deffnx {} BFD_RELOC_FRV_FUNCDESC +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOT12 +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTHI +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTLO +@deffnx {} BFD_RELOC_FRV_FUNCDESC_VALUE +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFF12 +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFFHI +@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFFLO +@deffnx {} BFD_RELOC_FRV_GOTOFF12 +@deffnx {} BFD_RELOC_FRV_GOTOFFHI +@deffnx {} BFD_RELOC_FRV_GOTOFFLO Fujitsu Frv Relocations. @end deffn -MIPS ELF relocations. +@deffn {} BFD_RELOC_MN10300_GOTOFF24 +This is a 24bit GOT-relative reloc for the mn10300. +@end deffn +@deffn {} BFD_RELOC_MN10300_GOT32 +This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. +@end deffn +@deffn {} BFD_RELOC_MN10300_GOT24 +This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. +@end deffn +@deffn {} BFD_RELOC_MN10300_GOT16 +This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes +in the instruction. +@end deffn +@deffn {} BFD_RELOC_MN10300_COPY +Copy symbol at runtime. +@end deffn +@deffn {} BFD_RELOC_MN10300_GLOB_DAT +Create GOT entry. +@end deffn +@deffn {} BFD_RELOC_MN10300_JMP_SLOT +Create PLT entry. +@end deffn +@deffn {} BFD_RELOC_MN10300_RELATIVE +Adjust by program base. @end deffn @deffn {} BFD_RELOC_386_GOT32 @deffnx {} BFD_RELOC_386_PLT32 @@ -826,6 +890,14 @@ i386/elf relocations @deffnx {} BFD_RELOC_X86_64_RELATIVE @deffnx {} BFD_RELOC_X86_64_GOTPCREL @deffnx {} BFD_RELOC_X86_64_32S +@deffnx {} BFD_RELOC_X86_64_DTPMOD64 +@deffnx {} BFD_RELOC_X86_64_DTPOFF64 +@deffnx {} BFD_RELOC_X86_64_TPOFF64 +@deffnx {} BFD_RELOC_X86_64_TLSGD +@deffnx {} BFD_RELOC_X86_64_TLSLD +@deffnx {} BFD_RELOC_X86_64_DTPOFF32 +@deffnx {} BFD_RELOC_X86_64_GOTTPOFF +@deffnx {} BFD_RELOC_X86_64_TPOFF32 x86-64/elf relocations @end deffn @deffn {} BFD_RELOC_NS32K_IMM_8 @@ -909,11 +981,53 @@ Picojava relocs. Not all of these appear in object files. @deffnx {} BFD_RELOC_PPC64_PLTGOT16_LO_DS Power(rs6000) and PowerPC relocations. @end deffn +@deffn {} BFD_RELOC_PPC_TLS +@deffnx {} BFD_RELOC_PPC_DTPMOD +@deffnx {} BFD_RELOC_PPC_TPREL16 +@deffnx {} BFD_RELOC_PPC_TPREL16_LO +@deffnx {} BFD_RELOC_PPC_TPREL16_HI +@deffnx {} BFD_RELOC_PPC_TPREL16_HA +@deffnx {} BFD_RELOC_PPC_TPREL +@deffnx {} BFD_RELOC_PPC_DTPREL16 +@deffnx {} BFD_RELOC_PPC_DTPREL16_LO +@deffnx {} BFD_RELOC_PPC_DTPREL16_HI +@deffnx {} BFD_RELOC_PPC_DTPREL16_HA +@deffnx {} BFD_RELOC_PPC_DTPREL +@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16 +@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_LO +@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_HI +@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_HA +@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16 +@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_LO +@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_HI +@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_HA +@deffnx {} BFD_RELOC_PPC_GOT_TPREL16 +@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_LO +@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_HI +@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_HA +@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16 +@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_LO +@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_HI +@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_HA +@deffnx {} BFD_RELOC_PPC64_TPREL16_DS +@deffnx {} BFD_RELOC_PPC64_TPREL16_LO_DS +@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHER +@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHERA +@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHEST +@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHESTA +@deffnx {} BFD_RELOC_PPC64_DTPREL16_DS +@deffnx {} BFD_RELOC_PPC64_DTPREL16_LO_DS +@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHER +@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHERA +@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHEST +@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHESTA +PowerPC and PowerPC64 thread-local storage relocations. +@end deffn @deffn {} BFD_RELOC_I370_D12 IBM 370/390 relocations @end deffn @deffn {} BFD_RELOC_CTOR -The type of reloc used to build a contructor table - at the moment +The type of reloc used to build a constructor table - at the moment probably a 32 bit wide absolute relocation, but the target can choose. It generally does map to one of the other relocation types. @end deffn @@ -938,6 +1052,7 @@ field in the instruction. @deffnx {} BFD_RELOC_ARM_SWI @deffnx {} BFD_RELOC_ARM_MULTI @deffnx {} BFD_RELOC_ARM_CP_OFF_IMM +@deffnx {} BFD_RELOC_ARM_CP_OFF_IMM_S2 @deffnx {} BFD_RELOC_ARM_ADR_IMM @deffnx {} BFD_RELOC_ARM_LDR_IMM @deffnx {} BFD_RELOC_ARM_LITERAL @@ -1034,7 +1149,15 @@ These relocs are only used within the ARM assembler. They are not @deffnx {} BFD_RELOC_SH_IMM_HI16 @deffnx {} BFD_RELOC_SH_IMM_HI16_PCREL @deffnx {} BFD_RELOC_SH_PT_16 -Hitachi SH relocs. Not all of these appear in object files. +@deffnx {} BFD_RELOC_SH_TLS_GD_32 +@deffnx {} BFD_RELOC_SH_TLS_LD_32 +@deffnx {} BFD_RELOC_SH_TLS_LDO_32 +@deffnx {} BFD_RELOC_SH_TLS_IE_32 +@deffnx {} BFD_RELOC_SH_TLS_LE_32 +@deffnx {} BFD_RELOC_SH_TLS_DTPMOD32 +@deffnx {} BFD_RELOC_SH_TLS_DTPOFF32 +@deffnx {} BFD_RELOC_SH_TLS_TPOFF32 +Renesas / SuperH SH relocs. Not all of these appear in object files. @end deffn @deffn {} BFD_RELOC_THUMB_PCREL_BRANCH9 @deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH12 @@ -1131,7 +1254,7 @@ DLX relocs DLX relocs @end deffn @deffn {} BFD_RELOC_M32R_24 -Mitsubishi M32R relocs. +Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit absolute address. @end deffn @deffn {} BFD_RELOC_M32R_10_PCREL @@ -1158,6 +1281,22 @@ This is a 16-bit reloc containing the lower 16 bits of an address. This is a 16-bit reloc containing the small data area offset for use in add3, load, and store instructions. @end deffn +@deffn {} BFD_RELOC_M32R_GOT24 +@deffnx {} BFD_RELOC_M32R_26_PLTREL +@deffnx {} BFD_RELOC_M32R_COPY +@deffnx {} BFD_RELOC_M32R_GLOB_DAT +@deffnx {} BFD_RELOC_M32R_JMP_SLOT +@deffnx {} BFD_RELOC_M32R_RELATIVE +@deffnx {} BFD_RELOC_M32R_GOTOFF +@deffnx {} BFD_RELOC_M32R_GOTPC24 +@deffnx {} BFD_RELOC_M32R_GOT16_HI_ULO +@deffnx {} BFD_RELOC_M32R_GOT16_HI_SLO +@deffnx {} BFD_RELOC_M32R_GOT16_LO +@deffnx {} BFD_RELOC_M32R_GOTPC_HI_ULO +@deffnx {} BFD_RELOC_M32R_GOTPC_HI_SLO +@deffnx {} BFD_RELOC_M32R_GOTPC_LO +For PIC. +@end deffn @deffn {} BFD_RELOC_V850_9_PCREL This is a 9-bit reloc @end deffn @@ -1201,11 +1340,11 @@ This is a 4 bit offset from the tiny data area pointer. @end deffn @deffn {} BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET This is a 16 bit offset from the short data area pointer, with the -bits placed non-contigously in the instruction. +bits placed non-contiguously in the instruction. @end deffn @deffn {} BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET This is a 16 bit offset from the zero data area pointer, with the -bits placed non-contigously in the instruction. +bits placed non-contiguously in the instruction. @end deffn @deffn {} BFD_RELOC_V850_CALLT_6_7_OFFSET This is a 6 bit offset from the call table base pointer. @@ -1213,6 +1352,15 @@ This is a 6 bit offset from the call table base pointer. @deffn {} BFD_RELOC_V850_CALLT_16_16_OFFSET This is a 16 bit offset from the call table base pointer. @end deffn +@deffn {} BFD_RELOC_V850_LONGCALL +Used for relaxing indirect function calls. +@end deffn +@deffn {} BFD_RELOC_V850_LONGJUMP +Used for relaxing indirect jumps. +@end deffn +@deffn {} BFD_RELOC_V850_ALIGN +Used to maintain alignment whilst relaxing. +@end deffn @deffn {} BFD_RELOC_MN10300_32_PCREL This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the instruction. @@ -1305,6 +1453,7 @@ These are relocations for a conditional branch instruction. @deffnx {} BFD_RELOC_MMIX_PUSHJ_1 @deffnx {} BFD_RELOC_MMIX_PUSHJ_2 @deffnx {} BFD_RELOC_MMIX_PUSHJ_3 +@deffnx {} BFD_RELOC_MMIX_PUSHJ_STUBBABLE These are relocations for the PUSHJ instruction. @end deffn @deffn {} BFD_RELOC_MMIX_JMP @@ -1455,6 +1604,95 @@ PC relative 32 bit shifted by 1. @deffn {} BFD_RELOC_390_GOTENT 32 bit rel. offset to GOT entry. @end deffn +@deffn {} BFD_RELOC_390_GOTOFF64 +64 bit offset to GOT. +@end deffn +@deffn {} BFD_RELOC_390_GOTPLT12 +12-bit offset to symbol-entry within GOT, with PLT handling. +@end deffn +@deffn {} BFD_RELOC_390_GOTPLT16 +16-bit offset to symbol-entry within GOT, with PLT handling. +@end deffn +@deffn {} BFD_RELOC_390_GOTPLT32 +32-bit offset to symbol-entry within GOT, with PLT handling. +@end deffn +@deffn {} BFD_RELOC_390_GOTPLT64 +64-bit offset to symbol-entry within GOT, with PLT handling. +@end deffn +@deffn {} BFD_RELOC_390_GOTPLTENT +32-bit rel. offset to symbol-entry within GOT, with PLT handling. +@end deffn +@deffn {} BFD_RELOC_390_PLTOFF16 +16-bit rel. offset from the GOT to a PLT entry. +@end deffn +@deffn {} BFD_RELOC_390_PLTOFF32 +32-bit rel. offset from the GOT to a PLT entry. +@end deffn +@deffn {} BFD_RELOC_390_PLTOFF64 +64-bit rel. offset from the GOT to a PLT entry. +@end deffn +@deffn {} BFD_RELOC_390_TLS_LOAD +@deffnx {} BFD_RELOC_390_TLS_GDCALL +@deffnx {} BFD_RELOC_390_TLS_LDCALL +@deffnx {} BFD_RELOC_390_TLS_GD32 +@deffnx {} BFD_RELOC_390_TLS_GD64 +@deffnx {} BFD_RELOC_390_TLS_GOTIE12 +@deffnx {} BFD_RELOC_390_TLS_GOTIE32 +@deffnx {} BFD_RELOC_390_TLS_GOTIE64 +@deffnx {} BFD_RELOC_390_TLS_LDM32 +@deffnx {} BFD_RELOC_390_TLS_LDM64 +@deffnx {} BFD_RELOC_390_TLS_IE32 +@deffnx {} BFD_RELOC_390_TLS_IE64 +@deffnx {} BFD_RELOC_390_TLS_IEENT +@deffnx {} BFD_RELOC_390_TLS_LE32 +@deffnx {} BFD_RELOC_390_TLS_LE64 +@deffnx {} BFD_RELOC_390_TLS_LDO32 +@deffnx {} BFD_RELOC_390_TLS_LDO64 +@deffnx {} BFD_RELOC_390_TLS_DTPMOD +@deffnx {} BFD_RELOC_390_TLS_DTPOFF +@deffnx {} BFD_RELOC_390_TLS_TPOFF +s390 tls relocations. +@end deffn +@deffn {} BFD_RELOC_390_20 +@deffnx {} BFD_RELOC_390_GOT20 +@deffnx {} BFD_RELOC_390_GOTPLT20 +@deffnx {} BFD_RELOC_390_TLS_GOTIE20 +Long displacement extension. +@end deffn +@deffn {} BFD_RELOC_IP2K_FR9 +Scenix IP2K - 9-bit register number / data address +@end deffn +@deffn {} BFD_RELOC_IP2K_BANK +Scenix IP2K - 4-bit register/data bank number +@end deffn +@deffn {} BFD_RELOC_IP2K_ADDR16CJP +Scenix IP2K - low 13 bits of instruction word address +@end deffn +@deffn {} BFD_RELOC_IP2K_PAGE3 +Scenix IP2K - high 3 bits of instruction word address +@end deffn +@deffn {} BFD_RELOC_IP2K_LO8DATA +@deffnx {} BFD_RELOC_IP2K_HI8DATA +@deffnx {} BFD_RELOC_IP2K_EX8DATA +Scenix IP2K - ext/low/high 8 bits of data address +@end deffn +@deffn {} BFD_RELOC_IP2K_LO8INSN +@deffnx {} BFD_RELOC_IP2K_HI8INSN +Scenix IP2K - low/high 8 bits of instruction word address +@end deffn +@deffn {} BFD_RELOC_IP2K_PC_SKIP +Scenix IP2K - even/odd PC modifier to modify snb pcl.0 +@end deffn +@deffn {} BFD_RELOC_IP2K_TEXT +Scenix IP2K - 16 bit word address in text section. +@end deffn +@deffn {} BFD_RELOC_IP2K_FR_OFFSET +Scenix IP2K - 7-bit sp or dp offset +@end deffn +@deffn {} BFD_RELOC_VPE4KMATH_DATA +@deffnx {} BFD_RELOC_VPE4KMATH_INSN +Scenix VPE4K coprocessor - data/insn-space addressing +@end deffn @deffn {} BFD_RELOC_VTABLE_INHERIT @deffnx {} BFD_RELOC_VTABLE_ENTRY These two relocations are used by the linker to determine which of @@ -1464,7 +1702,7 @@ that are not used, so that the code for those functions need not be included in the output. VTABLE_INHERIT is a zero-space relocation used to describe to the -linker the inheritence tree of a C++ virtual function table. The +linker the inheritance tree of a C++ virtual function table. The relocation's symbol should be the parent class' vtable, and the relocation should be located at the child vtable. @@ -1558,15 +1796,50 @@ Intel IA64 Relocations. @end deffn @deffn {} BFD_RELOC_M68HC11_HI8 Motorola 68HC11 reloc. -This is the 8 bits high part of an absolute address. +This is the 8 bit high part of an absolute address. @end deffn @deffn {} BFD_RELOC_M68HC11_LO8 Motorola 68HC11 reloc. -This is the 8 bits low part of an absolute address. +This is the 8 bit low part of an absolute address. @end deffn @deffn {} BFD_RELOC_M68HC11_3B Motorola 68HC11 reloc. -This is the 3 bits of a value. +This is the 3 bit of a value. +@end deffn +@deffn {} BFD_RELOC_M68HC11_RL_JUMP +Motorola 68HC11 reloc. +This reloc marks the beginning of a jump/call instruction. +It is used for linker relaxation to correctly identify beginning +of instruction and change some branches to use PC-relative +addressing mode. +@end deffn +@deffn {} BFD_RELOC_M68HC11_RL_GROUP +Motorola 68HC11 reloc. +This reloc marks a group of several instructions that gcc generates +and for which the linker relaxation pass can modify and/or remove +some of them. +@end deffn +@deffn {} BFD_RELOC_M68HC11_LO16 +Motorola 68HC11 reloc. +This is the 16-bit lower part of an address. It is used for 'call' +instruction to specify the symbol address without any special +transformation (due to memory bank window). +@end deffn +@deffn {} BFD_RELOC_M68HC11_PAGE +Motorola 68HC11 reloc. +This is a 8-bit reloc that specifies the page number of an address. +It is used by 'call' instruction to specify the page number of +the symbol. +@end deffn +@deffn {} BFD_RELOC_M68HC11_24 +Motorola 68HC11 reloc. +This is a 24-bit reloc that represents the address with a 16-bit +value and a 8-bit page number. The symbol address is transformed +to follow the 16K memory bank of 68HC12 (seen as mapped in the window). +@end deffn +@deffn {} BFD_RELOC_M68HC12_5B +Motorola 68HC12 reloc. +This is the 5 bits of a value. @end deffn @deffn {} BFD_RELOC_CRIS_BDISP8 @deffnx {} BFD_RELOC_CRIS_UNSIGNED_5 @@ -1649,6 +1922,7 @@ OpenRISC Relocations. H8 elf Relocations. @end deffn @deffn {} BFD_RELOC_XSTORMY16_REL_12 +@deffnx {} BFD_RELOC_XSTORMY16_12 @deffnx {} BFD_RELOC_XSTORMY16_24 @deffnx {} BFD_RELOC_XSTORMY16_FPTR16 Sony Xstormy16 Relocations. @@ -1658,6 +1932,50 @@ Sony Xstormy16 Relocations. @deffnx {} BFD_RELOC_VAX_RELATIVE Relocations used by VAX ELF. @end deffn +@deffn {} BFD_RELOC_MSP430_10_PCREL +@deffnx {} BFD_RELOC_MSP430_16_PCREL +@deffnx {} BFD_RELOC_MSP430_16 +@deffnx {} BFD_RELOC_MSP430_16_PCREL_BYTE +@deffnx {} BFD_RELOC_MSP430_16_BYTE +msp430 specific relocation codes +@end deffn +@deffn {} BFD_RELOC_IQ2000_OFFSET_16 +@deffnx {} BFD_RELOC_IQ2000_OFFSET_21 +@deffnx {} BFD_RELOC_IQ2000_UHI16 +IQ2000 Relocations. +@end deffn +@deffn {} BFD_RELOC_XTENSA_RTLD +Special Xtensa relocation used only by PLT entries in ELF shared +objects to indicate that the runtime linker should set the value +to one of its own internal functions or data structures. +@end deffn +@deffn {} BFD_RELOC_XTENSA_GLOB_DAT +@deffnx {} BFD_RELOC_XTENSA_JMP_SLOT +@deffnx {} BFD_RELOC_XTENSA_RELATIVE +Xtensa relocations for ELF shared objects. +@end deffn +@deffn {} BFD_RELOC_XTENSA_PLT +Xtensa relocation used in ELF object files for symbols that may require +PLT entries. Otherwise, this is just a generic 32-bit relocation. +@end deffn +@deffn {} BFD_RELOC_XTENSA_OP0 +@deffnx {} BFD_RELOC_XTENSA_OP1 +@deffnx {} BFD_RELOC_XTENSA_OP2 +Generic Xtensa relocations. Only the operand number is encoded +in the relocation. The details are determined by extracting the +instruction opcode. +@end deffn +@deffn {} BFD_RELOC_XTENSA_ASM_EXPAND +Xtensa relocation to mark that the assembler expanded the +instructions from an original target. The expansion size is +encoded in the reloc size. +@end deffn +@deffn {} BFD_RELOC_XTENSA_ASM_SIMPLIFY +Xtensa relocation to mark that the linker should simplify +assembler-expanded instructions. This is commonly used +internally by the linker after analysis of a +BFD_RELOC_XTENSA_ASM_EXPAND. +@end deffn @example @@ -1667,8 +1985,8 @@ typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; @subsubsection @code{bfd_reloc_type_lookup} @strong{Synopsis} @example -reloc_howto_type * -bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); +reloc_howto_type *bfd_reloc_type_lookup + (bfd *abfd, bfd_reloc_code_real_type code); @end example @strong{Description}@* Return a pointer to a howto structure which, when @@ -1699,21 +2017,22 @@ Useful mainly for printing error messages. @subsubsection @code{bfd_generic_relax_section} @strong{Synopsis} @example -boolean bfd_generic_relax_section +bfd_boolean bfd_generic_relax_section (bfd *abfd, asection *section, struct bfd_link_info *, - boolean *); + bfd_boolean *); @end example @strong{Description}@* Provides default handling for relaxing for back ends which -don't do relaxing -- i.e., does nothing. +don't do relaxing -- i.e., does nothing except make sure that the +final size of the section is set. @findex bfd_generic_gc_sections @subsubsection @code{bfd_generic_gc_sections} @strong{Synopsis} @example -boolean bfd_generic_gc_sections +bfd_boolean bfd_generic_gc_sections (bfd *, struct bfd_link_info *); @end example @strong{Description}@* @@ -1724,7 +2043,7 @@ don't do section gc -- i.e., does nothing. @subsubsection @code{bfd_generic_merge_sections} @strong{Synopsis} @example -boolean bfd_generic_merge_sections +bfd_boolean bfd_generic_merge_sections (bfd *, struct bfd_link_info *); @end example @strong{Description}@* @@ -1735,12 +2054,12 @@ which don't have SEC_MERGE support -- i.e., does nothing. @subsubsection @code{bfd_generic_get_relocated_section_contents} @strong{Synopsis} @example -bfd_byte * -bfd_generic_get_relocated_section_contents (bfd *abfd, +bfd_byte *bfd_generic_get_relocated_section_contents + (bfd *abfd, struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - boolean relocateable, + bfd_boolean relocatable, asymbol **symbols); @end example @strong{Description}@* diff --git a/contrib/binutils/bfd/doc/section.texi b/contrib/binutils/bfd/doc/section.texi index 971fd04381ba..b1501f9bbb44 100644 --- a/contrib/binutils/bfd/doc/section.texi +++ b/contrib/binutils/bfd/doc/section.texi @@ -124,7 +124,7 @@ struct bfd_comdat_info long symbol; @}; -typedef struct sec +typedef struct bfd_section @{ /* The name of the section; the name isn't a copy, the pointer is the same as that passed to bfd_make_section. */ @@ -137,7 +137,7 @@ typedef struct sec int index; /* The next section in the list belonging to the BFD, or NULL. */ - struct sec *next; + struct bfd_section *next; /* The field flags contains attributes of the section. Some flags are read in from the object file, and some are @@ -335,10 +335,39 @@ typedef struct sec /* A mark flag used by some linker backends for garbage collection. */ unsigned int gc_mark : 1; - /* Used by the ELF code to mark sections which have been allocated - to segments. */ + /* The following flags are used by the ELF linker. */ + + /* Mark sections which have been allocated to segments. */ unsigned int segment_mark : 1; + /* Type of sec_info information. */ + unsigned int sec_info_type:3; +#define ELF_INFO_TYPE_NONE 0 +#define ELF_INFO_TYPE_STABS 1 +#define ELF_INFO_TYPE_MERGE 2 +#define ELF_INFO_TYPE_EH_FRAME 3 +#define ELF_INFO_TYPE_JUST_SYMS 4 + + /* Nonzero if this section uses RELA relocations, rather than REL. */ + unsigned int use_rela_p:1; + + /* Bits used by various backends. */ + unsigned int has_tls_reloc:1; + + /* Nonzero if this section needs the relax finalize pass. */ + unsigned int need_finalize_relax:1; + + /* Nonzero if this section has a gp reloc. */ + unsigned int has_gp_reloc:1; + + /* Unused bits. */ + unsigned int flag13:1; + unsigned int flag14:1; + unsigned int flag15:1; + unsigned int flag16:4; + unsigned int flag20:4; + unsigned int flag24:8; + /* End of internal packed boolean fields. */ /* The virtual memory address of the section - where it will be @@ -374,7 +403,7 @@ typedef struct sec bfd_vma output_offset; /* The output section through which to map on output. */ - struct sec *output_section; + struct bfd_section *output_section; /* The alignment requirement of the section, as an exponent of 2 - e.g., 3 aligns to 2^3 (or 8). */ @@ -404,7 +433,7 @@ typedef struct sec file_ptr line_filepos; /* Pointer to data for applications. */ - PTR userdata; + void *userdata; /* If the SEC_IN_MEMORY flag is set, this points to the actual contents. */ @@ -422,6 +451,10 @@ typedef struct sec /* Optional information about a COMDAT entry; NULL if not COMDAT. */ struct bfd_comdat_info *comdat; + /* Points to the kept section if this section is a link-once section, + and is discarded. */ + struct bfd_section *kept_section; + /* When a section is being output, this value changes as more linenumbers are written out. */ file_ptr moving_line_filepos; @@ -429,7 +462,7 @@ typedef struct sec /* What the section number is in the target world. */ int target_index; - PTR used_by_bfd; + void *used_by_bfd; /* If this is a constructor section then here is a list of the relocations created to relocate items within it. */ @@ -439,8 +472,8 @@ typedef struct sec bfd *owner; /* A symbol which points at this section only. */ - struct symbol_cache_entry *symbol; - struct symbol_cache_entry **symbol_ptr_ptr; + struct bfd_symbol *symbol; + struct bfd_symbol **symbol_ptr_ptr; struct bfd_link_order *link_order_head; struct bfd_link_order *link_order_tail; @@ -457,18 +490,18 @@ typedef struct sec #define BFD_IND_SECTION_NAME "*IND*" /* The absolute section. */ -extern const asection bfd_abs_section; +extern asection bfd_abs_section; #define bfd_abs_section_ptr ((asection *) &bfd_abs_section) #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) /* Pointer to the undefined section. */ -extern const asection bfd_und_section; +extern asection bfd_und_section; #define bfd_und_section_ptr ((asection *) &bfd_und_section) #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) /* Pointer to the common section. */ -extern const asection bfd_com_section; +extern asection bfd_com_section; #define bfd_com_section_ptr ((asection *) &bfd_com_section) /* Pointer to the indirect section. */ -extern const asection bfd_ind_section; +extern asection bfd_ind_section; #define bfd_ind_section_ptr ((asection *) &bfd_ind_section) #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) @@ -478,13 +511,12 @@ extern const asection bfd_ind_section; || ((SEC) == bfd_com_section_ptr) \ || ((SEC) == bfd_ind_section_ptr)) -extern const struct symbol_cache_entry * const bfd_abs_symbol; -extern const struct symbol_cache_entry * const bfd_com_symbol; -extern const struct symbol_cache_entry * const bfd_und_symbol; -extern const struct symbol_cache_entry * const bfd_ind_symbol; +extern const struct bfd_symbol * const bfd_abs_symbol; +extern const struct bfd_symbol * const bfd_com_symbol; +extern const struct bfd_symbol * const bfd_und_symbol; +extern const struct bfd_symbol * const bfd_ind_symbol; #define bfd_get_section_size_before_reloc(section) \ - ((section)->reloc_done ? (abort (), (bfd_size_type) 1) \ - : (section)->_raw_size) + ((section)->_raw_size) #define bfd_get_section_size_after_reloc(section) \ ((section)->reloc_done ? (section)->_cooked_size \ : (abort (), (bfd_size_type) 1)) @@ -534,7 +566,7 @@ hash table entries. @subsubsection @code{bfd_get_section_by_name} @strong{Synopsis} @example -asection *bfd_get_section_by_name(bfd *abfd, const char *name); +asection *bfd_get_section_by_name (bfd *abfd, const char *name); @end example @strong{Description}@* Run through @var{abfd} and return the one of the @@ -550,9 +582,8 @@ or something else) for each section. @subsubsection @code{bfd_get_unique_section_name} @strong{Synopsis} @example -char *bfd_get_unique_section_name(bfd *abfd, - const char *templat, - int *count); +char *bfd_get_unique_section_name + (bfd *abfd, const char *templat, int *count); @end example @strong{Description}@* Invent a section name that is unique in @var{abfd} by tacking @@ -565,7 +596,7 @@ pointed to by @var{count} will be incremented in this case. @subsubsection @code{bfd_make_section_old_way} @strong{Synopsis} @example -asection *bfd_make_section_old_way(bfd *abfd, const char *name); +asection *bfd_make_section_old_way (bfd *abfd, const char *name); @end example @strong{Description}@* Create a new empty section called @var{name} @@ -592,7 +623,7 @@ If memory allocation fails. @subsubsection @code{bfd_make_section_anyway} @strong{Synopsis} @example -asection *bfd_make_section_anyway(bfd *abfd, const char *name); +asection *bfd_make_section_anyway (bfd *abfd, const char *name); @end example @strong{Description}@* Create a new empty section called @var{name} and attach it to the end of @@ -612,7 +643,7 @@ Return @code{NULL} and set @code{bfd_error} on error; possible errors are: @subsubsection @code{bfd_make_section} @strong{Synopsis} @example -asection *bfd_make_section(bfd *, const char *name); +asection *bfd_make_section (bfd *, const char *name); @end example @strong{Description}@* Like @code{bfd_make_section_anyway}, but return @code{NULL} (without calling @@ -624,12 +655,13 @@ section named @var{name}. If there is an error, return @code{NULL} and set @subsubsection @code{bfd_set_section_flags} @strong{Synopsis} @example -boolean bfd_set_section_flags(bfd *abfd, asection *sec, flagword flags); +bfd_boolean bfd_set_section_flags + (bfd *abfd, asection *sec, flagword flags); @end example @strong{Description}@* Set the attributes of the section @var{sec} in the BFD -@var{abfd} to the value @var{flags}. Return @code{true} on success, -@code{false} on error. Possible error returns are: +@var{abfd} to the value @var{flags}. Return @code{TRUE} on success, +@code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -644,11 +676,10 @@ have the @code{SEC_HAS_CONTENTS} field set. @subsubsection @code{bfd_map_over_sections} @strong{Synopsis} @example -void bfd_map_over_sections(bfd *abfd, - void (*func) (bfd *abfd, - asection *sect, - PTR obj), - PTR obj); +void bfd_map_over_sections + (bfd *abfd, + void (*func) (bfd *abfd, asection *sect, void *obj), + void *obj); @end example @strong{Description}@* Call the provided function @var{func} for each section @@ -656,27 +687,28 @@ attached to the BFD @var{abfd}, passing @var{obj} as an argument. The function will be called as if by @example - func(abfd, the_section, obj); + func (abfd, the_section, obj); @end example -This is the prefered method for iterating over sections; an +This is the preferred method for iterating over sections; an alternative would be to use a loop: @example section *p; for (p = abfd->sections; p != NULL; p = p->next) - func(abfd, p, ...) + func (abfd, p, ...) @end example @findex bfd_set_section_size @subsubsection @code{bfd_set_section_size} @strong{Synopsis} @example -boolean bfd_set_section_size(bfd *abfd, asection *sec, bfd_size_type val); +bfd_boolean bfd_set_section_size + (bfd *abfd, asection *sec, bfd_size_type val); @end example @strong{Description}@* Set @var{sec} to the size @var{val}. If the operation is -ok, then @code{true} is returned, else @code{false}. +ok, then @code{TRUE} is returned, else @code{FALSE}. Possible error returns: @itemize @bullet @@ -690,9 +722,9 @@ Writing has started to the BFD, so setting the size is invalid. @subsubsection @code{bfd_set_section_contents} @strong{Synopsis} @example -boolean bfd_set_section_contents (bfd *abfd, asection *section, - PTR data, file_ptr offset, - bfd_size_type count); +bfd_boolean bfd_set_section_contents + (bfd *abfd, asection *section, const void *data, + file_ptr offset, bfd_size_type count); @end example @strong{Description}@* Sets the contents of the section @var{section} in BFD @@ -700,7 +732,7 @@ Sets the contents of the section @var{section} in BFD data is written to the output section starting at offset @var{offset} for @var{count} octets. -Normally @code{true} is returned, else @code{false}. Possible error +Normally @code{TRUE} is returned, else @code{FALSE}. Possible error returns are: @itemize @bullet @@ -718,8 +750,8 @@ This routine is front end to the back end function @subsubsection @code{bfd_get_section_contents} @strong{Synopsis} @example -boolean bfd_get_section_contents (bfd *abfd, asection *section, - PTR location, file_ptr offset, +bfd_boolean bfd_get_section_contents + (bfd *abfd, asection *section, void *location, file_ptr offset, bfd_size_type count); @end example @strong{Description}@* @@ -731,20 +763,20 @@ and is read for @var{count} bytes. If the contents of a constructor with the @code{SEC_CONSTRUCTOR} flag set are requested or if the section does not have the @code{SEC_HAS_CONTENTS} flag set, then the @var{location} is filled -with zeroes. If no errors occur, @code{true} is returned, else -@code{false}. +with zeroes. If no errors occur, @code{TRUE} is returned, else +@code{FALSE}. @findex bfd_copy_private_section_data @subsubsection @code{bfd_copy_private_section_data} @strong{Synopsis} @example -boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, asection *osec); +bfd_boolean bfd_copy_private_section_data + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); @end example @strong{Description}@* Copy private section information from @var{isec} in the BFD @var{ibfd} to the section @var{osec} in the BFD @var{obfd}. -Return @code{true} on success, @code{false} on error. Possible error +Return @code{TRUE} on success, @code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -778,7 +810,7 @@ to remove sections. @subsubsection @code{bfd_generic_discard_group} @strong{Synopsis} @example -boolean bfd_generic_discard_group (bfd *abfd, asection *group); +bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); @end example @strong{Description}@* Remove all members of @var{group} from the output. diff --git a/contrib/binutils/bfd/doc/syms.texi b/contrib/binutils/bfd/doc/syms.texi index cb29e7d2a51d..415d15698803 100644 --- a/contrib/binutils/bfd/doc/syms.texi +++ b/contrib/binutils/bfd/doc/syms.texi @@ -47,10 +47,10 @@ excerpt from an application which reads the symbol table: if (storage_needed < 0) FAIL - if (storage_needed == 0) @{ - return ; - @} - symbol_table = (asymbol **) xmalloc (storage_needed); + if (storage_needed == 0) + return; + + symbol_table = xmalloc (storage_needed); ... number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table); @@ -58,9 +58,8 @@ excerpt from an application which reads the symbol table: if (number_of_symbols < 0) FAIL - for (i = 0; i < number_of_symbols; i++) @{ - process_symbol (symbol_table[i]); - @} + for (i = 0; i < number_of_symbols; i++) + process_symbol (symbol_table[i]); @end example All storage for the symbols themselves is in an objalloc @@ -80,25 +79,26 @@ example showing the creation of a symbol table with only one element: @example #include "bfd.h" - main() + int main (void) @{ bfd *abfd; asymbol *ptrs[2]; asymbol *new; - abfd = bfd_openw("foo","a.out-sunos-big"); - bfd_set_format(abfd, bfd_object); - new = bfd_make_empty_symbol(abfd); + abfd = bfd_openw ("foo","a.out-sunos-big"); + bfd_set_format (abfd, bfd_object); + new = bfd_make_empty_symbol (abfd); new->name = "dummy_symbol"; - new->section = bfd_make_section_old_way(abfd, ".text"); + new->section = bfd_make_section_old_way (abfd, ".text"); new->flags = BSF_GLOBAL; new->value = 0x12345; ptrs[0] = new; - ptrs[1] = (asymbol *)0; + ptrs[1] = 0; - bfd_set_symtab(abfd, ptrs, 1); - bfd_close(abfd); + bfd_set_symtab (abfd, ptrs, 1); + bfd_close (abfd); + return 0; @} ./makesym @@ -106,9 +106,9 @@ example showing the creation of a symbol table with only one element: 00012345 A dummy_symbol @end example -Many formats cannot represent arbitary symbol information; for +Many formats cannot represent arbitrary symbol information; for instance, the @code{a.out} object format does not allow an -arbitary number of sections. A symbol pointing to a section +arbitrary number of sections. A symbol pointing to a section which is not one of @code{.text}, @code{.data} or @code{.bss} cannot be described. @@ -139,7 +139,7 @@ An @code{asymbol} has the form: @example -typedef struct symbol_cache_entry +typedef struct bfd_symbol @{ /* A pointer to the BFD which owns the symbol. This information is necessary so that a back end can work out what additional @@ -150,7 +150,7 @@ typedef struct symbol_cache_entry instead, except that some symbols point to the global sections bfd_@{abs,com,und@}_section. This could be fixed by making these globals be per-bfd (or per-target-flavor). FIXME. */ - struct _bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ + struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ /* The text of the symbol. The name is left alone, and not copied; the application may not alter it. */ @@ -180,7 +180,7 @@ typedef struct symbol_cache_entry @code{BSF_LOCAL}, @code{BSF_FORT_COMM}, @code{BSF_UNDEFINED} or @code{BSF_GLOBAL}. */ - /* The symbol is a debugging record. The value has an arbitary + /* The symbol is a debugging record. The value has an arbitrary meaning, unless BSF_DEBUGGING_RELOC is also set. */ #define BSF_DEBUGGING 0x08 @@ -251,12 +251,12 @@ typedef struct symbol_cache_entry /* A pointer to the section to which this symbol is relative. This will always be non NULL, there are special sections for undefined and absolute symbols. */ - struct sec *section; + struct bfd_section *section; /* Back end special data. */ union @{ - PTR p; + void *p; bfd_vma i; @} udata; @@ -286,26 +286,26 @@ the BFD, then return 0. If an error occurs, return -1. @subsubsection @code{bfd_is_local_label} @strong{Synopsis} @example -boolean bfd_is_local_label(bfd *abfd, asymbol *sym); +bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); @end example @strong{Description}@* -Return true if the given symbol @var{sym} in the BFD @var{abfd} is -a compiler generated local label, else return false. +Return TRUE if the given symbol @var{sym} in the BFD @var{abfd} is +a compiler generated local label, else return FALSE. @findex bfd_is_local_label_name @subsubsection @code{bfd_is_local_label_name} @strong{Synopsis} @example -boolean bfd_is_local_label_name(bfd *abfd, const char *name); +bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); @end example @strong{Description}@* -Return true if a symbol with the name @var{name} in the BFD +Return TRUE if a symbol with the name @var{name} in the BFD @var{abfd} is a compiler generated local label, else return -false. This just checks whether the name has the form of a +FALSE. This just checks whether the name has the form of a local label. @example #define bfd_is_local_label_name(abfd, name) \ - BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) + BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) @end example @@ -319,8 +319,7 @@ Return the actual number of symbol pointers, not including the NULL. @example #define bfd_canonicalize_symtab(abfd, location) \ - BFD_SEND (abfd, _bfd_canonicalize_symtab,\ - (abfd, location)) + BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) @end example @@ -328,7 +327,8 @@ including the NULL. @subsubsection @code{bfd_set_symtab} @strong{Synopsis} @example -boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count); +bfd_boolean bfd_set_symtab + (bfd *abfd, asymbol **location, unsigned int count); @end example @strong{Description}@* Arrange that when the output BFD @var{abfd} is closed, @@ -339,7 +339,7 @@ will be written. @subsubsection @code{bfd_print_symbol_vandf} @strong{Synopsis} @example -void bfd_print_symbol_vandf(bfd *abfd, PTR file, asymbol *symbol); +void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); @end example @strong{Description}@* Print the value and flags of the @var{symbol} supplied to the @@ -357,7 +357,7 @@ information surrounding the @code{asymbol}. Building your own information, and will cause problems later on. @example #define bfd_make_empty_symbol(abfd) \ - BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) + BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) @end example @@ -381,7 +381,7 @@ to be used as a debugging symbol. Further details of its use have yet to be worked out. @example #define bfd_make_debug_symbol(abfd,ptr,size) \ - BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) + BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) @end example @@ -393,7 +393,7 @@ class of @var{symbol}, or '?' for an unknown class. @strong{Synopsis} @example -int bfd_decode_symclass(asymbol *symbol); +int bfd_decode_symclass (asymbol *symbol); @end example @findex bfd_is_undefined_symclass @subsubsection @code{bfd_is_undefined_symclass} @@ -404,7 +404,7 @@ Returns zero otherwise. @strong{Synopsis} @example -boolean bfd_is_undefined_symclass (int symclass); +bfd_boolean bfd_is_undefined_symclass (int symclass); @end example @findex bfd_symbol_info @subsubsection @code{bfd_symbol_info} @@ -415,18 +415,19 @@ calling this function. @strong{Synopsis} @example -void bfd_symbol_info(asymbol *symbol, symbol_info *ret); +void bfd_symbol_info (asymbol *symbol, symbol_info *ret); @end example @findex bfd_copy_private_symbol_data @subsubsection @code{bfd_copy_private_symbol_data} @strong{Synopsis} @example -boolean bfd_copy_private_symbol_data(bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); +bfd_boolean bfd_copy_private_symbol_data + (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); @end example @strong{Description}@* Copy private symbol information from @var{isym} in the BFD @var{ibfd} to the symbol @var{osym} in the BFD @var{obfd}. -Return @code{true} on success, @code{false} on error. Possible error +Return @code{TRUE} on success, @code{FALSE} on error. Possible error returns are: @itemize @bullet @@ -437,8 +438,8 @@ Not enough memory exists to create private data for @var{osec}. @end itemize @example #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ - BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ - (ibfd, isymbol, obfd, osymbol)) + BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ + (ibfd, isymbol, obfd, osymbol)) @end example diff --git a/contrib/binutils/bfd/doc/targets.texi b/contrib/binutils/bfd/doc/targets.texi index 5b8d2b84a56c..9b499cf41995 100644 --- a/contrib/binutils/bfd/doc/targets.texi +++ b/contrib/binutils/bfd/doc/targets.texi @@ -2,7 +2,7 @@ @strong{Description}@* -Each port of BFD to a different machine requries the creation +Each port of BFD to a different machine requires the creation of a target back end. All the back end provides to the root part of BFD is a structure containing pointers to functions which perform certain low level operations on files. BFD @@ -50,7 +50,7 @@ format may be determined. This is done by calling @code{bfd_check_format} on the BFD with a suggested format. If @code{target_defaulted} has been set, each possible target type is tried to see if it recognizes the specified format. -@code{bfd_check_format} returns @code{true} when the caller guesses right. +@code{bfd_check_format} returns @code{TRUE} when the caller guesses right. @menu * bfd_target:: @end menu @@ -79,7 +79,7 @@ They make the documentation (more) unpleasant to read, so if someone wants to fix this and not break the above, please do. @example #define BFD_SEND(bfd, message, arglist) \ - ((*((bfd)->xvec->message)) arglist) + ((*((bfd)->xvec->message)) arglist) #ifdef DEBUG_BFD_SEND #undef BFD_SEND @@ -92,7 +92,7 @@ someone wants to fix this and not break the above, please do. For operations which index on the BFD format: @example #define BFD_SEND_FMT(bfd, message, arglist) \ - (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) + (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) #ifdef DEBUG_BFD_SEND #undef BFD_SEND_FMT @@ -132,7 +132,11 @@ enum bfd_flavour bfd_target_msdos_flavour, bfd_target_ovax_flavour, bfd_target_evax_flavour, - bfd_target_mmo_flavour + bfd_target_mmo_flavour, + bfd_target_mach_o_flavour, + bfd_target_pef_flavour, + bfd_target_pef_xlib_flavour, + bfd_target_sym_flavour @}; enum bfd_endian @{ BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN @}; @@ -176,38 +180,38 @@ typedef struct bfd_target /* Entries for byte swapping for data. These are different from the other entry points, since they don't take a BFD asthe first argument. Certain other handlers could do the same. */ - bfd_vma (*bfd_getx64) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_64) PARAMS ((const bfd_byte *)); - void (*bfd_putx64) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_getx32) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_32) PARAMS ((const bfd_byte *)); - void (*bfd_putx32) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_getx16) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_getx_signed_16) PARAMS ((const bfd_byte *)); - void (*bfd_putx16) PARAMS ((bfd_vma, bfd_byte *)); + bfd_uint64_t (*bfd_getx64) (const void *); + bfd_int64_t (*bfd_getx_signed_64) (const void *); + void (*bfd_putx64) (bfd_uint64_t, void *); + bfd_vma (*bfd_getx32) (const void *); + bfd_signed_vma (*bfd_getx_signed_32) (const void *); + void (*bfd_putx32) (bfd_vma, void *); + bfd_vma (*bfd_getx16) (const void *); + bfd_signed_vma (*bfd_getx_signed_16) (const void *); + void (*bfd_putx16) (bfd_vma, void *); /* Byte swapping for the headers. */ - bfd_vma (*bfd_h_getx64) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_64) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx64) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_h_getx32) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_32) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx32) PARAMS ((bfd_vma, bfd_byte *)); - bfd_vma (*bfd_h_getx16) PARAMS ((const bfd_byte *)); - bfd_signed_vma (*bfd_h_getx_signed_16) PARAMS ((const bfd_byte *)); - void (*bfd_h_putx16) PARAMS ((bfd_vma, bfd_byte *)); + bfd_uint64_t (*bfd_h_getx64) (const void *); + bfd_int64_t (*bfd_h_getx_signed_64) (const void *); + void (*bfd_h_putx64) (bfd_uint64_t, void *); + bfd_vma (*bfd_h_getx32) (const void *); + bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); + void (*bfd_h_putx32) (bfd_vma, void *); + bfd_vma (*bfd_h_getx16) (const void *); + bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); + void (*bfd_h_putx16) (bfd_vma, void *); /* Format dependent routines: these are vectors of entry points within the target vector structure, one for each format to check. */ /* Check the format of a file being read. Return a @code{bfd_target *} or zero. */ - const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *)); + const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); /* Set the format of a file being written. */ - boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); /* Write cached information into a file being written, at @code{bfd_close}. */ - boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); @end example The general target vector. These vectors are initialized using the @@ -215,227 +219,229 @@ BFD_JUMP_TABLE macros. @example /* Generic entry points. */ -@end example -Do not "beautify" the CONCAT* macro args. Traditional C will not -remove whitespace added here, and thus will fail to concatenate -the tokens. -@example #define BFD_JUMP_TABLE_GENERIC(NAME) \ -CONCAT2 (NAME,_close_and_cleanup), \ -CONCAT2 (NAME,_bfd_free_cached_info), \ -CONCAT2 (NAME,_new_section_hook), \ -CONCAT2 (NAME,_get_section_contents), \ -CONCAT2 (NAME,_get_section_contents_in_window) + NAME##_close_and_cleanup, \ + NAME##_bfd_free_cached_info, \ + NAME##_new_section_hook, \ + NAME##_get_section_contents, \ + NAME##_get_section_contents_in_window /* Called when the BFD is being closed to do any necessary cleanup. */ - boolean (*_close_and_cleanup) PARAMS ((bfd *)); + bfd_boolean (*_close_and_cleanup) (bfd *); /* Ask the BFD to free all cached information. */ - boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); + bfd_boolean (*_bfd_free_cached_info) (bfd *); /* Called when a new section is created. */ - boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); + bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); /* Read the contents of a section. */ - boolean (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); - boolean (*_bfd_get_section_contents_in_window) - PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type)); + bfd_boolean (*_bfd_get_section_contents) + (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); + bfd_boolean (*_bfd_get_section_contents_in_window) + (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); /* Entry points to copy private data. */ #define BFD_JUMP_TABLE_COPY(NAME) \ -CONCAT2 (NAME,_bfd_copy_private_bfd_data), \ -CONCAT2 (NAME,_bfd_merge_private_bfd_data), \ -CONCAT2 (NAME,_bfd_copy_private_section_data), \ -CONCAT2 (NAME,_bfd_copy_private_symbol_data), \ -CONCAT2 (NAME,_bfd_set_private_flags), \ -CONCAT2 (NAME,_bfd_print_private_bfd_data) \ + NAME##_bfd_copy_private_bfd_data, \ + NAME##_bfd_merge_private_bfd_data, \ + NAME##_bfd_copy_private_section_data, \ + NAME##_bfd_copy_private_symbol_data, \ + NAME##_bfd_set_private_flags, \ + NAME##_bfd_print_private_bfd_data + /* Called to copy BFD general private data from one object file to another. */ - boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); /* Called to merge BFD general private data from one object file to a common output file when linking. */ - boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); /* Called to copy BFD private section data from one object file to another. */ - boolean (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr, - bfd *, sec_ptr)); + bfd_boolean (*_bfd_copy_private_section_data) + (bfd *, sec_ptr, bfd *, sec_ptr); /* Called to copy BFD private symbol data from one symbol to another. */ - boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *, - bfd *, asymbol *)); + bfd_boolean (*_bfd_copy_private_symbol_data) + (bfd *, asymbol *, bfd *, asymbol *); /* Called to set private backend flags. */ - boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); + bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); /* Called to print private BFD data. */ - boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); + bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); /* Core file entry points. */ #define BFD_JUMP_TABLE_CORE(NAME) \ -CONCAT2 (NAME,_core_file_failing_command), \ -CONCAT2 (NAME,_core_file_failing_signal), \ -CONCAT2 (NAME,_core_file_matches_executable_p) - char * (*_core_file_failing_command) PARAMS ((bfd *)); - int (*_core_file_failing_signal) PARAMS ((bfd *)); - boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); + NAME##_core_file_failing_command, \ + NAME##_core_file_failing_signal, \ + NAME##_core_file_matches_executable_p + + char * (*_core_file_failing_command) (bfd *); + int (*_core_file_failing_signal) (bfd *); + bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); /* Archive entry points. */ #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ -CONCAT2 (NAME,_slurp_armap), \ -CONCAT2 (NAME,_slurp_extended_name_table), \ -CONCAT2 (NAME,_construct_extended_name_table), \ -CONCAT2 (NAME,_truncate_arname), \ -CONCAT2 (NAME,_write_armap), \ -CONCAT2 (NAME,_read_ar_hdr), \ -CONCAT2 (NAME,_openr_next_archived_file), \ -CONCAT2 (NAME,_get_elt_at_index), \ -CONCAT2 (NAME,_generic_stat_arch_elt), \ -CONCAT2 (NAME,_update_armap_timestamp) - boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); - boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); - boolean (*_bfd_construct_extended_name_table) - PARAMS ((bfd *, char **, bfd_size_type *, const char **)); - void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); - boolean (*write_armap) - PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); - PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); - bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); -#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i)) - bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); - int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); - boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); + NAME##_slurp_armap, \ + NAME##_slurp_extended_name_table, \ + NAME##_construct_extended_name_table, \ + NAME##_truncate_arname, \ + NAME##_write_armap, \ + NAME##_read_ar_hdr, \ + NAME##_openr_next_archived_file, \ + NAME##_get_elt_at_index, \ + NAME##_generic_stat_arch_elt, \ + NAME##_update_armap_timestamp + + bfd_boolean (*_bfd_slurp_armap) (bfd *); + bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); + bfd_boolean (*_bfd_construct_extended_name_table) + (bfd *, char **, bfd_size_type *, const char **); + void (*_bfd_truncate_arname) (bfd *, const char *, char *); + bfd_boolean (*write_armap) + (bfd *, unsigned int, struct orl *, unsigned int, int); + void * (*_bfd_read_ar_hdr_fn) (bfd *); + bfd * (*openr_next_archived_file) (bfd *, bfd *); +#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) + bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); + int (*_bfd_stat_arch_elt) (bfd *, struct stat *); + bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); /* Entry points used for symbols. */ #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ -CONCAT2 (NAME,_get_symtab_upper_bound), \ -CONCAT2 (NAME,_get_symtab), \ -CONCAT2 (NAME,_make_empty_symbol), \ -CONCAT2 (NAME,_print_symbol), \ -CONCAT2 (NAME,_get_symbol_info), \ -CONCAT2 (NAME,_bfd_is_local_label_name), \ -CONCAT2 (NAME,_get_lineno), \ -CONCAT2 (NAME,_find_nearest_line), \ -CONCAT2 (NAME,_bfd_make_debug_symbol), \ -CONCAT2 (NAME,_read_minisymbols), \ -CONCAT2 (NAME,_minisymbol_to_symbol) - long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); - long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, - struct symbol_cache_entry **)); - struct symbol_cache_entry * - (*_bfd_make_empty_symbol) PARAMS ((bfd *)); - void (*_bfd_print_symbol) PARAMS ((bfd *, PTR, - struct symbol_cache_entry *, - bfd_print_symbol_type)); -#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e)) - void (*_bfd_get_symbol_info) PARAMS ((bfd *, - struct symbol_cache_entry *, - symbol_info *)); -#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e)) - boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); + NAME##_get_symtab_upper_bound, \ + NAME##_canonicalize_symtab, \ + NAME##_make_empty_symbol, \ + NAME##_print_symbol, \ + NAME##_get_symbol_info, \ + NAME##_bfd_is_local_label_name, \ + NAME##_get_lineno, \ + NAME##_find_nearest_line, \ + NAME##_bfd_make_debug_symbol, \ + NAME##_read_minisymbols, \ + NAME##_minisymbol_to_symbol - alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); - boolean (*_bfd_find_nearest_line) - PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, - const char **, const char **, unsigned int *)); + long (*_bfd_get_symtab_upper_bound) (bfd *); + long (*_bfd_canonicalize_symtab) + (bfd *, struct bfd_symbol **); + struct bfd_symbol * + (*_bfd_make_empty_symbol) (bfd *); + void (*_bfd_print_symbol) + (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); +#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) + void (*_bfd_get_symbol_info) + (bfd *, struct bfd_symbol *, symbol_info *); +#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) + bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); + + alent * (*_get_lineno) (bfd *, struct bfd_symbol *); + bfd_boolean (*_bfd_find_nearest_line) + (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma, + const char **, const char **, unsigned int *); /* Back-door to allow format-aware applications to create debug symbols while using BFD for everything else. Currently used by the assembler when creating COFF files. */ - asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *, - unsigned long size)); + asymbol * (*_bfd_make_debug_symbol) + (bfd *, void *, unsigned long size); #define bfd_read_minisymbols(b, d, m, s) \ BFD_SEND (b, _read_minisymbols, (b, d, m, s)) - long (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *, - unsigned int *)); + long (*_read_minisymbols) + (bfd *, bfd_boolean, void **, unsigned int *); #define bfd_minisymbol_to_symbol(b, d, m, f) \ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) - asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR, - asymbol *)); + asymbol * (*_minisymbol_to_symbol) + (bfd *, bfd_boolean, const void *, asymbol *); /* Routines for relocs. */ #define BFD_JUMP_TABLE_RELOCS(NAME) \ -CONCAT2 (NAME,_get_reloc_upper_bound), \ -CONCAT2 (NAME,_canonicalize_reloc), \ -CONCAT2 (NAME,_bfd_reloc_type_lookup) - long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); - long (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, - struct symbol_cache_entry **)); + NAME##_get_reloc_upper_bound, \ + NAME##_canonicalize_reloc, \ + NAME##_bfd_reloc_type_lookup + + long (*_get_reloc_upper_bound) (bfd *, sec_ptr); + long (*_bfd_canonicalize_reloc) + (bfd *, sec_ptr, arelent **, struct bfd_symbol **); /* See documentation on reloc types. */ reloc_howto_type * - (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); + (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); /* Routines used when writing an object file. */ #define BFD_JUMP_TABLE_WRITE(NAME) \ -CONCAT2 (NAME,_set_arch_mach), \ -CONCAT2 (NAME,_set_section_contents) - boolean (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture, - unsigned long)); - boolean (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); + NAME##_set_arch_mach, \ + NAME##_set_section_contents + + bfd_boolean (*_bfd_set_arch_mach) + (bfd *, enum bfd_architecture, unsigned long); + bfd_boolean (*_bfd_set_section_contents) + (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); /* Routines used by the linker. */ #define BFD_JUMP_TABLE_LINK(NAME) \ -CONCAT2 (NAME,_sizeof_headers), \ -CONCAT2 (NAME,_bfd_get_relocated_section_contents), \ -CONCAT2 (NAME,_bfd_relax_section), \ -CONCAT2 (NAME,_bfd_link_hash_table_create), \ -CONCAT2 (NAME,_bfd_link_hash_table_free), \ -CONCAT2 (NAME,_bfd_link_add_symbols), \ -CONCAT2 (NAME,_bfd_link_just_syms), \ -CONCAT2 (NAME,_bfd_final_link), \ -CONCAT2 (NAME,_bfd_link_split_section), \ -CONCAT2 (NAME,_bfd_gc_sections), \ -CONCAT2 (NAME,_bfd_merge_sections), \ -CONCAT2 (NAME,_bfd_discard_group) - int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean)); - bfd_byte *(*_bfd_get_relocated_section_contents) - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, struct symbol_cache_entry **)); + NAME##_sizeof_headers, \ + NAME##_bfd_get_relocated_section_contents, \ + NAME##_bfd_relax_section, \ + NAME##_bfd_link_hash_table_create, \ + NAME##_bfd_link_hash_table_free, \ + NAME##_bfd_link_add_symbols, \ + NAME##_bfd_link_just_syms, \ + NAME##_bfd_final_link, \ + NAME##_bfd_link_split_section, \ + NAME##_bfd_gc_sections, \ + NAME##_bfd_merge_sections, \ + NAME##_bfd_discard_group - boolean (*_bfd_relax_section) - PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *)); + int (*_bfd_sizeof_headers) (bfd *, bfd_boolean); + bfd_byte * (*_bfd_get_relocated_section_contents) + (bfd *, struct bfd_link_info *, struct bfd_link_order *, + bfd_byte *, bfd_boolean, struct bfd_symbol **); + + bfd_boolean (*_bfd_relax_section) + (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); /* Create a hash table for the linker. Different backends store different information in this table. */ - struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); + struct bfd_link_hash_table * + (*_bfd_link_hash_table_create) (bfd *); /* Release the memory associated with the linker hash table. */ - void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *)); + void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); /* Add symbols from this object file into the hash table. */ - boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); /* Indicate that we are only retrieving symbol values from this section. */ - void (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *)); + void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); /* Do a link based on the link_order structures attached to each section of the BFD. */ - boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); /* Should this section be split up into smaller pieces during linking. */ - boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); /* Remove sections that are not referenced from the output. */ - boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); /* Attempt to merge SEC_MERGE sections. */ - boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); /* Discard members of a group. */ - boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); /* Routines to handle dynamic symbols and relocs. */ #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ -CONCAT2 (NAME,_get_dynamic_symtab_upper_bound), \ -CONCAT2 (NAME,_canonicalize_dynamic_symtab), \ -CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \ -CONCAT2 (NAME,_canonicalize_dynamic_reloc) + NAME##_get_dynamic_symtab_upper_bound, \ + NAME##_canonicalize_dynamic_symtab, \ + NAME##_get_dynamic_reloc_upper_bound, \ + NAME##_canonicalize_dynamic_reloc + /* Get the amount of memory required to hold the dynamic symbols. */ - long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); /* Read in the dynamic symbols. */ - long (*_bfd_canonicalize_dynamic_symtab) - PARAMS ((bfd *, struct symbol_cache_entry **)); + long (*_bfd_canonicalize_dynamic_symtab) + (bfd *, struct bfd_symbol **); /* Get the amount of memory required to hold the dynamic relocs. */ - long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); /* Read in the dynamic relocs. */ - long (*_bfd_canonicalize_dynamic_reloc) - PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); + long (*_bfd_canonicalize_dynamic_reloc) + (bfd *, arelent **, struct bfd_symbol **); @end example A pointer to an alternative bfd_target in case the current one is not @@ -449,7 +455,7 @@ to find an alternative output format that is suitable. /* Data for use by back-end routines, which isn't generic enough to belong in this structure. */ - PTR backend_data; + const void *backend_data; @} bfd_target; @@ -459,7 +465,7 @@ to find an alternative output format that is suitable. @subsubsection @code{bfd_set_default_target} @strong{Synopsis} @example -boolean bfd_set_default_target (const char *name); +bfd_boolean bfd_set_default_target (const char *name); @end example @strong{Description}@* Set the default target vector to use when recognizing a BFD. @@ -470,7 +476,7 @@ name or a configuration triplet. @subsubsection @code{bfd_find_target} @strong{Synopsis} @example -const bfd_target *bfd_find_target(const char *target_name, bfd *abfd); +const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); @end example @strong{Description}@* Return a pointer to the transfer vector for the object target @@ -487,7 +493,7 @@ targets to find the one that matches the file being read. @subsubsection @code{bfd_target_list} @strong{Synopsis} @example -const char **bfd_target_list(void); +const char ** bfd_target_list (void); @end example @strong{Description}@* Return a freshly malloced NULL-terminated @@ -498,7 +504,9 @@ modify the names. @subsubsection @code{bfd_seach_for_target} @strong{Synopsis} @example -const bfd_target * bfd_search_for_target (int (* search_func) (const bfd_target *, void *), void *); +const bfd_target *bfd_search_for_target + (int (*search_func) (const bfd_target *, void *), + void *); @end example @strong{Description}@* Return a pointer to the first transfer vector in the list of |
