Stan Shebs [Sun, 12 Nov 1995 20:39:38 +0000 (20:39 +0000)]
* Makefile.in (bfd_libs_here, etc): Provide empty definitions.
* coff-rs6000.c (rs6000coff_vec): Add conditional defines
TARGET_SYM and TARGET_NAME for vector and BFD name.
* coff-pmac.c (pmac_xcoff_vec): Remove.
(TARGET_SYM, TARGET_NAME): Define.
* coffcode.h (coff_set_arch_mach_hook) [POWERMAC]: Set the
machine to 0, not all PowerMacs are 601s.
Enable powerpc simulator for all powerpc-eabi targets, not just powerpc-eabisim if compiling with GCC. Add --enable-sim-powerpc option to control this.
* config/tc-a29k.c (md_apply_fix): Warn if an attempt is made to
generate a reloc which the linker will not handle correctly. Fix
overflow checking--R_IREL is 18 bits, not 17.
* archive.c (bfd_generic_archive_p): Check the first object file
in an archive even if target_defaulted is set. If the object file
has the wrong xvec, reject it.
* aoutx.h (NAME(aout,set_section_contents)): If a section can not
be represented, report the name via _bfd_error_handler.
(translate_to_native_sym_flags): Likewise.
* elf32-mips.c (mips_elf_final_link): Likewise.
* oasys.c (oasys_write_sections): Likewise.
Turn on INLINES if using GCC to compile simulator; Print more stuff if requests -t trace; If !WITH_ASSERT, do not check whether illegal bits in instruction are set
* coffcode.h (coff_set_alignment_hook): Write RS6000COFF_C version
which checks for STYP_OVRFLO sections.
(coff_compute_section_file_positions): If RS6000COFF_C, handle
reloc and lineno count overflows.
(coff_write_object_contents): Call coff_count_linenumbers before
coff_compute_section_file_positions. If RS6000COFF_C, handle
reloc and lineno count overflows.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Count line numbers and
relocs before dealing with .pad sections. Count overflow section
headers when handling .pad sections.
* emultempl/aix.em (gld${EMULATION_NAME}_before_allocation): Add
new local variable special_sections, and pass it to
size_dynamic_sections. Look through the results, and move the
sections around in the mapping so that they are defined correctly.
* xcofflink.c (XCOFF_DESCRIPTOR): Define.
(struct xcoff_link_hash_table): Add descriptor_section and
special_sections fields.
(_bfd_xcoff_bfd_link_hash_table_create): Initialize new fields.
(xcoff_link_add_symbols): Set linkage section alignment. Create
descriptor section. Check for magic symbol names (_text, etc.),
and record them in special_sections if found. Set
XCOFF_DESCRIPTOR flag for a function descriptor, and set its
descriptor field to point back to the function code symbol.
(xcoff_sweep): Always mark the special descriptor_section.
(bfd_xcoff_export_symbol): Check whether the symbol might be a
function descriptor, and mark it if it is.
(bfd_xcoff_size_dynamic_sections): Add new special_sections
parameter, and fill it in. Allocate space for the descriptor
section.
(xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR flag when defining
global linkage code. If an undefined function descriptor is
exported, arrange to define it. Warn about any other undefined
exported symbol.
(_bfd_xcoff_bfd_final_link): Write out the descriptor section.
(xcoff_write_global_symbol): Create a function descriptor when
necessary.
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
* bfd-in2.h: Rebuild.
Ken Raeburn [Thu, 9 Nov 1995 09:14:01 +0000 (09:14 +0000)]
* configure.in: Added new option --with[out]-mmap. Set USE_MMAP if it is given
and mmep is available.
* acconfig.h: Undef USE_MMAP.
* configure, config.in: Regenerated.
* aoutx.h: If USE_MMAP is not defined, do all symbol and string table handling
the old way.
(aout_get_external_symbols): Don't complain if last byte of string table is
nonzero.
* libbfd.c [HAVE_MADVISE]: Include sys/types.h and sys/mman.h.
(bfd_free_window) [! USE_MMAP]: Don't define.
(bfd_get_file_window, _bfd_generic_get_section_contents_in_window)
[! USE_MMAP]: Abort.
* coff-a29k.c (a29k_reloc): Change handling of R_IREL reloc to be
compatible with AMD generated COFF files. Try to support both AMD
and GNU formats simultaneously.
(coff_a29k_relocate_section): Likewise.
* config/tc-a29k.c (md_operand): Handle $float, $double, and
$extend. Based on code from Eric Freudenthal
<freudenthal@nyu.edu>.
* config/tc-a29k.h (LEX_DOLLAR): Define.
* read.c (LEX_DOLLAR): Define if not defined.
(lex_type): Use LEX_DOLLAR.
* libbfd.c (bfd_get_file_window): Change writable parameter from
int to boolean; update all callers. Pass MAP_SHARED if not
writable--it's required on Solaris. Cast fprintf argument to
avoid warning.
* bfd-in.h (bfd_get_file_window): Update declaration.
* bfd-in2.h: Rebuild.
* aoutx.h: Update calls to bfd_get_file_window.
* xcofflink.c (XCOFF_DEF_DYNAMIC): Rename from XCOFF_REF_DYNAMIC.
Change all uses.
(xcoff_swap_ldhdr_in): New static function.
(xcoff_swap_ldsym_in): New static function.
(xcoff_link_add_symbols): If we just created a descriptor, pass it
to _bfd_generic_link_add_one_symbol, to save a hash lookup.
(xcoff_link_add_dynamic_symbols): Rewrite to read .loader symbols
rather than normal symbol table.
(xcoff_mark): When considering called symbols, check whether the
descriptor is from a dynamic object, rather than the symbol
itself.
(xcoff_build_ldsyms): Likewise.
* libbfd.c (bfd_get_file_window): Change return type to boolean.
Cast realloc and malloc return values. If malloc or realloc fail,
set bfd_error_no_memory.
* bfd-in.h (bfd_get_file_window): Change type to boolean.
* bfd-in2.h: Rebuild.
* config/mips/vr4300.mt: Added simulator to default VR4300 build.
NOTE: Only the BigEndian build has the simulator included, because a
LittleEndian simulator is not constructed at the moment (it should
work, but has not been tested fully).
Initial check-in of the MIPS simulator. Work still needs to be done on
the run-time support code (interp.c) to provide better tracing, and
also to add profiling and architecture specific support. At the moment
the simulator has a fixed size, fixed address memory area, and
simulates a subset of the IDT monitor calls (enough to execute test
programs).
The other major feature (could even be a bug) is that the simulator
makes use of the GCC "long long" extension. Work has been started to
make this a build configuration option... but there is still a lot of
this to be done.
Stu Grossman [Wed, 8 Nov 1995 00:33:16 +0000 (00:33 +0000)]
* remote-mips.c (mips_initialize): Fix brain damage found by
Jamie. Basically had case statement in the wrong place...
* (mips_load): Remove unnecessary `db tty0' command. It's all
handled by mips_initialize now.
* configure: Default ${build} correctly. Avoid picking up extra
spaces when reading CC and CXX from Makefile. When doing a
Canadian Cross, use plausible default values for numerous
variables.
* configure.in: When doing a Canadian Cross, don't try to
configure tools whose configure script can't handle it.
* ecofflink.c (_bfd_ecoff_locate_line): Keep looking through stabs
entries until both the line number address and the function name
address are too large.
PR 8364.
* remote-mips.c (mips_initialize): Updated to talk to VR4300 RISQ
monitor board.
The mips_initialize() code seemed to have a "funny" switch
statement. I also removed an unnecessary switch into debug monitor
mode just before the call to mips_initialize() in mips_load().
* configure.in: Add test for whether free must be declared.
* sysdep.h: Declare free if necessary. Include "ansidecl.h".
* acconfig.h: Explain NEED_DECLARATION_FREE.
* configure, config.in: Rebuild.
* ld-shared/shared.exp: Run tests on rs6000*-*-aix* and
powerpc*-*-aix*. Add code to create appropriate exports files,
and pass appropriate compilation flags, and test against
appropriate expected output.
* ld-shared/xcoff.dat: New file.
* ld-shared/main.c: Put #ifndef XCOFF_TEST around tests that can
not be linked using XCOFF. Use shlib_shlibvar1 as a sample
function pointer, rather than shlib_mainvar.
* ld-shared/sh1.c: Likewise.
* ld-shared/shared.dat: Update for change from using shlib_mainvar
to using shlib_shlibvar1.
* ld-shared/sun4.dat: Likewise.
* xcofflink.c (xcoff_link_add_symbols): Set the alignment power of
the created .tc section to 2.
(xcoff_mark): Don't keep a .loader reloc for a call to an
undefined symbol when creating a shared library.
(xcoff_build_ldsyms): When creating a shared library, generate
global linkage code for a call to an undefined symbol.