(hppa_reloc_field_selector_type): Add R_HPPA_NSEL.
(e_nsel): Undefine. Add to hppa_reloc_field_selector_type_alt.
(hppa_field_adjust): Handle e_nsel.
* som.c: Provide default definitions for many new relocs found only
in hpux10 include files.
(som_fixup_formats): Add several new relocs from hpux10.
(som_hppa_howto_table): Add hpux10 relocs.
(som_write_fixups): Handle R_N0SEL and R_N1SEL hpux10 relocs.
Quick stab at handling some of the new hpux10 features.
assume that we can set the GP value and then get the same value,
since it won't be true if the output file is neither ELF nor
ECOFF.
* coff-mips.c (mips_adjust_reloc_in): Don't bother to use
_bfd_get_gp_value here.
(mips_gprel_reloc): Don't assume we can set and get the GP value.
* elf32-mips.c (mips_elf_hi16_reloc): Get gp value from
mips_elf_final_gp.
(mips_elf_lo16_reloc): Likewise.
(mips_elf_final_gp): Add pgp parameter. Set it to the GP value.
Don't require that the BFD be ELF.
(mips_elf_gprel16_reloc): Get gp value from mips_elf_final_gp.
(mips_elf_gprel32_reloc): Likewise.
(mips_elf_relocate_section): Don't assume we can set and get the
GP value.
(mips_elf_finish_dynamic_symbol): Don't bother to use
_bfd_get_gp_value here.
* elf32-mips.c (mips_elf_create_procedure_table): Initialize sv.
Don't change epdr between malloc and free. Be careful not to free
NULL pointers. Zero out the first RPDR.
dt_name.
(elf_dt_name): Rename from elf_dt_needed_name.
* elf.c (bfd_elf_set_dt_needed_name): Use elf_dt_name, not
elf_dt_needed_name.
(bfd_elf_get_dt_soname): New function.
* elflink.h (elf_link_add_object_symbols): Use elf_dt_name, not
elf_dt_needed_name. Save the SONAME back in elf_dt_name.
* bfd-in.h (bfd_elf_get_dt_soname): Declare.
* bfd-in2.h: Rebuild.
substitute CFLAGS.
* configure: Rebuild.
* configure.host: Don't set information which autoconf should
figure out, namely CC, CFLAGS, LDFLAGS, AR, and RANLIB.
* Makefile.in (CFLAGS): Set to -g, not @CFLAGS@.
* Makefile.in ($(srcdir)/bfd-in2.h): Rename target from bfd-in2.h.
($(srcdir)/libbfd.h): Rename from libbfd.h.
($(srcdir)/libcoff.h): Rename from libcoff.h.
* ieee.c (ieee_write_expression): Only use an R variable for a
local symbol. Don't output a zero offset. Handle a zero address.
(SRC_MASK, PCREL_OFFSET): Define based on KEEPMINUSPCININST.
(rel32_howto, rel16_howto, rel8_howto): Use SRC_MASK and
PCREL_OFFSET.
(parse_expression): Don't try to handle multiple occurrences of a
P variable. Handle I variables differently from X variables. Fix
the order of minus expressions.
(ieee_slurp_external_symbols): Generate an I variable for an NN
record. Fix handling of ATI and ATX records.
(ieee_slurp_sections): Only set minimal section attributes.
Adjust them later, based on the section contents.
(ieee_object_p): Read in the file until just after the ME record.
Call ieee_slurp_section_data to set the section flags.
(do_one): Add iterations parameter. Only repeat the first load
item. Set the section and file reloc flags.
(ieee_slurp_section_data): Set section flags. Pass iterations to
do_one.
(ieee_canonicalize_reloc): Handle I variables.
(do_with_relocs): Only emit relocation size when necessary.
Increase MAXRUN to 127. Change ov to be assigned, and take
src_mask and pcrel_offset into account.
(ieee_write_data_part): Skip sections that are not loaded.
(ieee_write_external_part): Don't output optional last entry of WX
records.
(ieee_write_me_part): Make setting of me_record neater.
(ieee_generic_stat_arch_elt): Get the size of an archive element.
* syms.c (stt): Add entries for zerovars, vars, and code.
* elfcode.h (validate_reloc): New static function.
(write_relocs): Call validate_reloc for non ELF relocs.
* elfxx-target.h (elf_symbol_leading_char): Define if not defined.
(TARGET_BIG_SYM): Use elf_symbol_leading_char.
(TARGET_LITTLE_SYM): Likewise.
* config.bfd (m68*-*-psos*): New target.
* i386msdos.c: Remove some #if 0 code.
(msdos_write_object_contents): Don't include empty sections in the
size computation, regardless of their address.
(do_with_relocs): If EXEC_P is set and there are no relocs, use a
simple number for the section address, rather than an expression.
Limit the number of bytes between relocs to MAXRUN.
(ieee_write_me_part): Set me_record to the file offset after the
start address.
(ieee_write_processor): New static function.
(ieee_write_object_contents): Use ieee_write_processor.
* elf32-m68k.c (elf_m68k_relocate_section): For a R_68K_RELATIVE
relocation put the addend both in the reloc entry and the data.
(elf_m68k_finish_dynamic_symbol): Likewise. Mask out marker in
GOT offset value.
* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, resolve
a R_68K_PCxx reloc against a defined global symbol directly.
(elf_m68k_check_relocs): Don't count such a reloc.
* elf32-m68k.c (elf_m68k_check_relocs): Don't record a symbol with
a PLTxx reloc as dynamic. Disallow PLTxxO reloc against a local
symbol for now, otherwise always record the symbol as dynamic.
(elf_m68k_adjust_dynamic_symbol): If a symbol with a PLTxx reloc
is not referenced by a dynamic object, and we are not making a
shared object, then don't make a PLT entry. If we do make a PLT
entry, make sure the symbol has been recorded as dynamic.
pass an appropriate -rpath option. Use the make variable SONAME
as the shared library soname, rather than computing it here. On
SunOS, build stamp-tshlink in place of $(SHLINK).
* Makefile.in (SONAME): New variable.
($(SHLINK)): Make a link to the transformed name, as well.
(stamp-tshlink): New target.
(install): Skip stamp-tshlink during install.
Alan Modra <alan@spri.levels.unisa.edu.au>:
* configure.in: Add AC_ARG_ENABLE for shared and commonbfdlib.
New substitutions: ALLLIBS, PICFLAG, SHLIB, SHLIB_CC,
SHLIB_CFLAGS, COMMON_SHLIB, PICLIST, SHLINK.
* configure: Rebuild.
* configure.host: If --enable-shared, adjust shared library stuff
based on the host. If the host is SunOS, and the linker supports
-rpath, set HLDFLAGS to use it.
* Makefile.in (ALLLIBS): New variable.
(PICFLAG, SHLIB, SHLIB_CC, SHLIB_CFLAGS): New variables.
(COMMON_SHLIB, SHLINK): New variables.
(.c.o): If PICFLAG is set, compile twice, once PIC, once normal.
(STAGESTUFF): Remove variable.
(all): Depend upon $(ALLLIBS) and @PICLIST@ rather than
$(TARGETLIB).
(stamp-ofiles): New target, like old ofiles target, but build
using a temporary file and move-if-change, and touch stamp-ofiles
when done.
(ofiles): Just depend upon stamp-ofiles.
(stamp-piclist, piclist): New targets.
($(SHLIB), $(SHLINK)): New targets.
(targets.o, archures.o): Build twice if PICFLAG is set.
(do_mostlyclean): Remove pic/*.o.
(do_clean): Remove stamp-ofiles, $(SHLIB), $(SHLINK), piclist, and
stamp-piclist.
(do_distclean): Remove pic and stamp-picdir.
(install): Install shared libraries.
($(OFILES)): Depend upon stamp-picdir.
(stamp-picdir): New target.