This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [venom@cibs9.sns.it: ]


> 
> This is the second report I've seen of this bug on a
> i386-pc-linux-gnulibc1 system.  Unfortunately I don't have access to
> such a system.  Can anyone confirm the bug, and either fix it or make
> a test case available?  Thanks.

If it is a bug, I don't believe it is limited to i386-pc-linux-gnulibc1.
You may see it on i386-pc-linux-gnu also. Luigi, could you please
provide a complete test case? Thanks.

> 
> Ian
> 
> ------- Start of forwarded message -------
> Date: Sun, 18 Jul 1999 14:48:07 +0200
> From: V-man <venom@cibs9.sns.it>
> To: bug-gnu-utils@gnu.org
> 
> upgrading my slackware linux libc 5.4.46, egcs 1.1.2, 
> to binutils 2.9.4.0.8 i've noted a bug
> in shared libbfd.
> infact ld give an error about linking.
> for example.
> /usr/X11R6/lib/libXext.so(*ABS*+0xa040): multiple definition of `_DYNAMIC'
> /usr/X11R6/lib/libXext.so(.dynamic+0x0): first defined here
> /usr/X11R6/lib/libXext.so(*ABS*+0x9f5c): multiple definition of `_GLOBAL_OFFSET_TABLE_'
> /usr/X11R6/lib/libXext.so(.got.plt+0x0): first defined here
> collect2: ld returned 1 exit status
> 
> the library named can canghe, but the problem is ever the same.
> unfortunally i've not the sources of previous version to see the canghes,
> but i can say for sure that for me binutils 2.9.4.0.7 worked fine.
> hope this helps.

Here is the ChangeLog diff between 2.9.4.0.7 and 2.9.4.0.8. There
are many ELF changes in bfd after 2.9.4.0.7. Many things may be
broken and fixed very quickly. A testcase is necessary to verify
it.

