2
0
mirror of https://frontier.innolan.net/github/amigaos-binutils.git synced 2025-11-21 06:23:14 +00:00
Commit Graph

157 Commits

Author SHA1 Message Date
f7a41d0cc6 (MY_bfd_link_add_symbols): Don't define in terms of MY. 2008-12-24 10:22:55 +00:00
5391bb7612 (howto_table[H_PC26]): Lower two bits in mask values are not set. 2008-12-23 16:58:37 +00:00
f571c97eaa (determine_size): Remove macro.
(amiga_write_section_contents): Directly use reloc type as switch value.
2008-12-23 16:54:30 +00:00
046f38d206 (amiga_handle_cdb_hunk): Only use non-empty HUNK_NAME content. 2008-12-23 16:53:36 +00:00
a4ccb0ea31 (amiga_handle_rest): Factor out common code. Rearrange switch. 2008-12-23 16:52:27 +00:00
c769148c66 (generic_link_check_archive_element): Use flavour from info->hash->creator
to really catch an amiga link when computing maximal symbol alignment.
(_bfd_generic_link_add_one_symbol): Likewise. Add the same kludge to case
'BIG' as used for case 'COM'.
2008-12-23 16:51:39 +00:00
cfc38a6ae0 * bfd/libamiga.h (comments): Improve comments.
* bfd/linker.c (generic_link_check_archive_element): Likewise.
(_bfd_generic_link_add_one_symbol): Likewise.
2008-12-23 16:50:39 +00:00
aeb7e01420 (fixup_segment): Move baserel adjustment for non-BFD _before_ md_apply_fix3.
Do not modify add_number for relocations against undefined symbols.
2008-12-23 16:49:46 +00:00
cd50ea2f0a (MY_bfd_link_add_symbols): Define to override generic a.out function.
(link_add_symbols): New wrapper function to handle symbols the same way
as the amiga backend by using a generic linker function when doing a
final link. This makes --wrap option of ld work.
2008-12-23 16:48:47 +00:00
31f7d6e4ba * bfd/aoutx.h (swap_std_reloc_out): Use bfd_asymbol_flavour.
* ld/emultempl/amiga.em (amiga_assign_attribute): Use bfd_get_flavour.
* ld/ldctor.c (ldctor_build_sets): Likewise.
2008-12-23 16:23:14 +00:00
895c223cb3 (my_add_to): Replace boolean argument with a flags mask. Read addends as
requested in that mask either signed or unsigned.
(amiga_perform_reloc): Test final relocation always signed. Request reading
the addend of baserel relocations as unsigned value. Note that this is not
always correct but should only be done for symbols that came from the same
unit as the relocation.
(aout_perform_reloc): Likewise.
2008-12-23 16:09:09 +00:00
cdc68c3310 (my_add_to): Replace offset and size arguments with an arelent argument.
Change p from "signed char" to "bfd_byte" to avoid warnings. Always read
addends as a signed value (this is not always correct and will be fixed
with a later change).
(amiga_perform_reloc): Adapt arguments to new world order.
(aout_perform_reloc): Likewise.
2008-12-23 16:04:08 +00:00
5de376a191 (amiga_perform_reloc): Use size from r->howto.
(aout_perform_reloc): Likewise.
2008-12-23 16:02:43 +00:00
f741547ded (my_set_to): Remove dead function.
(aout_perform_reloc): Do not adjust relocation with r->address, but use the
value the assembler left at *r->address. This fixes the relocation values
for mc68020+ instructions with an extension word and obsoletes the kludge
for 8bit pcrel relocations.
2008-12-23 16:01:55 +00:00
73d923df29 (amiga_perform_reloc): Use a single debug statement to print reloc type.
Reduce differences to aout_perform_reloc (more verbose return debug).
(aout_perform_reloc): Use a single debug statement to print reloc type.
Reduce differences to amiga_perform_reloc (enhanced/added comments).
2008-12-23 15:58:48 +00:00
98df952a7e (amiga_perform_reloc): Use reloc size from arelent.
(aout_perform_reloc): Likewise.
2008-12-23 15:57:42 +00:00
7e9eeafb9b * libamiga.h (amiga_reloc_type): Remove target_hunk.
* amigaos.c (amiga_add_reloc): Do not cache target_hunk.
(amiga_get_reloc_upper_bound): Remove format check since this is already
done in bfd_get_reloc_upper_bound before going into the bfd.
2008-12-07 18:54:51 +00:00
1a66b4b1bf * libamiga.h (amiga_reloc_type): Switch from amiga_symbol to generic asymbol.
* amigaos.c (amiga_add_reloc): Use bfd_alloc. Reorder reloc initialization
slightly. Remove symbol casts.
2008-12-07 18:53:39 +00:00
c726353e0d * libamiga.h (amiga_symbol_type): Remove hunk_number.
* amigaos.c (amiga_get_section_by_hunk_number): Remove test for negative
hunk_numbers.
(amiga_slurp_symbol_table): Do not cache hunk_number.
2008-12-07 18:51:57 +00:00
5efbce0a00 * libamiga.h (amiga_symbol_type): Add new member.
* amigaos.c (amiga_slurp_symbol_table): Remember reference count for
HUNK_EXT entries when applicable.
(amiga_print_symbol): Replace a.out style information with more relevant
amiga specific data.
2008-12-07 18:50:15 +00:00
f9d73f7bf9 (amiga_slurp_symbol_table): Use bfd_zalloc to allocate symbol space.
(amiga_get_symtab): Terminate symbol list with NULL.
2008-12-07 18:49:02 +00:00
2f857ac23a (amiga_write_object_contents): Use bfd_get_symcount.
(amiga_write_symbols): Likewise.
(amiga_slurp_symbol_table): Likewise.
(amiga_get_symtab_upper_bound): Likewise.
(amiga_get_symtab): Likewise.
2008-12-07 18:47:58 +00:00
598ece60e9 (aout_amiga_final_link): Declare.
(get_relocated_section_contents): Use bfd_get_flavour.
(amiga_perform_reloc): Likewise.
(amiga_final_link): Likewise.
2008-12-07 18:46:58 +00:00
6e32e92ebf (get_relocated_section_contents): Merge changes of generic function between
2.9.1 and 2.14.
(amiga_final_link): Likewise.
(amiga_reloc_link_order): Likewise.
2008-12-07 18:45:56 +00:00
18829e7a7a * (md_apply_fix3): Remove broken OBJ_AMIGAHUNK specific code.
* (md_pcrel_from): Only use adjust when generating a hunk object.

