Ian Lance Taylor [Wed, 24 Aug 1994 21:17:40 +0000 (21:17 +0000)]
* coffgen.c (coff_print_symbol): Cast pointer different to long
and use %ld to print it.
* osf-core.c (osf_core_core_file_p): Remove unused variable
dseccnt.
* ecoffswap.h (ecoff_swap_ext_out): If ECOFF_64, clear remaining
bytes in bits2.
Ian Lance Taylor [Wed, 24 Aug 1994 16:32:40 +0000 (16:32 +0000)]
* coffgen.c (coff_real_object_p): Set obj_conv_table_size here,
rather than waiting until coff_slurp_symbol_table.
(coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
From [email protected].
Ian Lance Taylor [Wed, 24 Aug 1994 15:59:40 +0000 (15:59 +0000)]
* aoutx.h (translate_to_native_sym_flags): Use the output_section
(and output_offset) if there is one.
* aoutx.h (aout_link_check_archive_element): Discard the symbols
if the archive element was not needed.
* aoutx.h (aout_get_external_symbols): Ensure that a zero string
index yields an empty string.
(aout_link_write_symbols): If info->keep_memory is false, use name
from original hash table entry, not from entry in *sym_hash.
* aoutx.h (struct aout_final_link_info): Add fields contents,
relocs, symbol_map and output_syms.
(NAME(aout,final_link)): Work out the largest section size, reloc
size, and number of symbols. Use them to preallocate buffers that
are large enough for all cases.
(aout_link_input_bfd): Use preallocated symbol_map.
(aout_link_write_symbols): Remove symbol_map argument; use
preallocated symbol_map instead. Change all callers. Use
preallocated output_syms.
(aout_link_input_section): Remove symbol_map argument. Change all
callers. Use preallocated contents and relocs.
(aout_link_input_section_std): Remove symbol_map argument; use
preallocated symbol_map instead. Change all callers.
(aout_link_input_section_ext): Likewise.
Jim Kingdon [Tue, 23 Aug 1994 21:39:50 +0000 (21:39 +0000)]
* gdbtypes.h: Declare f77_create_literal_string_type and
f77_create_literal_complex_type.
* valops.c (f77_value_literal_string, f77_value_substring,
f77_value_literal_complex): Use xmalloc not malloc.
* valops.c (f77_value_literal_string, f77_value_substring):
Make addr char * not CORE_ADDR.
* value.h (struct value): Add new field literal_data of aligner union.
(VALUE_LITERAL_DATA): Use it.
* f-lang.h: Declare find_common_for_function.
* value.h, valops.c: Split VALUE_SUBSTRING_START into memaddr and
myaddr fields of a union. Don't overload it with the frame field
(not sure this is necessary; I'm not sure what lval_* codes
VALUE_SUBSTRING_* can be used with).
Ian Lance Taylor [Mon, 22 Aug 1994 21:14:43 +0000 (21:14 +0000)]
* ar.c: Include libiberty.h.
(inarch): Remove variable.
(map_over_members): Make static. Add arch argument, and use it
instead of inarch. Change all callers.
(main): Treat --version as -v. Accept -t argument. Accept any
number of archive arguments. Catch and use open_inarch return
value, rather than using inarch.
(open_inarch): Return newly opened BFD, rather than using inarch.
(do_quick_append): Make archive_filename const.
(write_archive): Add iarch argument, and use it instead of inarch.
Change all callers.
(delete_members, move_members, replace_members): Likewise.
(ranlib_only): Don't exit on success. Catch and use open_inarch
return value.
(ranlib_touch): New function.
* arsup.h (map_over_members): Don't declare.
(ar_end, ar_extract): Declare.
(open_inarch): Change return value in declaration to bfd *.
* arsup.c (map_over_list): Make static. Always pass two arguments
to function. Add arch argument, and use it instead of inarch.
Change all callers.
(ar_directory_doer): Make static. Add ignored second argument.
Change all callers.
(ar_directory): Use open_inarch return value rather than inarch.
(ar_addlib_doer): Make static.
(ar_addlib): Use open_inarch return value rather than inarch.
(ar_extract): Remove unused local variable abfd.
Work to reduce the interrupts-off duration when running in DOS.
* ser-go32.c: (dos_async_ready): See if anything is in the buffer.
(dos_async_rx): rewrite to unpack as many characters from the
asynctsr as possible into a local buffer.
Ian Lance Taylor [Mon, 22 Aug 1994 16:36:52 +0000 (16:36 +0000)]
* hash.c: Copy string hash functions from aoutx.h.
* aoutx.h: String hash functions moved to hash.c. Retain
simplified versions of add_to_stringtab and emit_stringtab.
Change all callers to use new function and structure names.
* libbfd-in.h (_bfd_stringtab_init, _bfd_stringtab_free): Declare.
(_bfd_stringtab_size, _bfd_stringtab_add): Declare.
(_bfd_stringtab_emit): Declare.
* libbfd.h: Rebuilt.
* i386linux.c (linux_add_one_symbol): Create a fixup for any
defined absolute symbol, not just GOT or PLT symbols.
(linux_tally_symbols): Correct handling of references to defined
symbols.
Stan Shebs [Fri, 19 Aug 1994 21:59:05 +0000 (21:59 +0000)]
Initial Fortran language support, adapted from work by Farooq Butt
([email protected]).
* Makefile.in: Add Fortran-related files and dependencies.
* defs.h (language_fortran): New language enum.
* language.h (_LANG_fortran): Define.
(MAX_FORTRAN_DIMS): Define.
* expression.h: Reformat to standard.
(MULTI_F77_SUBSCRIPT, OP_F77_UNDETERMINED_ARGLIST,
OP_F77_LITERAL_COMPLEX, OP_F77_SUBSTR): New expression opcodes.
* gdbtypes.h (TYPE_CODE_COMPLEX, TYPE_CODE_LITERAL_COMPLEX,
TYPE_CODE_LITERAL_STRING): New type codes.
(type): New fields upper_bound_type and lower_bound_type.
(TYPE_ARRAY_UPPER_BOUND_TYPE, TYPE_ARRAY_LOWER_BOUND_TYPE,
TYPE_ARRAY_UPPER_BOUND_VALUE, TYPE_ARRAY_LOWER_BOUND_VALUE): New
macros.
(builtin_type_f_character, etc): Declare.
* value.h (VALUE_LITERAL_DATA, VALUE_SUBSTRING_START): Define.
* f-exp.y: New file, Fortran expression grammar.
* f-lang.c: New file, Fortran language support functions.
* f-lang.h: New file, Fortran language support declarations.
* f-typeprint.c: New file, Fortran type printing.
* f-valprint.c: New file, Fortran value printing.
* eval.c (evaluate_subexp): Add code for new expression opcodes,
fix wording of error message.
* gdbtypes.c (f77_create_literal_complex_type,
f77_create_literal_string_type): New functions.
* language.c (set_language_command): Add Fortran info.
(calc_f77_array_dims): New function.
* parse.c (length_of_subexp, prefixify_subexp): Add cases for new
expression opcodes.
* symfile.c (deduce_language_from_filename): Recognize .f and .F
as Fortran source files.
* valops.c (f77_value_literal_string, f77_value_substring,
f77_value_literal_complex): New functions.
Peter Schauer [Fri, 19 Aug 1994 20:44:18 +0000 (20:44 +0000)]
* c-typeprint.c (c_print_type): Assume demangled arguments
if a '(' is found in varstring, Looking for ')' at the end of
varstring did fail with demangled const member functions, which
have a trailing `const'.
* remote.c (get_offsets, putpkt): Change to `char' buffers,
to avoid errors when compiling with DEC c89.
(remote_wait): Cast to `char *' before passing buffer to
fputs_filtered, to avoid errors when compiling with DEC c89.
(remote_wait): Do not return inferior_pid by default, this
statement is never reached, which causes warnings from some
compilers.
* stabsread.c (scan_file_globals): Ignore static minimal symbols.
* symfile.c (load_command): If called with no argument, try
to get the filename from the executable file.
(generic_load): Remove check for NULL filename, it is done
in load_command now.
* somread.c: Do not include "aout/aout64.h". SOM has nothing to
do with a.out.
(BYTES_IN_WORD): Delete.
(som_symfile_read): Call hpread_build_psymtabs to build any
minimal symbols based on the HP C native debug symbols.
(som_symfile_finish): Call hpread_symfile_finish.
(som_symfile_init): Call hpread_symfile_init.
* config/pa/tm-hppa.h (HPREAD_ADJUST_STACK_ADDRESS): Define.
* hppa-tdep.c (hpread_adjust_stack_address): New function.
Ian Lance Taylor [Thu, 18 Aug 1994 21:48:23 +0000 (21:48 +0000)]
Get ld -x -r to handle a.out set symbols correctly.
* aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
BFD, pad the .data section up to the VMA of the .bss section.
(aout_link_add_symbols): If a set symbol does not get modified,
treat it as a local symbol.
(aout_link_write_symbols): Set the value of set symbols
correctly. Don't discard set symbols even if discarding local
symbols.
(aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
since it can now happen for set symbols.
Ian Lance Taylor [Thu, 18 Aug 1994 21:33:07 +0000 (21:33 +0000)]
* elfcode.h (elf_fake_sections): Just check for ".rela" and
".rel", not ".rela." and ".rel."; make this work by checking
use_rela_p.
* elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
".rel."
(elf_i386_size_dynamic_sections): Likewise.
(elf_i386_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_check_relocs): Just check for
".rela", not ".rela."
(elf32_sparc_size_dynamic_sections): Likewise.
(elf32_sparc_relocate_section): Likewise.
Ian Lance Taylor [Thu, 18 Aug 1994 20:10:54 +0000 (20:10 +0000)]
Make the ELF linker handle orphaned sections reasonably. Also,
define __start_SECNAME and __stop_SECNAME around sections whose
names can be represented in C, for the benefit of symbol sets in
glibc.
* ldemul.h (ldemul_place_orphan): Declare.
(ld_emulation_xfer_type): Add place_orphan field.
* ldemul.c (ldemul_place_orphan): New function.
* ldlang.h (wild_doit): Declare.
* ldlang.c (wild_doit): Make nonstatic.
(lang_place_orphans): Call ldemul_place_orphan.
* emultempl/elf32.em: Include <ctype.h> and "ldgram.h".
(hold_section, hold_use, hold_text, hold_data, hold_bss): New
static variables.
(gld${EMULATION_NAME}_place_orphan): New static function.
(gld${EMULATION_NAME}_place_section): New static function.
(ld_${EMULATION_NAME}_emulation): Initialize place_orphan field.
Stu Grossman [Thu, 18 Aug 1994 06:43:56 +0000 (06:43 +0000)]
* Makefile.in (TARGET_FLAGS_TO_PASS): Pass down LD_FOR_TARGET and
NLMCONV_FOR_TARGET. (SUBDIRS): Add nlm target.
* configure.in (powerpc-*-netware*): Automatically configure nlm
subdir.
* nlm/Makefile.in: Add {CC NLMCONV LD}_FOR_TARGET. Remove alpha
specific stuff. Make things more configurable.
* nlm/configure.in: Add powerpc-*-netware* target. Use
gdbserve.mt/cpu.c/cpu.h for target stuff. Get rid of tm/xm/nm.h
files.
* nlm/gdbserve.c: Move Alpha specific stuff into other files.
Remove lots of architecture-specific stuff.
* nlm/gdbserve.def: Add new imports.
* nlm/ppc.c, nlm/ppc.h: New files that contain PowerPC specific code.
* nlm/prelude.c: Don't include libhooks.h, get rid of call to
register library.
* nlm/prelude.o: What was this doing here?
* config/alpha/gdbserve.mt: Defs for alpha nlm stub.
* config/powerpc/gdbserve.mt: Defs for PowerPC nlm stub.
* config/powerpc/ppc-nw.mt: Defs for PowerPC target for GDB.
* config/powerpc/tm-ppc-nw.h: Ditto.
* nlmstub.def: New file, contains imports for 386 nlm stub.
Stu Grossman [Thu, 18 Aug 1994 06:32:55 +0000 (06:32 +0000)]
* Makefile.in (TARGET_FLAGS_TO_PASS): Pass down LD_FOR_TARGET and
NLMCONV_FOR_TARGET. (SUBDIRS): Add nlm target.
* configure.in (powerpc-*-netware*): Automatically configure nlm
subdir.
* nlm/Makefile.in: Add {CC NLMCONV LD}_FOR_TARGET. Remove alpha
specific stuff. Make things more configurable.
* nlm/configure.in: Add powerpc-*-netware* target. Use
gdbserve.mt/cpu.c/cpu.h for target stuff. Get rid of tm/xm/nm.h
files.
* nlm/gdbserve.c: Move Alpha specific stuff into other files.
Remove lots of architecture-specific stuff.
* nlm/gdbserve.def: Add new imports.
* nlm/ppc.c, nlm/ppc.h: New files that contain PowerPC specific code.
* nlm/prelude.c: Don't include libhooks.h, get rid of call to
register library.
* nlm/prelude.o: What was this doing here?
Ian Lance Taylor [Wed, 17 Aug 1994 17:44:17 +0000 (17:44 +0000)]
* coffgen.c (coff_get_normalized_symtab): If a C_FILE symbol has
no aux entries, use the symbol name as the file name.
(coff_find_nearest_line): Look for the right C_FILE symbol, rather
than always using the first one. If there is a debugging symbol
after a function symbol, skip it. Add the section VMA to the line
offset, since it was subtracted out in coff_slurp_line_table.
PR 5010.
Stan Shebs [Wed, 17 Aug 1994 00:15:28 +0000 (00:15 +0000)]
* coffread.c: General cleanup, and support for section offsets.
(time.h, sys/types.h, libbfd.h): Don't include.
(cur_src_start_addr, cur_src_end_addr): Rename to
current_source_start_addr, current_source_end_addr.
(nlist_stream_global): Remove.
(nlist_bfd_global): New global variable.
(coff_symfile_read): Remove code that gets and uses fileno()
directly.
(read_coff_symtab, enter_linenos, process_coff_symbol): Add
section_offsets parameter, add text/data section offset to
appropriate symbols' values.
(read_one_sym): Use bfd_read instead of fread.
(init_stringtab, init_lineno): Change first parameter to a bfd,
use bfd routines instead of raw I/O.
Jim Kingdon [Tue, 16 Aug 1994 23:22:45 +0000 (23:22 +0000)]
* Makefile.in (TARFILES, NONSRC, SFILES_STAND, SFILES_KGDB):
Remove; unused.
(TAGFILES_NO_SRCDIR): Remove ALLPARAM.
(HFILES_NO_SRCDIR): Remove all files in config sub-directory.
(TAGS): Also pass result of find on config sub-directory to etags.
(ALLPARAM): Remove; now unused.
Jeff Law [Tue, 16 Aug 1994 23:11:59 +0000 (23:11 +0000)]
* som.c (som_prep_headers): If writing some form of an executable,
allocate and attach an exec header to the BFD private data.
(som_begin_writing): Don't fill fields of the exec header based
on BFD private data here (like the exec flags). Do not write
the exec header here.
(som_write_headers): Instead do it here.
* som.h (struct somdata): New field "exec_hdr" for the executable
file header.
(obj_som_exec_hdr): New accessor macro.
Ian Lance Taylor [Tue, 16 Aug 1994 04:15:50 +0000 (04:15 +0000)]
* i386linux.c (linux_link_create_dynamic_sections): Create section
named .linux-dynamic, not .dynamic.
(linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
(bfd_linux_size_dynamic_sections): Likewise.
(linux_finish_dynamic_link): Likewise.
Ian Lance Taylor [Mon, 15 Aug 1994 18:12:05 +0000 (18:12 +0000)]
* aout-target.h (MY_zmagic_contiguous): Define as 0 if not already
defined.
(MY(backend_data)): Use MY_zmagic_contiguous, not hardcoded 0.
* i386linux.c (MY_zmagic_contiguous): Define.
Ian Lance Taylor [Mon, 15 Aug 1994 18:08:13 +0000 (18:08 +0000)]
* elfcode.h (bfd_section_from_shdr): If a SHT_SYMTAB section in a
shared object has SHF_ALLOC set, create a BFD section for it.
(elf_section_from_bfd_section): There may be a BFD section for a
SHT_SYMTAB section.
Ian Lance Taylor [Mon, 15 Aug 1994 16:26:06 +0000 (16:26 +0000)]
* coffcode.h (styp_to_sec_flags): Add name argument. If no flags
are recognized, chose section flags based on the name.
(bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add
name argument.
(bfd_coff_styp_to_sec_flags_hook): Add name argument.
(coff_compute_section_file_positions): Don't adjust the section
position by COFF_PAGE_SIZE unless SEC_ALLOC is set.
* libcoff.h: Rebuilt.
* coffgen.c (make_a_section_from_file): Pass section name to
bfd_coff_styp_to_sec_flags_hook.
* ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name
argument.
* libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to
prototype.
Jeff Law [Sat, 13 Aug 1994 02:12:03 +0000 (02:12 +0000)]
* gdb.base/interrupt.exp: When trying to wake up the inferior,
send the newline ourselves instead of assuming gdb_test will do
so when passed an empty input string.
Ian Lance Taylor [Fri, 12 Aug 1994 15:28:19 +0000 (15:28 +0000)]
* configure.host (sparc-*-solaris2*): Use solaris2, not sysv4.
The linker depends upon configuring for solaris2.
* hosts/solaris2.h: New file; include hosts/sysv4.h.
* config/solaris2.mh: New file; copy of config/sysv4.mh.
Ian Lance Taylor [Thu, 11 Aug 1994 19:00:26 +0000 (19:00 +0000)]
Add support for removing named sections to objcopy and strip.
* objcopy.c (struct section_list): Define.
(remove_sections): New static variable.
(strip_options, copy_options): Add remove-section.
(copy_usage, strip_usage): Mention -R and --remove-section.
(setup_section): If section is in remove_sections list, ignore it.
(copy_section): Likewise.
(strip_main, copy_main): Handle -R.
* binutils.texi, objcopy.1, strip.1: Document new options.
Ian Lance Taylor [Wed, 10 Aug 1994 17:15:05 +0000 (17:15 +0000)]
* aoutx.h (adjust_z_magic): Make sure data section is padded to
page boundary when the VMA is set by the calling program. From
Eric Youngdale <[email protected]>.
Stu Grossman [Wed, 10 Aug 1994 02:47:48 +0000 (02:47 +0000)]
* configure.in: Recognize ppc-*-netware.
* config/te-ppcnw.h: New file to support Power-PC/Netware
configurations. Currently, it just enables the use of backslash
escapes in string directives.