bunch of static functions and structs used to write out IEEE
debugging information.
* budbg.h (write_ieee_debugging_info): Declare.
* ieee.c (struct ieee_type): Add pslot field.
(enum builtin_types): Define.
(ieee_builtin_type): For a pointer, return a pointer to the named
type. Use enum values rather than numbers.
(ieee_alloc_type): New static function.
(ieee_read_type_index): Use ieee_alloc_type.
(parse_ieee_bb): Likewise.
(parse_ieee_ty): Likewise. Use ieee_builtin_type for array range,
rather than making a new integer type. Store the new type in the
slot, if there is one.
(parse_ieee_atn): Treat ATN10 as defining a register variable.
(ieee_regno_to_genreg): Rename from ieee_regno_to_gen. Change all
callers.
(ieee_genreg_to_regno): New static function.
enum_type, start_struct_type, and start_class_type.
* debug.c (debug_write_type): Pass any tag name to
start_struct_type, debug_write_class_type, and enum_type. If
DEBUG_KIND_TAGGED, pass the name in the recursive call.
(debug_write_class_type): Accept a new tag parameter, and pass it
to start_class_type.
* prdbg.c (pop_type): Don't remove '+' character.
(pr_enum_type): Accept and use tag parameter.
(pr_start_struct_type): Likewise.
(pr_start_class_type): Likewise.
(pr_class_baseclass): Adjust algorithm used to find where to put
the baseclass name.
(pr_tag): Don't bother to insert the tag name.
Remove targets which just listed dependencies of .o files.
(DEP): New variable.
(HFILES, GENERATED_HFILES): New variables.
(CFILES, GENERATED_CFILES): New variables.
(underscore.c): Don't do anything, just depend upon stamp-under.
(stamp-under): New target; do what underscore.c used to do.
(nlmconv.o): Depend upon sym.h and ecoff.h.
(.dep, .dep1, dep.sed, dep, dep-in): New targets.
(stage1, stage2, stage3, against, comparison): Remove.
(de-stage1, de-stage2, de-stage3): Remove.
(clean, distclean): Remove stamp-under and dep.sed.
* dep-in.sed: New file.
* Makefile.in (OBJDUMP_OBJS): New variable.
($(OBJDUMP_PROG)): Use $(OBJDUMP_OBJS).
Test running objcopy and strip on a final executable.
* binutils-all/testprog.c: New file.
* config/default.exp (STRIP, STRIPFLAGS): Define.
(binutils_compile): New procedure.
* lib/utils-lib.exp (default_binutils_compile): New procedure.
Manfred Hollstein <manfred@lts.sel.alcatel.de>.
* Makefile.in ($(DEMANGLER_PROG)): Depend upon
$(DEMANGLER_PROG).1.
(install): Don't depend upon $(DEMANGLER_PROG).1. Only install
$(DEMANGLER_PROG).1 if $(DEMANGLER_PROG) is not empty.
(objdump_print_address): Use it. If we need the right section for
the symbol, and we can't find it, print an offset from the section
rather than using a symbol from some other section.
PR 8251.
* nm.c (print_symname): Don't try to demangle an empty name.
* objdump.c (slurp_symtab): Reset symcount if there are no symbols.
(slurp_dynamic_symtab): Likewise, for dynsymcount.
(disassemble_data): Fix memory leak: free sorted_syms when done.
(display_bfd): Likewise, for syms and dynsyms.
(dump_relocs): Don't print header before possibly generating an error message.
(dump_dynamic_relocs): Likewise.
* ar.1, nm.1, objdump.1, size.1, strings.1, strip.1: Fix typos and formatting
bugs.
symbols after other symbols with the same value. Likewise for
symbols which look like file names.
(objdump_print_address): Always chose the first reasonable symbol
with a given value.
PR 8148.
* binutils-all/bintest.s: Make text_symbol and data_symbol global.
Add new static symbols static_text_symbol and static_data_symbol.
* binutils-all/nm.exp: Adjust accordingly.
* config/default.exp (AR): Set if not set.
(binutils_remove): New procedure.
* lib/utils-lib.exp (default_binutils_run): Call
prune_system_crud on program output. Use verbose -log instead of
both verbose and send_log.
(default_binutils_remove): New procedure.
fragment, generate config.h.
* mpw-make.sed: New file, sed commands to edit Unix makefile
into MPW syntax.
* mpw-make.in: Remove.
* mac-binutils.r: New file, Mac resources.
* configure: Rebuild.
* config.in: Rebuild.
* dlltool.c: Include "libiberty.h" and "bucomm.h". Don't include
<stdio.h>, <stdlib.h>, or <string.h>. Don't include <wait.h>.
Include <sys/types.h>. Use HAVE_SYS_WAIT_H to control whether to
include <sys/wait.h> or define the wait macros by hand. Don't
declare xmalloc.
(gen_lib_file): Don't assume that sprintf returns the number of
characters; use strlen instead.
(stop_address): New variable.
(usage): Mention --start-address and --stop-address.
(OPTION_START_ADDRESS, OPTION_STOP_ADDRESS): Define.
(long_options): Add "start-address" and "stop-address".
(disassemble_data): Handle start_address and stop_address.
(dump_data, dump_reloc_set): Likewise.
(main): Don't set seenflag for -l. Handle OPTION_START_ADDRESS
and OPTION_STOP_ADDRESS.
* objcopy.c (parse_vma): Move to bucomm.c.
* bucomm.c (parse_vma): New function, moved in from objcopy.c.
* bucomm.h (parse_vma): Declare.
* binutils.texi, objdump.1: Document new objdump options.
PR 7983.
* configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
Check for config.h:config.in when creating stamp-h.
* configure: Rebuild.
* Makefile.in (stamp-h): Depend upon config.in rather than
config.h.in. Set CONFIG_HEADERS to config.h:config.in when
calling config.status.
BFD_HOST_64BIT_LONG.
(print_radix): New static variable.
(set_print_radix): Set print_radix. Adjust changes to
value_format.
(print_value): New static function, to print 64 bit octal and
decimal values correctly.
(print_symbol_info_bsd): Check BFD64, not BFD_HOST_64_BIT. Use
print_value.
(print_symbol_info_sysv): Use print_value.
(print_symbol_info_posix): Likewise.
* aclocal.m4: New file.
* configure: New file, built by autoconf.
* acconfig.h: New file.
* config.h.in: New file, built by autoheader.
* Makefile.in: Various changes for new configure script. Also:
(PROGS): Remove $(SYSINFO_PROG).
(ALL_CFLAGS): Remove $(TDEFINES).
(version.o): Use $(ALL_CFLAGS).
(cplus-dem.o, dlltool.o, nlmconv.o): Likewise.
(sysdump.o): Depend upon bucomm.h and config.h.
(srconv.o, arsup.o, strings.o): Depend upon config.h.
(filemode.o): Don't depend upon ../bfd/sysdep.h.
(bucomm.o): Depend upon config.h, not ../bfd/sysdep.h.
(size.o, objdump.o, nm.o, ar.o, objcopy.o): Likewise.
(nlmheader.o, nlmconv.o): Likewise.
(distclean): Don't remove sysdep.h.
* bucomm.h: Include "ansidecl.h", <stdio.h>, and "config.h".
Include "fopen-same.h" or "fopen-bin.h", based on
USE_BINARY_FOPEN. Include <errno.h>, and declare errno if it is
not a macro. Include <unistd.h>, <string.h>, <strings.h>,
<stdlib.h>, and <fcntl.h> if they are present. Declare strchr,
strrchr, and strstr if no string header file exists. Include
<sys/file.h> if it exists and <fcntl.h> does not. Define
O_RDONLY and O_RDWR if necessary.
* ar.c: Don't include "sysdep.h". Do include <sys/types.h> and
<sys/stat.h>. Use HAVE_GOOD_UTIME_H rather than POSIX_UTIME. Use
HAVE_UTIMES rather than !USE_UTIME. Don't include <errno.h>, and
don't declare errno.
* arsup.c: Don't include <sysdep.h>.
* bucomm.c: Don't include "sysdep.h". Include <stdio.h>,
<sys/types.h>, and <sys/stat.h>. Include <time.h> if it defines
time_t. Define time_t if necessary.
* coffdump.c: Don't include "sysdep.h".
* coffgrok.c, filemode.c, nlmconv.c, size.c: Likewise.
* srconv.c, strings.c: Likewise.
* nm.c: Don't include "sysdep.h". Don't try to define HAVE_SBRK.
* objcopy.c: Don't include "sysdep.h". Include <sys/types.h> and
<sys/stat.h>.
(simple_copy): Use creat rather than assuming that O_CREAT is
defined.
* objdump.c: Don't include "sysdep.h". Use
NEED_DECLARATION_PRINTF rather than !FPRINTF_ALREADY_DECLARED.
* sysdump.c: Include "bfd.h" and "bucomm.h". Don't include
"sysdep.h" or <stdlib.h>.
(dump_symbol_info): Rename from symbol_info. Change all callers.
@CC@, @CFLAGS@, @HDEFINES@ and @LDFLAGS@ in Makefile.
* Makefile.in (AR_FLAGS): Set to rc rather than qv.
(CC): Define as @CC@.
(CFLAGS): Set to @CFLAGS@.
(LDFLAGS): Define as @LDFLAGS@.
(ALL_CFLAGS): Use @HDEFINES@ rather than $(HDEFINES).
* dlltool.c (add_indirect): New.
(asm_prefix): New
(gen_exp_file): Timestamp should be 0. Insert prefix when
needed. New code for indirection.
(gen_lib_file): Timestamp should be 0. Insert prefix
when needed.
(usage): Document --add-indirect.
(main): Cope with new option.
* objdump.c (dump_private_headers): New.
(usage): Document new option.
(long_option): Add private-headers.
(dump_bfd_private_header): New.
(main): Cope with new option.
* dlltool.c (rva): Deleted.
(rvaafter, rva_before): Use new assembler pseudo.
(flush_page, gen_exp_file, gen_lib_file): Use new way of RVAing.
(gen_exp_file): Don't generate .edata if no need.
(gen_lib_file): Don't make timestamp.
(workout_prefix): Fix memory initialization bug.
(usage): Tidy up, delete many single char options.
(main): rva option is gone.
Modified to generate archives and objects rather than .s files.
* dlltool.c (run) New function.
(gen_exp_file, gen_lib_file): Use run.
(workout_prefix): New.
(usage): Document new options.
(main): Parse new options.
* sysdump.c (fillup): Return size - 1, the last byte is a checksum
and shouldn't be counted.
* sysroff.info (hd): Changed segment identifier from a byte to a 1
bit field. The sysroff 2.0-01 specification seems to be in error
here. Reduce width of following "spare" field from 4 to 3 bits.
(rl): Changed order and width of first 4 bitfields to correspond
to sysroff specification.
(dln_head, dln_inside, dln_tail): Removed.
(walk_tree_symbol): Use evallen and evalue instead of
vallen & value because of corresponding changes in
sysroff.info.
* sysdump.c (sysroff_swap_tr_in, sysroff_print_tr_out): New
functions.
* sysroff.info (tr): the tr block is a special case --- a block
without contents --- which can't be handled by generated code.
(den, dpp): only first byte is present for DENend, DPPend.
(dsy): describe a conditional portion of block, rename some fields.
(dps): describe a conditional portion of block.
(dfl): removed.
* sysinfo.y (yyerror): write error message to standard error.
(struct size_sym): Define.
(show_stats): New static variable.
(long_options): Add undocumented option "stats".
(main): Print memory stats if requested.
(sort_bfd, sort_dynamic, sort_x, sort_y): New static variables.
(numeric_forward): Use minisymbols rather than asymbols.
(non_numeric_forward): Likewise.
(size_forward1): Rename from size_forward. Use minisymbols.
(size_forward2): New static function.
(sort_symbols_by_size): Take new arguments dynamic, size, and
symsizep. Use minisymbols. Don't store the size back in the
symbol; store in a newly allocate struct size_sym array.
(display_rel_file): Read minisymbols rather than asymbols. Set
sort_* variables. Call print_size_symbols if sorting by size.
(filter_symbols): Take new arguments dynamic and size. Use
minisymbols.
(print_symbols): Likewise. Call print_symbol for actual printing.
(print_size_symbols): New static function.
(print_symbol): New static function.
PR 5332.
replacing a member, and 'a' when adding one.
* ar.c (truncate): New static variable.
(normalize): Change return type to const char *. Add abfd
argument. Change all callers. If truncate, chop the filename to
abfd->ar_max_namelen.
(main): For the 'f' modifier, set truncate to true. Don't change
quick_append to replace to truncate is true.
(do_quick_append): If truncate, set BFD_TRADITIONAL_FORMAT.
(write_archive): Likewise.
* binutils.texi, ar.1: Document 'f' modifier.
PR 6888.
Malloc buffers rather than allocate on stack (so it works
on NT).
* deflex.l: Names can have an @ in them.
* dlltool.c: Loads of stuff. Can now generate .imp files which
work with NT .dlls.
* deflex.l, defparse.y, dlltool.c: New files.
* Makefile.in, configure.in: Support for them.
Mon Jun 12 11:27:54 1995 Steve Chamberlain <sac@slash.cygnus.com>
* sysdump.c: Include sysdep.h
(main): Open input with FOPEN_RB. binutils/7137
PA assembly code.
* binutils-all/nm.exp: Enable these tests on the PA.
* binutils-all/objcopy.exp: Enable these tests on the PA. Expect
simple copy to fail.
* binutils-all/objdump.exp: Enable these tests on the PA. Handle
"CODE" as a section name.
* binutils-all/size.exp: Enable these tests on the PA.
* lib/utils-lib.exp (default_binutils_assemble): For "hppa*-*-*",
run the assembly through a sed script before passing it to the
assembler.
(copy_options): Likewise.
(copy_usage): Mention --keep-symbol and -K.
(strip_usage): Likewise.
(keep_symbols): New static variable.
(is_strip_symbol): Adjust the return value according to
keep_symbols.
(strip_main): Handle -K. For -N, check that -K was not given.
(copy_main): Likewise.
* binutils.texi, objcopy.1, strip.1: Document -K.
and flags. Change adjust from boolean to enum.
(remove_sections): Remove static variable.
(sections_removed): New static variable.
(copy_options): Add --set-section-flags.
(copy_usage): Mention --set-section-flags.
(parse_flags): New static function.
(find_section_list): New static function.
(is_strip_symbol): Change return type from int to boolean.
(is_strip_section): New static function.
(filter_symbols): Call is_strip_section.
(copy_object): When adding sections, check for specified flags or
VMA. Call filter_symbols if any sections are being removed.
(setup_section): Use find_section_list function rather than
looking through remove_sections and adjust_sections. Handle
--set-section-flags.
(copy_section): Use find_section_list rather than looking through
remove_sections.
(strip_main): Use find_section_list instead of adding items to
sections_removed.
(copy_main): Use find_section_list instead of adding items to
sections_removed and adjust_sections. Handle --set-section-flags.
* binutils.texi, objcopy.1: Document --set-section-flags.