* trad-core.c: Don't include <sys/file.h>.
* i386linux.h: Include <sys/file.h>.
* coff-m68k-un.c: new file to handle names with underscores on
svr3 machines.
* coff-m68k.c (m68k_rtype2howto): added #ifdef ONLY_DECLARE_RELOCS
to not duplicate the function in the executable.
(TARGET_SYM, TARGET_NAME, NAMES_HAVE_UNDERSCORE): new macros needed
by coff-m68k-un.c.
* coffcode.h (MC68KBCSMAGIC): case added.
* targets.c: Add m68kcoffun_vec.
* configure.host: added support for Bull dpx/2.
* config/dpx2.mh, hosts/dpx2.h: new files.
* Makefile.in: added target coff-m68k-un.
argument. Just let an indirect symbol point to the next symbol
without forcing the next symbol to be undefined. Changed all
callers.
* hp300hpux.c (slurp_symbol_table): Changed call to
translate_from_native_sym_flags.
* targets.c: Added hp300hpux_vec.
* Makefile.in (hp300hpux.o): Added dependencies.
Use unsigned hash values for better hashing.
(hash): Hash in the string length for long strings.
* aoutx.h (compare): Replace 3 if's with a subtraction.
(translate_to_native_sym_flags, add_to_stringtab): Reorder tests
in decreasing order of success, as an optimization.
(hash): Take a length arg; ignore chars after #25, for speed.
(add_to_stringtab): Pass length to hash.
elf32-{mips,m88k,generic}.c: New files.
targets.c (target_vector): Include bfd_elf32_{mips,m88k,generic}_vec.
elfcode.h (elf_object_p): Match elf32-generic for all machines which
don't match a different target.
variants from the BFD universe. Leave the 64-bit types for now,
since they are in flux.
* aoutx.h, hp300hpux.c: Eliminate needless (int32_type) casts.
* libaout.h (GET_SWORD): Convert (int32_type) to (int).
* ieee.c: Convert uint8e_type => unsigned char.
* oasys.c: Extensive changes to eliminate obsolete types.
These depend on changes in ../include/oasys.h as well.
(ecoff_write_object_contents): If not D_PAGED, don't add the
section headers to text_size. If not D_PAGED, set the magic
number to OMAGIC rather than ZMAGIC. If creating a D_PAGED
executable, the executable must fully occupy an even number of
pages.
(ecoff_set_symbol_info, make_bfd_asection, ecoff_little_vec,
ecoff_big_vec): Consistently set section alignment power to 4,
since ECOFF sections should be multiples of 16 bytes.
(ecoff_little_vec, ecoff_big_vec): Added D_PAGED to object_flags.
Made ar_pad_char and ar_max_namelen agree for both.
casts to work on machine where sizeof(long) != sizeof(int) !=
sizeof(char *).
* coffgen.c (coff_get_normalized_symtab): Ditto.
* cpu-h8300.c coff-h8300.c: Support for H8/300-H.
definitions for N_SET[ATDB].
(ecoff_howto_table): Moved near top of file.
(ecoff_set_symbol_info): If a STABS symbol of type N_SET[ATDB] is
seen, cook up a constructor section of the same name and put in a
reloc pointing to the symbol. This lets the GNU linker build
global constructors and destructors without using collect.
* hppa.c (hppa_core_file_p): Provide a temporary dummy routine
for HOST_HPPABSD.
* bfd/hosts/hppabsd.h: Fix declarations of malloc and free.
* bfd/libhppa.h: Include sysdep here. Conditionalize
includes based on HOST_HPPAHPUX or HOST_HPPABSD.
Provide definitions for MAXCOMLEN and _PA_RISC_ID suitable
for BSD.
* hppa.c: Use this for both HPUX & BSD.
* targets.c: Enable hppa_vec for both HPUX & BSD.
* config/hppabsd.mt: TDEFINES => TDEFAULTS.
* hosts/hppabsd.h: #define HOST_HPPABSD.
check for the case where the user sets the address of the BSS
section (and the file header can't specify this). Let the user
set it wherever they want, regardless of what goes in the header.
Fixes #ld/1826 (the fix was never checked in by Steve or Ken).
TRAD_UNIX_CORE_FILE_FAILING_SIGNAL to allow host files to specify
the core file failing signal.
* hosts/decstation.h (TRAD_UNIX_CORE_FILE_FAILING_SIGNAL): Define
to supply the core file failing signal.
systems.
* coffcode.h (styp_to_sec_flags): Set SEC_SHARED_LIBRARY for a
STYP_NOLOAD | STYP_BSS section. Don't set SEC_NEVER_LOAD for a
STYP_INFO section.
(coff_compute_section_file_positions): Force vma and lma of _LIB
section to be zero.
(coff_set_section_contents): Count number of entries in new lma
field, not in vma.
* coffgen.c (make_a_section_from_file): Force lineno_count of
SEC_SHARED_LIBRARY section to be zero, since it is non-zero on the
SCO 3.2v4 shared library.
* seclet.c (rel): Copy over any section with contents, not just
loadable sections.
* coff-mips.c (ecoff_make_empty_symbol): Zero out newly allocated
symbol.
* coff-i386.c (coff_i386_reloc): New function, to generate
relocateable output correctly.
(howto_table): Use coff_i386_reloc for all reloc types.
(CALC_ADDEND): Use a more efficient hack to get the correct addend
for a common symbol.
(i386comm_value): Removed; no longer needed.
symbols in a better way. (translate_to_native_sym_flag): Set the
N_INDR bit when necessary. (aout<>slurp_symbol_table): Maintain
indirect state.
* section.c: Added BFD_IND_SECTION_NAME and bfd_ind_section.
(bfd_make_section): Cope with new builtin section.
* syms.c (bfd_decode_symclass): Can now print indirect section
info.
against machine architecture stored in the ELF header, to resolve
ambiguities.
* elf32.c (bfd_section_from_shdr): Bfd_make_section can return
NULL, so only use results when non-NULL.
* targets.c (elf32_m68k_vec, elf32_i860_vec): Add extern decls
and add to vector of targets.
(ecoff_write_object_contents): Added BFD_ASSERT calls to ensure
relocs are reasonable.
* coff-msym.c: Eliminated uses of DEFUN.
(ecoff_swap_tir_out): New function.
type SHT_STRTAB. Don't alter file offset for section 0.
(reloc_type_names): Now an array instead of a macro. Still inside
"#if 0", since it's used only in debugging code also in "#if 0".
(struct elf_reloc_map_elt, struct elf_reloc_map): New types.
(sort_reloc_map): New function.
(sparc_reloc_map): New variable.
(elf_bfd_reloc_type_lookup): New function.
Now bfd-gas can create valid empty object files for sun4sol2.
bfd_make_debug_symbol; they were already in the target structure.
* Adjusted all uses of JUMP_TABLE.
* coffgen.c, libcoff-in.h (coff_bfd_make_debug_symbol): Renamed
from coff_make_debug_symbol.
* libcoff.h: Updated accordingly.
debugging symbols.
(ecoff_get_debug): Offset the fdr adr by the adr of the first pdr,
for compatibility with tools from MIPS.
* config/bigmips.mt: New file; default vector is ecoff_big_vec.
* config/irix3.mt, config/irix4.mt: Removed.
* configure.in (mips-*-ecoff): New target; uses bigmips.mt.
(mips-sgi-*, mips-big-*): Use bigmips rather than irix3.
* libecoff.h: New file. Defines ECOFF backend data for gdb.
* coff-mips.c: Now includes libecoff.h.
(ecoff_data_type): Moved to libecoff.h.
(ecoff_slurp_symbolic_info): Made globally visible so that gdb can
call it. If there is ever another ECOFF target, this and the
swapping functions should be accessed via an ECOFF specific target
vector.
Makefile.in (coff-mips.o): Depends on libecoff.h.
* coff-msym.c (ecoff_swap_fdr_in, ecoff_swap_ext_in): Set reserved
bits to 0 to make comparison test useful.
* config/irix3.mh, config/irix4.mh (HDEFINES): Set to -G 4 to
avoid overflowing GP accessible sections in binutils/objdump.
something to attach small common symbols to. Then avoid writing out
the (empty) .scommon section for the output BFD.
Tue Feb 2 11:41:06 1993 Ian Lance Taylor (ian@cygnus.com)
* coff-mips.c: Completed support for linker and binutils.
* section.c (SEC_IS_COMMON): New section flag, needed for MIPS
ECOFF which has two common sections.
(bfd_com_section): Set SEC_IS_COMMON flag.
* bfd-in.h (bfd_is_com_section): New macro to test SEC_IS_COMMON.
* aoutx.h, archive.c, bout.c, coff-a29k.c, coff-m88k.c,
coff-mips.c, coffgen.c, ieee.c, oasys.c, reloc.c, syms.: Use
bfd_is_com_section macro rather than checking for equality to
bfd_com_section.
Fri Jan 15 18:13:17 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* coff-msym.c (ecoff_swap_hdr_out, ecoff_swap_fdr_out,
ecoff_swap_pdr_out, ecoff_swap_sym_out, ecoff_swap_ext_out,
ecoff_swap_rndx_out, ecoff_swap_rfd_out, ecoff_swap_opt_in,
ecoff_swap_opt_out, ecoff_swap_dnr_in, ecoff_swap_dnr_out): New
functions.
* coffswap.h: If NO_COFF_RELOCS is defined, don't define
bfd_swap_reloc_in or coff_swap_reloc_out.
* coff-mips.c: Added code to link and write out symbolic debugging
information, and to swap relocs in and out.
(coff_write_object_contents): coff_count_linenumbers returns the
number of line number records it found.
* coffgen.c (coff_write_linenumbers): only write out line numbers
in the section they belong to.
debug info. Setup info about linker symbols only, and use
standard bfd fields to hold the info.
* (hppa_object_p): Remove unneeded decls.
* (hppa_new_section_hook): Get rid of most of this.
* libhppa.h (struct hppadata): Remove ten pounds of useless ugly
fat. Remove all knowledge of stabs, remove redundant knowledge of
linker symbols.
* Remove macros for accessing fields which are now gone.
Fri Jan 8 15:47:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* bfd.c (struct _bfd): Added ecoff_tdata to tdata union.
* targets.c (enum target_flavour): Added bfd_target_ecoff_flavour.
* coff-msym.c: Use DEFUN for function definitons.
* coff-mips.c: Added code to read and print symbols, and to find
line numbers.
* coffcode.h (coff_real_object_p): use name I386AIXMAGIC rather
than I386SVMAGIC.
(coff_pointerize_aux): don't pointerize a negative tagndx
(sometimes generated by SCO 3.2v4 cc).
* bout.c (calljx_callback, callj_callback,
b_out_get_relocated_section_contents): warn if relocating against
an undefined symbol.
Make a bunch more routines be static.
* hppa.c (fill_spaces): Get rid of this, replace with much better
written setup_sections().
* (setup_sections): New routine to create BFD sections for each
space and subspace in SOM files.
* (hppa_object_setup): Use BFD sections created by
setup_sections() to locate GDB symbol table info.
* (make_unique_section): New routine to create a BFD section. It
ensures that the given name is unique, and will generate a unique
one if necessary.
* (hppa_object_p): Become much more paranoid about file header.
* (make_bfd_asection): Call bfd_make_section to do the dirty
work. Simplify code somewhat.
* (hppa_core_file_p): Use proper name for stack section.
* libhppa.h: Remove millicode_start, millicode_end decls.
on the possible size of any object in a bfd.
* elf.c (bfd_elf_find_section, elf_get_str_section,
elf_get_symtab_upper_bound): Rewrite to avoid NULL pointer
dereferences.
* elf.c (elf_big_vec, elf_little_vec): Document last three
members initialized to NULL.
perhaps we can later remove the the_bfd field from each symbol.
* syms.c (struct symbol_cache_entry): Remove unused field
app_data. Add comment noting that the_bfd is almost redundant,
but not quite.
* aoutx.h, coff-a29k.c, coff-i386.c, coff-i960.c, coffcode.h:
Use new macros bfd_asymbol_bfd and bfd_asymbol_flavour.
* hppa.c (fill_spaces): Make slightly more rebust.
* configure.in: Allow std-host as the "default" host.
Get rid of HPPA/BSD specific code. That will go somewhere else
someday.
* (fill_spaces): Don't spin forever and die if you don't find
$MILLICODE$ subspace.
* (hppa_object_p): Make sure that we have a real honest-to-cthulu
exec file!
* (hppa_core_file_failing_signal, hppa_core_file_failing_command):
Make these work for HPUX.
* (make_bfd_asection): New routine to make section creation a
little easier.
* (hppa_core_file_p): Completely rewrite, leave out bugs.
* libhppa.h: #include the right system files. Redefine all of
the structs/macros for hacking core files to use more sensible
HPUX core file structures.
* targets.c (target_vector): Conditionalize hppa_vec on
HOST_HPPAHPUX, not hp9000s800.
* hosts/hppahpux.h: #include stdlib.h to get correct decls for
malloc and realloc. #define HOST_HPPAHPUX.
* Patches from Minh Tran-le <mtranle@paris.intellicorp.com>.
* configure.in (i386-*-isc*, i386-*-aix*): New targets.
* configure.host (i386-*-isc*, i386-*-aix*): New hosts.
* hosts/i386isc.h, config/i386isc.mh: New files for Interactive
Unix.
* hosts/i386aix.h, config/i386aix.mh: New files for AIX on PS/2.
* aix386-core.c: New file for handling core files on AIX on PS/2.
* targets.c: if AIX386_CORE, use aix386_core_vec.
* coffcode.h (coff_real_object_p): check for I386SVMAGIC as well
as I386MAGIC.
* tekhex.c: Insert leading_char (0) into bfd_target struct. Style.
* libcoff.h: Updated to get spacing change from coffcode.h.
* trad-core.c: leading_char is 0 (no symbols!), not '_'.
application. Some of the linker flags ought to get moved to this field
someday.
archures.c (bfd_default_scan): Recognize a few more numbers: 80486, 80960,
and 960.
bfd-in.h, bfd.c, targets.c, coffcode.h, coff-mips.c, other targets: Moved COFF
swap table to backend data.
hosts/i386linux.h: Include unistd.h.
aoutx.h, libaout.h, stab-syms.c: stab names are now in constant storage.
trad-core.c: Fixed some `PARAMS' uses that were missing parentheses.
aoutx.h, archive.c, archures.c, coffcode.h, ctor.c, reloc.c, syms.c: Doc fixes.
Eliminate all PROTO calls, replace with PARAMS for readability.
* aoutx.h: Add type to callback parameter.
* coff-mips.c: Don't call trad-core.h, not needed.
* trad-core.c: Incorporate trad-core.h declarations. Fix comments.
* trad-core.h: Eliminate, unused.
* section.c: New section bit SEC_SHARED_LIBRARY.
coffcode.h (styp_to_sec_flags): if STYP_NOLOAD && (STYP_TEXT ||
STYP_DATA), set SEC_SHARED_LIBRARY. This seems to be correct for
i386-sysv.
* archures.c, reloc.c, section.c, tekhex.c: Use PARAMS in
declaring pointers to functions.
* cache.c, elf.c: Move static function decls to top, use PARAMS.
* seclet.h: Declare external function with PARAMS.
* libbfd.h: Update, based on changes in source code and chew.
the wrong place to edit this file.
* Makefile.in (install): Install ansidecl.h and obstack.h in the
same places where we install bfd.h.
* libieee.h: Add FIXME about removing limit on number of sections.
binutils, bfd or opcodes uses it.
Mon Nov 2 12:36:14 1992 Ian Lance Taylor (ian@cygnus.com)
* config/delta88.mh, config/hp300.mh, config/hppahpux.mh,
config/i386v.mh: removed -DUSG from HDEFINES.
hosts/delta88.h, hosts/hp300.h, hosts/hppahpux.h, hosts/i386v.h:
defined USE_UTIME.
hosts/i386v.h: don't define POSIX_UTIME.
* ieee.c (get_symbol): can now cope when two symbols of a
different class, but the same index number occur consecutively.
(get_section_entry): nicer name for sections being forward
referenced. (ieee_archive_p): don't free the filename string,
since it was never malloced.
Tue Oct 27 12:24:34 1992 Ian Lance Taylor (ian@cygnus.com)
* coffcode.h (coff_swap_aux_out): set the fcnary info before
optionally setting the dimen info, since they are in the same
memory locations. Also zero out external auxent.
(coff_write_symbol): don't zero external auxent; now done in
coff_swap_aux_out.
* seclet.c (rel): don't load sections without the SEC_LOAD bit.
Thu Oct 15 10:16:35 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* coff-m68k.c (m68k_howto2type, SELECT_RELOC): new function to
work out a coff relocation type from a howto's attributes rather
than using the input r_type field. This fixes PR1677 and allows
conversion of a.out relocs to coff relocs.
* coffcode.h (coff_write_relocs): if supplied a relocation
relative to an absolute symbol, use the right symbol index.
* reloc.c (bfd_perform_relocation): do a partial link for coff
relocs right.
* changes to support i386-sysv with shared libraries:
* coffcode.h (sec_to_styp_flags): if TWO_DATA_SECS is defined,
check for .data2; if _LIB is defined, check for it; map
SEC_NEVER_LOAD to STYP_NOLOAD.
(styp_to_sec_flags): map STYP_NOLOAD to SEC_NEVER_LOAD.
(make_a_section_from_file): if TWO_DATA_SECS, accept .data2.
(coff_write_object_contents): force vaddr of .lib to 0; set scnptr
if section has contents, not just if it is loadable; if
TWO_DATA_SECS, check for .data2
(coff_set_section_contents): set vma of .lib section to number of
.lib sections.
* coff-i386.c: define TWO_DATA_SECS; use a special CALC_ADDEND;
don't define coff_write_armap to bsd_write_armap.
* hosts/i386v.h: don't include <utime.h>, since it is not provided
by SVR3.2.
coffcode.h, elf.c, ieee.c, libaout.h, libbfd.c, oasys.c,
sco-core.c: Lint: Second argument of bfd_seek is always file_ptr.
Third argument is SEEK_SET or SEEK_CUR. Result is always 0 or -1.
to host support file names for bfd, binutils, opcodes.
* configure.in: Use it.
* i386aout.c: Cleanup, dump TARGET_IS_LITTLE_ENDIAN_P.
* i386bsd.c: Cleanup, reformat.
* config/i386-bsd.mt: Comment changes.
* config/i386bsd.mh: New file for core file support.
* hosts/i386bsd.h: Merge changes from Peter Schauer.
* bout.c (ALIGN): Rename to ALIGNER, since system header files
on BSD 4.4 define ALIGN (sigh!).
* aoutx.h (some_aout_object_p): Restore old aout_data value if this type
doesn't match. Don't lose if file sections have already been created.
(set_arch_mach): Set reloc_entry_size.
(slurp_symbol_table): Use bfd_h_get_{16,8} for reaeding symbol data.
* hosts/i386bsd.h: New file.
* configure.in: Recognize i[34]86-*-bsd host.
* aout-target.h (callback, write_object_contents): Delete unused variables.
* aoutx.h (reloc_type_lookup): New function.
* aout-target.h (MY_reloc_howto_type_lookup): Use it as default.
* aoutf1.h (sunos4_reloc_type_lookup): Deleted.
(MY_reloc_howto_type_lookup): Don't define it.
* aoutx.h (adjust_sizes_and_vmas): Don't bother with padding for OMAGIC files.
(slurp_symbol_table): Use header byte order, not target byte order, for reading
symbol data.
Thu Oct 8 08:52:48 1992 Steve Chamberlain (sac@thepub.cygnus.com)
Now a bfd knows whether underscores are normally prepended
to symbols in its file format. Helps with error messages.
* aout-adobe.c, aout-target.h, bout.c, coff-a29k.c, coff-h8300.c,
coff-z8k.c: targets set so they have leading underscore
* coff-i386.c, coff-i960.c, coff-m68k.c, coff-mips.c, coff-m88k.c,
coff-rs6000.c, coff-we32k.c, elf.c, ieee.c, srec.c: targets set
without leading underscore flag
* targets.c: add symbol leading char to xvec description
* bfd-in.h (bfd_get_symbol_leading_char): new macro.
* Portability fixes from p3:
coffcode.h (coff_write_relocs): removed sanity check until it
works on all targets (per advice from sac).
config/hp9000.mh: new file to define USG.
hppa.c: #undef hppa before the JUMP_TABLE.
hosts/hppahpux.h: #define NATIVE_HPPAHPUX_COMPILER if not
__STDC__.
targets.c (bfd_target_list): if NATIVE_HPPAHPUX_COMPILER, make
local variable target volatile to avoid mysterious bug in
HP9000/700 cc.
* aout-adobe.c: New file. So far, only reads a.out.adobe. FIXME.
* config/adobe.mt: Add.
* configure.in (*-adobe-* target): Add.
* targets.c (a_out_adobe_vec): Add.
* Makefile.in: add aout-adobe.c.
* configure.in: Put two dashes in all entries to be matched.
Add comments to remind people to do this.
Reorder all entries that match manufacturer names, to occur
last, so they will only be matched if no more specific match
occurs. Remove manufacturers `aout', `bout', `coff', and `elf'.
* coff-z8k.c: getting closer
* coffcode.h (coff_get_relocated_section_contents): allow
EXTRA_CASES hooks for different arches to provide different reloc
types.
* seclet.h: #ifndef around it to allow multiple inclusion
* srec.c: minor doc fix
* coffcode.h (coff_renumber_symbols): set the last renumbered
symbol pointer to NULL, as expected by coff_write_linenumbers.
(coff_write_relocs): apparently a non-zero addend is OK for reloc
type R_IHCONST used on the 29k.
update, based on how the underlying file was opened. Obsoletes
FASCIST_FDOPEN.
* hosts/rs6000.h, hosts/tahoe.h, hosts/vaxbsd.h: Remove
all FASCIST_FDOPEN config defines.
* archive.c (bfd_slurp_bsd_armap): if the symdef_count is too
large, assume we're using a swapped byte order and fail with
wrong_format rather than dumping core.
* targets.c, config/i960-bout.mt, hosts/*: added
HOST_BIG_ENDIAN_DEFAULT_VECTOR and
HOST_LITTLE_ENDIAN_DEFAULT_VECTOR because bout archive format
depends on the endianness of the host. Added #define
HOST_BIG_ENDIAN_P and #undef HOST_BIG_ENDIAN_P to a number of
configuration files in hosts/ (it was already in some).
from a coff file (csym is null), dont deref them
* ieee.c (parse_expression): get the answer right when adding an
abs+(sec+off), (ieee_generic_stat_arch_elt): call ieee_object_p
on elts so that filename is filled in.
Tue Aug 18 12:57:45 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in: added FLAGS_TO_PASS, and used it for all recursive
invocations of make. Also, always create installation
directories.
* config/apollov68.mh: removed -g from CC definition.
* libaout.h (struct aout_backend_data): New callback "set_sizes".
* aout-target.h (callback): Don't set page/seg sizes.
(mkobject): Ditto.
(set_sizes): New routine.
(backend_data): Point to it.
* aoutf1.h (sunos4_set_sizes): Heed architecture when setting sizes.
(sunos4_aout_backend): Point to it.
* aoutx.h (set_arch_mach): Call set_sizes callback.
the default. Given that we *write* the suckers (for long
archive member names), we really ought to be able to read them!
* trad-core.c: Don't include <machine/reg.h>. It doesn't
seem to be needed, and many machines don't have it.
pointers to bfd_byte* before performing arithmetic on them. Such
use with bare void* pointers is a gcc extension.
* cache.c (bfd_cache_delete): Forward decl with prototype form.
* archive (normalize): Add to CONST to match actual usages with
CONST.
* elf.c (bfd_section_from_shdr, elf_section_from_bfd_section,
section_from_elf_index): Add SHT_BEPROGBITS case for i860 in
big endian mode.
* elf.c (bfd_section_from_shdr): Test for the possibility that
section_from_elf_index returns NULL and don't dereference it.
* bout.c (bout_swap_exec_header_[in_out]): new field in exec
header e_relaxable, major hackery in callbacks
* libaout.h : add space for a_relaxable.
* seclet.c (rel): don't relax empty sections
Lints for bfd_reloc_code_type->bfd_reloc_code_real_type, and
correct calling of howto special functions and fixes from Raeburn
for gas<>bfdness
* archures.c: nuke bfd_reloc_code_type
* bout.c, cpu-h8300.c, coff-i960.c, coff-m88k.c: special function lint
* coffcode.h (styp_to_sec_flags): STYP_INFO is marked as
SEC_NEVER_LOAD, various other bfdgas newness
* reloc.c->libbfd.h: change protype of bfd_default_reloc_type_lookup
* targets.c: change jump table vector to above
its prototype will be included in libbfd.h. Change result type
to struct * (rather than equivalent typedef) so it can be used in
the prototype, where they typedef won't be known.
* libbfd.h: Updated version.
Correct misconception that there can be only one symbol table.
Only call elf_slurp_symbol_table on the full symbol table, not
the dynamic one which is only a subset of the full one.
(The bfd library was slurping in the first ELF symbol table it
found and then ignoring any others. For dynamically linked
executables, this happened to be the dynamic symbol table, which
is a subset of the full symbol table and only contains the
symbols that need to be used in dynamic linking.)
* don't set/adjust section file positions or vmas more than once
* use correct page size and segment size when calculating them
* deal with some variations in a.out implementations
Tested on sun4 and sun4->sun3 so far, will be testing further but
needed to get wider exposure&testing. See ChangeLog for details.
Also:
* coffcode.h (coff_write_relocs): Write out swapped reloc, not
pre-swapped version.
* hosts/sparc.h (abort, exit): Hide these names if compiling with
gcc version 2, to avoid warnings.
* configure.in: Rewrite target parsing to use simple format.
Handle sparc-sun-solaris2 configuration.
* aout64.h: Avoid ANSI C brain death warning.
* elf.c: Avoid trigraph (???) or /* in comments.
elf_core_tdata_struct into a single common struct. Core files
wouldn't have worked at all without this.
(bfd_elf_find_section): New function for GDB's undercover use
to find string sections that BFD hides from it.
(elf_get_str_section): Avoid multiple alloc&reads for same data; lint.
(elf_object_p, elf_core_file_p): Allocate internal file header
storage dynamically.
* bfd.c (union {...} tdata): Remove elf_core_tdata_struct.
* demo64.c: Prevent "empty translation unit" warnings from idiots.
* working reloc lookup support
* better support for creation of COFF files from scratch
* misc doc changes, macro tweaks, "const" additions, typo fixes, etc.
* one or two ugly kludges that should get cleaned up (but what's one
or two more, in BFD?)
See ChangeLog for details.