-- 
H.J. Lu (hjl@gnu.org)
--
Index: ChangeLog
===================================================================
RCS file: /work/cvs/gnu/binutils/bfd/ChangeLog,v
retrieving revision 1.1.1.8
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.8 -r1.1.1.9
--- ChangeLog	1999/06/27 01:02:16	1.1.1.8
+++ ChangeLog	1999/07/09 15:20:43	1.1.1.9
@@ -1,3 +1,361 @@
+Thu Jul  8 12:32:23 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+	* config.bfd (hppa*-*-linux-gnu*): New target
+
+1999-07-07  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf-bfd.h (_bfd_mips_elf_section_from_shdr): Constify.
+	(_bfd_mips_elf_create_dynamic_sections): New function.
+	(_bfd_mips_elf_add_symbol_hook): Likewise.
+	(_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
+	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.	
+	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
+	(_bfd_mips_elf_gc_mark_hook): Likewise.
+	(_bfd_mips_elf_gc_sweep_hook): Likewise.
+	(_bfd_mips_elf_always_size_sections): Likewise.
+	(_bfd_mips_elf_size_dynamic_sections): Likewise.
+	(_bfd_mips_elf_check_relocs): Likewise.
+	(_bfd_mips_elf_link_hash_table_create): Likewise.
+	(_bfd_mips_elf_print_private_data): Likewise.
+	(_bfd_mips_elf_link_output_symbol_hook): Likewise.
+	(_bfd_mips_elf_final_link): Likewise.
+	(_bfd_mips_elf_additional_program_headers): Likewise.
+	(_bfd_mips_elf_modify_segment_map): Likewise.
+	(_bfd_mips_elf_relocate_section): Likewise.
+	* elf32-mips.c (mips_elf32_object_p): Move contents into
+	_bfd_mips_elf_object_p.
+	(mips_elf_additional_program_headers): Rename to
+	_bfd_mips_elf_additional_program_headers.
+	(mips_elf_modify_segment_map): Rename to
+	_bfd_mips_elf_modify_segment_map.
+	(elf_mips_abi_name): Change prototype.
+	(mips_elf32_section_from_shdr): Merge into
+	_bfd_mips_elf_section_from_shdr.
+	(mips_elf32_section_processing): Merge into
+	_bfd_mips_elf_section_processing.
+	(mips_elf_final_link): Rename to _bfd_mips_elf_final_link.  Invoke
+	the right back-end ELF linker.
+	(mips_elf_relocate_section): Rename to
+	_bfd_mips_elf_relocate_section.  Clean up.  Adjust for 64-bit code.
+	(mips_elf_link_output_symbol_hook): Rename to
+	_bfd_mips_elf_link_output_symbol_hook.
+	(mips_elf_create_dynamic_section): Rename to
+	_bfd_mips_elf_create_dynamic_section.
+	(mips_elf_check_relocs): Rename to _bfd_mips_elf_check_relocs.
+	Adjust for 64-bit code.  Use mips_elf_got_section.
+	(mips_elf_adjust_dynamic_symbol): Rename to
+	_bfd_mips_elf_adjust_dynamic_symbol.  Use
+	mips_elf_allocate_dynamic_relocations.
+	(mips_elf_finish_dynamic_symbol): Rename to
+	_bfd_mips_elf_finish_dynamic_symbol.  Use mips_elf_got_section.
+	Adjust for 64-bit code.
+	(mips_elf_finish_dynamic_sections): Rename to
+	_bfd_mips_elf_finish_dynamic_sections.  Adjust for 64-bit code.
+	(mips_elf_always_size_sections): Rename to
+	_bfd_mips_elf_always_size_sections.
+	(mips_elf_add_symbol_hook): Rename to
+	_bfd_mips_elf_add_symbol_hook.
+	(mips_elf_next_lo16_addend): Constify.
+	(mips_elf_calculate_relocation): Likewise.
+	(mips_elf_obtain_contents): Likewise.
+	(mips_elf_perform_relocation): Likewise.
+	(mips_elf_create_dynamic_relocation): Likewise.
+	(mips_elf_allocate_dynamic_relocations): New function.
+	(MIPS_ELF_REL_DYN_SECTION_NAME): New macro.
+	(MIPS_ELF_REL_SIZE): Likewise.
+	(MIPS_ELF_DYN_SIZE): Likewise.
+	(MIPS_ELF_GOT_SIZE): Likewise.
+	(MIPS_ELF_SYM_SIZE): Likewise.
+	(MIPS_ELF_LOG_FILE_ALIGN): Likewise.
+	(MIPS_ELF_GET_WORD): Likewise.
+	(MIPS_ELF_PUT_WORD): Likewise.
+	(MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
+	(STUB_LW): Conditionalize for 64-bit value.
+	(elf_mips_howto_table): Add R_MIPS_HIGHER and R_MIPS_HIGHEST
+	entries.
+	(_bfd_mips_elf_merge_private_bfd_data): Merge e_ident[EI_CLASS].
+	Check it for inconsistency.
+	(_bfd_mips_elf_print_private_bfd_data): Print ABI=64 for 64-bit
+	ABI.
+	(_bfd_mips_elf_fake_sections): Remove duplicate handling of
+	.msym. 
+	(mips_elf_global_got_index): Use MIPS_ELF_GOT_SIZE.
+	(mips_elf_got_offset_from_index): Use misp_elf_got_section.
+	(mips_elf_create_local_got_entry): Use MIPS_ELF_GOT_SIZE.
+	(mips_elf_local_got_index): Likewise.
+	(mips_elf_got_page): Likewise.
+	(mips_elf_got_info): Likewise.
+	(mips_elf_create_dynamic_relocation): Handle 32-bit/64-bit split.
+	(ELF_DYNAMIC_INTERPRETER): Handle 64-bit code.
+	(mips_elf_create_dynamic_sections): Use MIPS_ELF_LOG_FILE_ALIGN,
+	instead of constant `2'.
+	(mips_elf_create_got_section): Tidy.  Use MIPS_ELF_GOT_SIZE.
+	(mips_elf_create_msym_section): Use MIPS_ELF_LOG_FILE_ALIGN.
+	(mips_elf_size_dynamic_sections): Use
+	MIPS_ELF_REL_DYN_SECTION_NAME, MIPS_ELF_GOT_SIZE,
+	MIPS_ELF_ADD_DYNAMIC_ENTRY.  Remove #if 0'd code.
+	Adjust all releveant entries in elf backend table.
+	* elf64-mips.c (mips_elf64_section_from_shdr): Remove.
+	(mips_elf64_section_processing): Likewise.
+	Adjust elf backend entries to use _bfd_mips_elf variants now
+	publicly available.
+	
+	* elflink.h (elf_link_create_dynamic_sections): Handle non-standard
+	hash-entry sizes.
+	(size_dynamic_sections): Likewise.
+	(elf_link_output_extsym): Likewise.
+	* elf.c: (elf_fake_sections): Likewise.
+	* libbfd.c (bfd_get): New macro.
+	(bfd_put): Likewise.
+	* bfd-in2.h: Regenerated.
+
+1999-07-07  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf-bfd.h (elf_size_info): Add hash_entry_size,
+	int_rels_per_ext_rel, swap_dyn_out, swap_reloc_in, swap_reloc_out,
+	wap_reloca_in, and swap_reloca_out. 
+	* elflink.h (elf_link_read_relocs_from_section): Adjust to handle
+	multiple internal relocations per external relocation.
+	(link_read_relocs): Likewise.
+	(elf_bfd_final_link): Likewise.
+	(elf_link_input_bfd): Likewise.
+	(elf_gc_mark): Likewise.
+	(elf_gc_smash_unused_vtentry_relocs): Likewise.
+	* elfcode.h (elf_swap_dyn_out): Adjust type to match
+	elf_swap_dyn_in.
+	(size_info): Add entries for new fields.
+	* elf64-mips.c (mips_elf64_swap_reloc_out): Enable.
+	(mips_elf64_be_swap_reloc_in): New function.
+	(mips_elf64_be_swap_reloc_out): Likewise.
+	(mips_elf64_be_swap_reloca_in): Likewise.
+	(mips_elf64_be_swap_reloca_out): Likewise.
+	(mips_elf64_size_info): Add entries for new fields.
+	
+1999-07-07  Ian Lance Taylor  <ian@zembu.com>
+
+	* elflink.h (elf_bfd_final_link): Assert that section reloc_count
+	field equals the new rel_count field.
+	(elf_link_input_bfd): When doing a relocateable link, use the new
+	rel_count field rather than the reloc_count field.
+	(elf_reloc_link_order): Likewise.
+	(elf_finish_pointer_linker_section): Likewise.
+
+	Based on patch from H.J. Lu <hjl@gnu.org>:
+	* elflink.h (elf_merge_symbol): Permit a non-weak definition in a
+	shared library to override a weak definition in a regular object.
+
+Tue Jul  6 10:23:39 1999  Jeffrey A Law  (law@cygnus.com)
+
+        * libhppa.h: Revert July 2, 1999 patch.
+
+	* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
+	need to generate DLTIND relocations, not DLTREL relocations.
+
+1999-07-05  Nick Clifton  <nickc@cygnus.com>
+
+	* coffcode.h (coff_set_arch_mach_hook): Recognise arm 5
+	architectures. 
+	(coff_set_flags): Recognise arm 5 architectures.
+
+	* cpu-arm.c: Add support for strongarm and arm9 cpus.
+	Add support for armv5 architecture.
+
+	* archures.c: Add bfd_mach_arm_5 and bfd_mach_arm_5T.
+	
+	* reloc.c: Add new, assembler only, ARM reloc:
+	BFD_RELOC_ARM_ADRL_IMMEDIATE.
+	
+	* bfd-in2.h: Regenerate.
+
+1999-07-02  Mark Mitchell  <mark@codesourcery.com>
+
+	* dwarf2.c (parse_comp_unit): Add ABBREV_LENGTH parameter.
+	(_bfd_dwarf2_find_nearest_line): Add ADDR_SIZE parameter.
+	* elf.c (_bfd_elf_find_nearest_line): Pass it.
+	* elf32-arm.h (elf32_arm_find_nearest_line): Likewise.
+	* elf32-mips.c (ABI_64_P): New macro.
+	(IRIX_COMPAT): We are IRIX6-compatible if ABI_64_P.
+	(_bfd_mips_elf_find_nearest_line): Adjust call to
+	_bfd_dwarf2_find_nearest_line.
+	* libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
+	* libbfd.h: Regenerated.
+
+1999-07-02  Ian Lance Taylor  <ian@zembu.com>
+
+	* config.bfd: Add * at the end of i[3456]86-*-unixware.
+
+Fri Jul  2 12:21:10 1999  Jeffrey A Law  (law@cygnus.com)
+
+	* libhppa.h (HPPA_R_ARG_RELOC): Delete.
+	(HPPA_R_CONSTANT, HPPA_R_ADDEND): Likewise.
+
+1999-07-01  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf-bfd.h (bfd_elf_section_data): Add rel_count and rel_count2
+	fields.
+	(_bfd_elf_init_reloc_shdr): New function.
+	* elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
+	bfd_alloc followed by memset.
+	(_bfd_elf_init_reloc_shdr): New function, split out from ...
+	(elf_fake_sections): Here.
+	(assign_section_numbers): Assign section numbers for the second
+	relocation section, if required.
+	* elflink.h (elf_link_output_relocs): New function.
+	(elf_link_size_reloc_section): Likewise.
+	(elf_bfd_final_link): Use elf_link_size_reloc_section.
+	(elf_link_input_bfd): Use elf_link_output_relocs.
+	
+	* elf32-mips.c (_bfd_mips_elf_fake_sections): Use
+	_bfd_elf_init_reloc_shdr to initialize rel_hdr2.
+
+Thu Jul  1 13:58:48 1999  Jeffrey A Law  (law@cygnus.com)
+
+	* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
+	with 22bit format.
+
+1999-06-28  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf32-mips.c (mips_elf_got_info): Move declaration before
+	prototypes.  Change global_gotsym to be a pointer to a hash entry,
+	rather than a number index.
+	(mips_elf_link_hash_entry): Move declaration before prototypes.
+	(mips_elf_irix6_finish_dynamic_symbol): New function.
+	(mips_elf_sign_extend): Likewise.
+	(mips_elf_high): Likewise.
+	(mips_elf_higher): Likewise.
+	(mips_elf_highest): Likewise.
+	(mips_elf_global_got_index): Likewise.
+	(mips_elf_local_got_index): Likewise.
+	(mips_elf_got_offset_from_index): Likeiwse.
+	(mips_elf_record_global_got_symbol): Likewise.
+	(mips_elf_got_page): Likewise.
+	(mips_elf_next_lo16_addend): Likewise.
+	(mips_elf_calculate_relocation): Likewise.
+	(mips_elf_obtain_contents): Likewise.
+	(mips_elf_perform_relocation): Likewise.
+	(mips_elf_assign_gp): Likewise.
+	(mips_elf_sort_hash_table_f): Likewise.
+	(mips_elf_sort_hash_table): Likewise.
+	(mips_elf_got_section): Likewise.
+	(mips_elf_got_info): Likewise.
+	(mips_elf_create_local_got_entry): Likewise.
+	(mips_elf_got16_entry): Likewise.
+	(mips_elf_create_dynamic_relocation): Likewise.
+	(elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
+	(mips_elf_final_gp): Use mips_elf_assign_gp.
+	(_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
+	into SHN_SCOMMON automatically on IRIX6.
+	(mips_elf_add_symbol_hook): Likewise.
+	(mips_elf_relocate_section): Rewrite, using
+	mips_elf_calculate_relocation and mips_elf_perform_relocation.
+	(mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
+	Don't deal with .rld_map on IRIX6.
+	(mips_elf_create_got_section): Adjust use of global_gotsym.  Set
+	section flags appropriately for .got.
+	(mips_elf_check_relocs): Handle IRIX6 relocations making use of
+	the got.  Call mips_elf_record_global_got_symbol and allocate
+	local got space appropriately.
+	(mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
+	char *.  Rework calculation of GOT size.  Sort dynamic symbol
+	table entries so entries that do not require GOT entries appear at
+	the beginning.  Don't use DT_MIPS_HIPAGENO on IRIX6.  Remove dead
+	code dealing with DT_INIT and DT_FINI.  Remove fiddling with
+	global_gotsym.
+	(mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
+	entries.
+	(mips_elf_finish_dynamic_symbol): Use
+	mips_elf_irix6_finish_dynamic_symbol.
+	(mips_elf_finish_dynamic_sections): Correct off-by-one error
+	setting DT_MIPS_UNREFEXTNO.  Adjust setting of DT_MIPS_GOTSYM for
+	change to global_gotsym.  Set DT_MIPS_OPTIONS on IRIX6.
+		
+1999-06-30  Ian Lance Taylor  <ian@zembu.com>
+
+	* elf32-mips.c (mips_elf_final_link): Don't set CPIC when doing a
+	relocateable link.  From Ralf Baechle <ralf@uni-koblenz.de>.
+
+1999-06-04  Philip Blundell  <philb@gnu.org>
+
+	* elf32-arm.h (elf_backend_got_header_size): Define.
+	(elf_backend_plt_header_size): Likewise.
+
+1999-06-28  Jim Pick  <jim@jimpick.com>
+
+	* elf32-arm.h (elf32_arm_relocate_section): Mind no_undefined
+
+Tue Jun 29 02:25:03 1999  Jeffrey A Law  (law@cygnus.com)
+
+	* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
+	relocation function.
+	* elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
+
+1999-06-27  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf32-mips.c (MIPS_ELF_SRDATA_SECTION_NAME): New macro.
+	(MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
+	(MIPS_ELF_STUB_SECTION_NAME): Likewise.
+	(_bfd_mips_elf_section_from_shdr): Use them.
+	(_bfd_mips_elf_fake_sections): Likewise.  Add .srdata to the list
+	of GP-relative sections.
+	(_bfd_mips_elf_set_section_contents): Use them.
+	(_bfd_mips_elf_section_processing): Share code between .sdata and
+	.lit4/.lit8 sections.  Set appropriate flags for .srdata.
+	(mips_elf_additional_program_headers): Add handling for
+	PT_MIPS_OPTIONS segment on IRIX6.
+	(mips_elf_modify_segment_map): Likeiwse.
+	(mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
+	Include the options sections on IRIX6.  Don't look for GP-relative
+	sections by name; use SHF_MIPS_GPREL instead.
+	(ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
+	the N32 ABI.
+	(mips_elf_create_dynamic_sections): Don't muck about with section
+	alignments and such on IRIX6.
+	(mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
+	(mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
+	fact that ELF_DYNAMIC_INTERPRETER is no longer a constant.  Use
+	bfd_zalloc rather than bfd_alloc and memset.
+	(mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
+	Don't assert the existence of .rld_map on IRIX6.
+	(mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
+		
+	* elf32-mips.c (mips_elf_adjust_dynindx): Remove.
+	(mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
+	instead.
+
+1999-06-26  Mark Mitchell  <mark@codesourcery.com>
+
+	* elf32-mips.c (mips_elf_swap_msym_in): New function.
+	(mips_elf_swap_msym_out): New function.
+	(mips_elf_create_msym_section): Likewise.
+	(MIPS_ELF_MSYM_SECTION_NAME): New macro.
+	(_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
+	(_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
+	section not named .msym.
+	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
+	.msym directly.  Set appropriate attributes for the .msym
+	section.
+	(mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
+	(mips_elf_link_hash_newfunc): Clear it.
+	(mips_elf_create_dynamic_sections): Create the .msym section
+	on IRIX6.
+	(mips_elf_size_dynamic_sections):  Allocate space for the
+	.msym section.  Add a DT_MIPS_MSYM entry.
+	(mips_elf_finish_dynamic_symbol): Write out a .msym entry for
+	the symbol.
+	(mips_elf_finish_dynamic_sections): Assign a value for
+	DT_MIPS_MSYM.  Add .msym entries for the section symbols as well.
+
+	* elf32-mips.c (irix_compat_t): New enumeration.
+	(ABI_N32_P): New macro.
+	(IRIX_COMPAT): Likewise.
+	(SGI_COMPAT): Implement in terms of IRIX_COMPAT.
+	(mips_elf_relocate_section): Fix typo.
+	
+1999-06-26  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
+	as writable PE sections.
+
 1999-06-26  David Mosberger  <davidm@hpl.hp.com>
 
 	* dwarf2.c (struct arange): New type.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]