This reverts r184. Afterall the old code was correct...
2008-12-07 18:44:12 +00:00
96fb56c052 (amiga_ardata_type): Add new member.
(amiga_read_ar_hdr): Strip path part from read hunk name. If object file does
not have a valid hunk name, fake an unique object name to match expectations
of eg. the GCC build machinery about extracted object names from a link lib.
2008-11-25 20:53:47 +00:00
13c70d6ec5 (amiga_ardata): Cast through void to appease GCC4.
(amiga_add_reloc): Likewise.
2008-11-25 20:50:40 +00:00
048908e339 (amiga_archive_p): Enhance link library detection by checking the filename. 2008-11-25 20:49:37 +00:00
acade3748e (MAX_NAME_SIZE): Change its value to zero which enables unlimited length of
symbol names in write_name.
(write_name): Fix 64bit bug. The old code used a structure with an embedded
long and assumed its size as 4 bytes. The new code writes all data with
single writes. Now the AmigaOS backend should really be 64bit clean.
The length of a symbol name is no longer restricted to MAX_NAME_SIZE
characters. The old behaviour can be re-enabled by setting it to a non-zero
value which will then be used as length limit.
2008-11-25 20:48:34 +00:00
47416d6915 (write_name): Make a parameter unsigned to get rid of a GCC warning.
(amiga_write_section_contents): Likewise.
2008-11-25 20:46:57 +00:00
24c5353b1a (aout_perform_reloc): Resolve undefined weak symbols against the absolute
section.
2008-11-25 20:45:59 +00:00
36ab9c5495 (amiga_write_symbols): Implement a long requested FIXME: only write a single
HUNK_EXT entry for all references to a specific symbol to reduce the size of
the created object.
2008-11-25 20:44:32 +00:00
94f06162bc (amiga_write_object_contents): Remove unnecessary cast. Use better size
calculation when writing padding.
(amiga_write_symbols): Simplify type expression. Tweak formatting.
2008-11-25 20:41:46 +00:00
ed264daf4f (determine_datadata_relocs): Fix comment.
(amiga_write_section_contents): Likewise.
(amiga_write_symbols): Likewise.
2008-11-25 20:40:30 +00:00
22ac4a8137 * amigaos.c (bfd_is_bfd_section): New macro.
(determine_datadata_relocs): Use section_ptr macros.
(amiga_write_object_contents): Likewise.
(amiga_write_symbols): Likewise.
(amiga_get_symbol_info): Likewise.
* amigaoslink.c (amiga_perform_reloc): Use section_ptr macros.
(aout_perform_reloc): Likewise.
2008-11-25 20:39:10 +00:00
cb64fb89dd (amiga_perform_reloc): Always use cached value of sym->section.
(aout_perform_reloc): Likewise.
2008-11-25 20:37:30 +00:00
bc70a333d4 (amiga_handle_rest): Tolerate a missing HUNK_END. Apparently the AmigaDOS
loader accepts such files which are created by broken crunchers.
2008-11-25 20:36:29 +00:00
39fd9226dd (amiga_write_archive_contents): Fix extracting of link library members.
(amiga_archive_p): Do not preset a BFD error condition because it might be
clobbered by later code. Order initialization of amiga_ardata.
(amiga_generic_stat_arch_elt): Use more sane 0644 as st_mode. Use the more
correct 1.1.1978 as st_mtime. Set st_size using arelt_size.
2008-11-25 20:35:22 +00:00
9a683d1b51 (amiga_write_object_contents): Use symbolic constants for hunk memory type. 2008-11-25 20:34:08 +00:00
5199e4dead (amiga_object_p,amiga_read_unit,amiga_write_object_contents): Tweak comment.
(amiga_write_object_contents): Tweak debug message and fix formatting.
(amiga_openr_next_archived_file): Fix formatting.
2008-11-25 20:33:17 +00:00
9483f19ebf * (md_estimate_size_before_relax): Disable small-code checks. 2008-11-20 17:10:34 +00:00
2d9409254e * (md_pcrel_from): Remove broken OBJ_AMIGAHUNK specific code.
* (md_apply_fix3): Do not emit fix value for a pcrel fix when generating
a hunk object.
2008-11-20 17:07:25 +00:00
d05ef800d5 * (md_relax_table): Fix formatting of AmigaOS additions.
* (m68k_ip): Likewise.
* (md_convert_frag_1): Likewise.
2008-11-20 16:54:18 +00:00
4909643937 (md_estimate_size_before_relax): Use relaxable_symbol on fragP->fr_symbol for
TAB (ABSREL, SZ_UNDEF). Remove obsolete fr_var adjustments.
2008-11-20 16:47:02 +00:00
37ef303c75 * binutils/gcc: changed the versioning of our binutils/GCC modifications to
show a "adtools build YYYYMMDD" like string instead of the old one.
2008-06-28 11:52:47 +00:00
9e48f9ca32 * binutils: minor changes to make binutiles compile for a ppc-amigaos
hosted environment.
* gcc/gcc/config/rs6000/amigaos.c: fixed some compiler warnings
2008-02-24 13:48:21 +00:00
a36c7f2ce5 * binutils/bfd/configure.in: updated the version string according to
latest changes done by Hans-Joerg.
2007-05-20 13:20:06 +00:00
decc95fcc7 Added support for generating dynamic shared object to the AmigaOS target. Most notable
changes:

- In ppc_elf_additional_program_headers, modified ret=0 to ret=1 to add an additional
  section header for dynamic linking, since we need an additional PT_LOAD for the
  separate .text section.
- In ppc_elf_create_got, removed the SEC_CODE flag from the .got section to prevent it
  from being moved into the executable section. We do not use -fpic and hence have no
  need for the blrl in the .got section.
- In ppc_elf_finish_dynamic_symbol, removed the code that makes _DYNAMIC,
  _GLOBAL_OFFSET_TABLE_ and _PROCEDURE_LINKAGE_TABLE_ absolute, since we need them
  to be relocatable.
2007-04-10 13:19:20 +00:00
740dcbc0cd - Added GENERATE_SHLIB_SCRIPT=yes to enable building of shared libraries.
- Added SHLIB_TEXT_START_ADDR=1024, although it is probably not required or even used
2007-04-10 13:14:35 +00:00
5954d73061 - resync with HEAD of CVS repo 2006-03-16 10:00:58 +00:00