Nick Clifton
d1cf510e5e
Add MIPS r12k support
2001-05-23 17:26:40 +00:00
Nick Clifton
6c426cf36e
Change PLT code to avoid using r2 - it used by GCC to return large startures
2001-05-23 16:38:36 +00:00
Nick Clifton
d9bc7a4499
Replace sh_size/sh_entsize with NUM_SHDR_ENTRIES
2001-05-23 08:23:27 +00:00
Andreas Jaeger
f5198f610d
* dwarf2.c (decode_line_info): Fix error message.
...
(read_abbrevs): Fix test for offset as suggested by Alan Modra and
adjust error message.
2001-05-21 11:52:42 +00:00
Alexandre Oliva
6be7c12c05
* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
...
ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.254. Rebuilt a number
of subdir/configure scripts to use the new libtool.m4.
2001-05-20 19:02:56 +00:00
H.J. Lu
7913c838b3
2001-05-18 H.J. Lu <hjl@gnu.org>
...
* elflink.h (elf_link_add_object_symbols): Revert the last
change.
2001-05-18 16:06:43 +00:00
Alan Modra
e0522e891a
* elf32-hppa.c (clobber_millicode_symbols): Temporarily set
...
ELF_LINK_FORCED_LOCAL to suit 2001-04-30 change.
(hppa_build_one_stub): Add an assert to check plt.offset.
2001-05-18 03:11:13 +00:00
H.J. Lu
96fd004e0e
2001-05-17 H.J. Lu <hjl@gnu.org>
...
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the
version definition to basename of the output filename.
2001-05-18 01:20:02 +00:00
H.J. Lu
f3876d8bc6
2001-05-17 H.J. Lu <hjl@gnu.org>
...
* elflink.h (elf_link_add_object_symbols): Set DT_NEEDED to
basename of the bfd filename.
2001-05-17 19:08:46 +00:00
Alan Modra
d1778b88f8
Add a flag to asection, linker_has_input, and use it to reliably
...
determine whether an input section is the first one assigned to
an output section.
2001-05-17 03:58:45 +00:00
Alexandre Oliva
2a0fa9433c
* elf-m10300.c (mn10300_elf_relax_section): Don't relax
...
negative 32-bit operands to 16 operands when the operand is
going to be zero-extended by the modified opcode.
2001-05-16 01:48:13 +00:00
Alan Modra
bcee8eb8ca
Peter Targett's backwards compatibility and other arc fixes.
2001-05-12 15:14:53 +00:00
Jakub Jelinek
579f31ac74
* elfxx-ia64.c (is_unwind_section_name): Consider linkonce unwind
...
sections as well.
(elfNN_ia64_final_write_processing): Map .gnu.linkonce.ia64unw.FOO
to .gnu.linkonce.t.FOO text section.
* readelf.c (process_unwind): Print all unwind sections, not just
one.
* config/tc-ia64.c (special_linkonce_name): New.
(make_unw_section): Map .gnu.linkonce.t.FOO text section into
.gnu.linkonce.ia64unw{,i}.FOO.
(ia64_elf_section_type): Handle .gnu.linkonce.ia64unw{,i}.FOO.
(dot_endp): Add comment about it.
* elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
(ELF_STRING_ia64_unwind_info_once): Define.
* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
.gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
output sections.
* emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
2001-05-11 12:36:47 +00:00
Jakub Jelinek
8550eb6e64
* merge.c (struct sec_merge_hash_entry): Add u.entsize and u.suffix
...
fields, change sec into secinfo.
(struct sec_merge_info): Add chain, remove last fields.
(struct sec_merge_sec_info): Add next, sec, psecinfo fields.
(sec_merge_hash_lookup): If lookup could not use a string only
because it has bad alignment, mark the old string for deletion.
(sec_merge_add): Add secinfo argument. Don't compute entry's
position, instead record the section.
(sec_merge_emit): Update for the sec into secinfo change in
struct sec_merge_hash_entry.
(_bfd_merge_section): Only record the section for merging, defer
putting strings into the hash table.
(cmplengthentry, last4_eq, last_eq, record_section, merge_strings,
_bfd_merge_sections): New functions.
(_bfd_merged_section_offset): Update for the sec_merge_hash_entry
changes.
* libbfd-in.h (_bfd_merge_sections): Add prototype.
(_bfd_nolink_bfd_merge_sections): Define.
* libbfd.h: Likewise.
(bfd_generic_merge_sections): Add prototype.
* targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_merge_sections.
(struct bfd_target): Likewise.
* bfd.c (bfd_merge_sections): Define.
* bfd-in2.h: Rebuilt.
* elf.c (_bfd_elf_merge_sections): New function.
* elf-bfd.h (_bfd_elf_merge_sections): Add prototype.
* elfxx-target.h (bfd_elfNN_bfd_merge_sections): Define.
* reloc.c (bfd_generic_merge_sections): New function.
* vms.c (vms_bfd_merge_sections): New function.
* aout-adobe.c (aout_32_bfd_merge_sections): Define.
* aout-target.h (MY_bfd_merge_sections): Define.
* aout-tic30.c (MY_bfd_merge_sections): Define.
* binary.c (binary_bfd_merge_sections): Define.
* bout.c (b_out_bfd_merge_sections): Define.
* coff-alpha.c (_bfd_ecoff_bfd_merge_sections): Define.
* coffcode.c (coff_bfd_merge_sections): Define.
* coff-mips.c (_bfd_ecoff_bfd_merge_sections): Define.
* i386msdos.c (msdos_bfd_merge_sections): Define.
* i386os9k.c (os9k_bfd_merge_sections): Define.
* ieee.c (ieee_bfd_merge_sections): Define.
* ihex.c (ihex_bfd_merge_sections): Define.
* nlm-target.h (nlm_bfd_merge_sections): Define.
* oasys.c (oasys_bfd_merge_sections): Define.
* ppcboot.c (ppcboot_bfd_merge_sections): Define.
* som.c (som_bfd_merge_sections): Define.
* srec.c (srec_bfd_merge_sections): Define.
* tekhex.c (tekhex_bfd_merge_sections): Define.
* versados.c (versados_bfd_merge_sections): Define.
* xcoff-target.h (_bfd_xcoff_bfd_merge_sections): Define.
* ldlang.c (lang_process): Call bfd_merge_sections.
2001-05-11 12:23:48 +00:00
Nick Clifton
1548c54f2e
Change type of 'addr' to be unsigned long, in order to match its use.
2001-05-11 09:55:02 +00:00
H.J. Lu
689effed70
2001-05-10 H.J. Lu <hjl@gnu.org>
...
* linker.c (_bfd_generic_link_add_one_symbol): Check loop on
indirect symbols.
2001-05-10 22:59:29 +00:00
H.J. Lu
6e5222be78
2001-05-09 H.J. Lu <hjl@gnu.org>
...
* elflink.h (elf_link_add_object_symbols): Fix a typo. Allocate
versymhdr->sh_size bytes for extversym instead of hdr->sh_size.
Remove the unused veriable `dynver'.
2001-05-09 22:34:30 +00:00
Ian Lance Taylor
8e191bd38c
* coff-i386.c (coff_i386_reloc): Don't dump core if output_bfd is
...
NULL or is not COFF.
(coff_i386_rtype_to_howto): Don't dump core if output section
owner is not COFF.
2001-05-08 17:44:00 +00:00
Ian Lance Taylor
efcbd82c36
Remove extraneous character in first line.
2001-05-08 17:14:35 +00:00
Alan Modra
062e23589d
* ecoff.c (bfd_debug_section): Fix initialization.
...
* elf.c (_bfd_elf_slurp_version_tables): Change maxidx to unsigned, it
is always a positive integer. Cast away sign mismatch.
* elf32-mips.c: Fix misleading comment and typo.
(_bfd_mips_elf_section_from_bfd_section): Remove unused attribute, use
correct data type.
* elflink.c: Fix typo.
(_bfd_elf_create_dynamic_sections): Remove superfluous initialization.
* ecoffswap.h (ecoff_swap_fdr_in): Cast away sign mismatch.
2001-05-07 09:15:26 +00:00
Richard Henderson
16b65e4ea2
* elf64-alpha.c (SREL16, SREL32, SREL64): Set pcrel_offset true.
2001-05-04 23:22:31 +00:00
Nick Clifton
cac1532771
Set EF_ARM_HASENTRY if the start address is set.
2001-05-04 08:32:21 +00:00
Nick Clifton
966b3e0b90
Compute value of _bfd_target_vector_entries based on the size of
...
_bfd_target_vector and not bfd_target_vector.
2001-05-03 17:49:49 +00:00
H.J. Lu
210ba1e83d
2001-05-03 H.J. Lu <hjl@gnu.org>
...
* elfcode.h: Include "libiberty.h".
* elflink.h (elf_link_add_object_symbols): Set
elf_dt_name (abfd) to basename of the bfd filename.
(NAME(bfd_elf,size_dynamic_sections)): Set vn_file to basename
of the bfd filename.
2001-05-03 06:18:09 +00:00
Andreas Jaeger
b274749094
* coff-alpha.c (reloc_nil): Likewise.
...
(alpha_ecoff_bad_format_hook): Likewise.
(alpha_adjust_reloc_out): Likewise.
(alpha_bfd_reloc_type_lookup): Likewise.
(alpha_convert_external_reloc): Likewise.
2001-05-03 05:08:17 +00:00
Andreas Jaeger
56fc028eb1
* elf64-gen.c (elf_generic_info_to_howto): Add unused attribute.
...
(elf_generic_info_to_howto_rel): Likewise.
* coff-alpha.c (reloc_nil): Likewise.
(alpha_ecoff_bad_format_hook): Likewise.
(alpha_adjust_reloc_out): Likewise.
(alpha_bfd_reloc_type_lookup): Likewise.
(alpha_convert_external_reloc): Likewise.
* elf64-alpha.c (elf64_alpha_reloc_nil): Likewise.
(elf64_alpha_reloc_bad): Likewise.
(elf64_alpha_reloc_gpdisp): Likewise.
(elf64_alpha_bfd_reloc_type_lookup): Likewise.
(elf64_alpha_info_to_howto): Likewise.
(elf64_alpha_add_symbol_hook): Likewise.
(elf64_alpha_create_got_section): Likewise.
(elf64_alpha_is_local_label_name): Likewise.
(elf64_alpha_merge_ind_symbols): Likewise.
* elf64-mips.c (mips_elf64_reloc_type_lookup): Likewise.
(mips_elf64_get_reloc_upper_bound): Likewise.
* nlm32-alpha.c (nlm_alpha_mangle_relocs): Likewise.
(nlm_alpha_get_public_offset): Likewise.
2001-05-03 04:46:27 +00:00
Nick Clifton
c7e4034828
Add gas and ld support for openrisc
2001-05-02 18:14:31 +00:00
H.J. Lu
5fba655aed
2000-04-27 H.J. Lu <hjl@gnu.org>
...
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1
only for ELF_LINK_FORCED_LOCAL.
* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise.
* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.
* elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL
if the symbol has hidden or internal visibility.
2001-04-30 16:13:26 +00:00
Alan Modra
db20fd7654
* elf32-hppa.c (final_link_relocate): Branch to .+8 for
...
calls to undefined weak symbols.
2001-04-30 13:34:41 +00:00
Andreas Jaeger
6a2bda3fa0
* elf64-x86-64.c (elf64_x86_64_relocate_section): Correct test for
...
R_X86_64_GOTPCREL, don't use assignments instead of comparisons.
2001-04-30 10:30:05 +00:00
Andreas Jaeger
053579d754
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Only swap
...
out handled entries.
(elf64_x86_64_finish_dynamic_symbol): Set up GOT entries.
(elf64_x86_64_relocate_section): Fix GOTPCREL calculation.
(elf64_x86_64_relocate_section): Merge entries for GOTPCREL and
GOT32.
2001-04-29 13:42:45 +00:00
H.J. Lu
37c9e45c89
Revert the last change on aclocal.m4.
2001-04-27 21:25:04 +00:00
Nick Clifton
87748b3227
Add support for arm-vxworks target
2001-04-27 17:12:18 +00:00
H.J. Lu
f5f31454c5
2001-04-26 H.J. Lu <hjl@gnu.org>
...
* elf32-i386.c (elf_i386_check_relocs): Verify if r_symndx is
valid.
2001-04-26 19:09:20 +00:00
Frank Ch. Eigler
d436a9b307
* externalize a function
...
2001-04-25 Frank Ch. Eigler <fche@redhat.com>
* bfd-in.h (bfd_cache_close): Declare newly exported function.
* bfd-in2.h: Regenerated.
2001-04-25 21:08:02 +00:00
Nick Clifton
5a0a214415
Fix autoconf breakage + commit target.c, omitted in previous delta
2001-04-25 19:09:30 +00:00
Jakub Jelinek
a531bbd206
* merge.c (struct sec_merge_hash_entry): Add alignment field.
...
(struct sec_merge_hash): Remove alignment_power.
(sec_merge_hash_newfunc): Clear alignment.
(sec_merge_hash_lookup): Pass alignment as argument.
Use hashp->root.next, not hashp->next to walk the hash chain.
If a string already in the hashtable does not have required
alignment, create a new hashtable entry.
(sec_merge_init): Remove alignment_power argument.
(sec_merge_add): Add alignment argument.
(sec_merge_emit): Alignment is now a per-entity thing, not per
section.
(_bfd_merge_section): Sanity check even non-SEC_STRINGS sections
for proper alignment.
Pass alignment information to sec_merge_add.
2001-04-24 17:55:57 +00:00
Nick Clifton
6840198f93
z8k fixes
2001-04-24 15:22:25 +00:00
Nick Clifton
b3baf5d0a8
Add OpenRISC support
2001-04-24 15:08:16 +00:00
Andreas Jaeger
fe4770f478
2001-04-23 Bo Thorsen <bo@suse.de>
...
* x86-64.h: Add vtable support.
2001-04-23 Bo Thorsen <bo@suse.de>
* elf64-x86-64.c: Add c++ vtable hack.
Small whitespace and comment changes.
2001-04-23 08:00:14 +00:00
Andreas Jaeger
653165cc0d
2001-04-19 Andreas Jaeger <aj@suse.de>
...
* elf64-x86-64.c (elf64_x86_64_plt0_entry): Fix instructions.
(elf64_x86_64_plt_entry): Likewise.
(elf64_x86_64_finish_dynamic_sections): Fix PLT0 generation.
(elf64_x86_64_finish_dynamic_symbol): Fix PLT generation.
2001-04-19 09:39:28 +00:00
Hans-Peter Nilsson
4d96d12825
* elf32-cris.c: Tweak comments related to dynamic linking.
...
(cris_elf_relocate_section): When not creating shared object, fill
in the .got table for any symbol not in the dynamic symbol table.
(elf_cris_finish_dynamic_symbol): When not creating shared object,
only emit a .got.rela reloc if the symbol is in the dynamic symbol
table.
(cris_elf_check_relocs): Use variable r_type in all places rather
than the original expression. Add default case in switch for
reloc types.
(elf_cris_size_dynamic_sections): Iterate over
elf_cris_discard_excess_program_dynamics when not creating shared
library.
(elf_cris_discard_excess_dso_dynamics): Renamed from
elf_cris_discard_copies. Correct typo, s/Rel/Rela/.
(elf_cris_discard_excess_program_dynamics): New.
2001-04-17 12:32:30 +00:00
DJ Delorie
3ed30d29c6
* coffcode.h (coff_write_object_contents): Use
...
bfd_coff_swap_filehdr_out instead of coff_swap_filehdr_out.
2001-04-15 04:23:46 +00:00
H.J. Lu
a80f694198
2001-04-14 H.J. Lu <hjl@gnu.org>
...
* bfd-in2.h: Regenerate.
2001-04-15 01:02:54 +00:00
Jakub Jelinek
767e4b0d59
* section.c (STD_SECTION): Add entsize.
2001-04-14 14:23:31 +00:00
H.J. Lu
2dd439c54e
2001-04-13 H.J. Lu <hjl@gnu.org>
...
* section.c (SEC_MERGE): Define new flag for merging.
(SEC_STRINGS): Likewise.
(entsize): New field.
2001-04-14 04:13:00 +00:00
DJ Delorie
baf80c32ae
* coff-i386.c (TARGET_SYM): SEC_READONLY is an applicable section
...
flag on pe-i386 targets.
2001-04-13 22:42:48 +00:00
Jakub Jelinek
f5fa8ca231
bfd/
...
* libbfd-in.h (_bfd_merge_section): New.
(_bfd_write_merged_section): New.
(_bfd_merged_section_offset): New.
* libbfd.h: Rebuilt.
* linker.c (_bfd_generic_link_output_symbols): Handle
discard_sec_merge.
* aoutx.h (aout_link_write_symbols): Likewise.
* pdp11.c (aout_link_write_symbols): Likewise.
* elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section.
(elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE
sections.
(elf_link_sec_merge_syms): New.
(elf_link_input_bfd): Call _bfd_merged_section_offset
and _bfd_write_merged_section.
Handle discard_sec_merge.
* elf-bfd.h (struct elf_link_hash_table): Add merge_info
field.
(struct bfd_elf_section_data): Likewise.
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and
SEC_STRINGS section flags and entsize from their ELF counterparts.
(_bfd_elf_link_hash_table_init): Initialize merge_info.
(elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize
from their BFD counterparts.
* merge.c: New file.
* Makefile.am: Add strtab.lo.
* Makefile.in: Rebuilt.
include/
* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
gas/
* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
handle SHF_MERGE and SHF_STRINGS.
(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
(obj_elf_section): Allow additional argument specifying entity size.
* write.c (adjust_reloc_syms): Keep relocations against local symbols
in SEC_MERGE sections.
ld/
* ldmain.c (main): Default to discard_sec_merge.
* lexsup.c (OPTION_DISCARD_NONE): Define.
(ld_options): Add --discard-none.
(parse_args): Handle OPTION_DISCARD_NONE.
* ldlang.c (wild_doit): SEC_MERGE should be set in the output
section only if SEC_MERGE and SEC_STRINGS flags and entsize of
all its input sections match.
2001-04-13 00:34:36 +00:00
Hans-Peter Nilsson
d954b04094
* elflink.h (elf_fix_symbol_flags): For non-default visibilities,
...
only hide symbols marked STV_INTERNAL or STV_HIDDEN.
2001-04-09 03:24:32 +00:00
H.J. Lu
fdbafa100f
2001-04-05 Steven J. Hill <sjhill@cotw.com>
...
* config.bfd (mips*el*-*-linux-gnu*): Use traditional little
endian MIPS ELF target.
* config.bfd (mips*-*-linux-gnu*): Use traditional big endian
MIPS ELF target.
* configure.in (bfd_elf64_tradbigmips_vec): New. Traditional
64bit big endian MIPS ELF target.
(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
endian MIPS ELF target.
* configure: Regenerated.
* elf32-mips.c (IRIX_COMPAT): Handle traditional 64bit and
little endian targets.
(mips_elf_sym_is_global): Handle traditional targets.
* elf64-mips.c (bfd_elf64_tradbigmips_vec): New. Traditional
64bit big endian MIPS ELF target.
(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
endian MIPS ELF target.
* targets.c: (_bfd_target_vector): Add bfd_elf64_tradbigmips_vec
and bfd_elf64_tradlittlemips_vec.
2001-04-08 05:11:49 +00:00