diff options
author | Mark Shinwell <shinwell@codesourcery.com> | 2006-11-29 16:31:10 +0000 |
---|---|---|
committer | Mark Shinwell <shinwell@codesourcery.com> | 2006-11-29 16:31:10 +0000 |
commit | 714c4e6c8d7267fa09811481f6578efd30e6fdec (patch) | |
tree | d5d79ecd1f0f5bdafd223d032b8101b8282cd12d | |
parent | 051a1a84ea518009213144016624902581095e9b (diff) | |
download | binutils-gdb-714c4e6c8d7267fa09811481f6578efd30e6fdec.tar.gz |
Backport from mainline:
2006-07-29 Richard Sandiford <richard@codesourcery.com>
ld/
* Makefile.am (eelf32b4300.c): Update dependencies.
(eelf32bmip.c): Likewise.
(eelf32bsmip.c): Likewise.
(eelf32btsmip.c): Likewise.
(eelf32btsmipn32.c): Likewise.
(eelf32ltsmip.c): Likewise.
(eelf32ltsmipn32.c): Likewise.
(eelf32ebmip.c): Likewise.
(eelf32ebmipvxworks.c): Likewise.
(eelf32elmip.c): Likewise.
(eelf32elmipvxworks.c): Likewise.
(eelf32bmipn32.c): Likewise.
(eelf32lmip.c): Likewise.
(eelf32mipswindiss.c): Likewise.
(eelf32lsmip.c): Likewise.
(eelf64bmip.c): Likewise.
(eelf64btsmip.c): Likewise.
(eelf64ltsmip.c): Likewise.
(emipsbig.c): Likewise. Canonicalize ${GENSCRIPTS} line.
(emipsbsd.c): Likewise.
(emipsidt.c): Update dependencies.
(emipsidtl.c): Likewise.
(emipslit.c): Likewise.
(emipslnews.c): Likewise.
(emipspe.c): Likewise. Fix ${GENSCRIPTS} invocation.
* Makefile.in: Regenerate.
* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define.
* emulparams/elf32bmipn32-defs.sh (EXTRA_EM_FILE): Likewise.
* emultempl/irix.em: Include emultempl/mipself.em.
* emultempl/mipself.em: New file.
ld/testsuite/
* ld-mips-elf/hash1.s, ld-mips-elf/hash1a.d,
* ld-mips-elf/hash1b.d, ld-mips-elf/hash1c.d: New tests.
* ld-mips-elf/mips-elf.exp: Run them.
2006-07-14 Jakub Jelinek <jakub@redhat.com>
* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Fix cinfo.shift2 value.
2006-07-10 Jakub Jelinek <jakub@redhat.com>
include/
* bfdlink.h (struct bfd_link_info): Add emit_hash and
emit_gnu_hash bitfields.
include/elf/
* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.
ld/
* scripttempl/elf.sc: Add .gnu.hash section.
* emultempl/elf32.em (OPTION_HASH_STYLE): Define.
(gld${EMULATION_NAME}_add_options): Register --hash-style option.
(gld${EMULATION_NAME}_handle_option): Handle it.
(gld${EMULATION_NAME}_list_options): Document it.
* ldmain.c (main): Initialize emit_hash and emit_gnu_hash.
* ld.texinfo: Document --hash-style option.
ld/testsuite/
* ld-powerpc/tlsso32.r: Adjust.
* ld-powerpc/tlsso32.d: Adjust.
* ld-powerpc/tlsso32.g: Adjust.
* ld-powerpc/tlsso.r: Adjust.
* ld-powerpc/tlsso.g: Adjust.
* ld-powerpc/tlstocso.g: Adjust.
bfd/
* elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH.
(bfd_section_from_shdr, elf_fake_sections, assign_section_numbers):
Handle SHT_GNU_HASH.
(special_sections_g): Include .gnu.hash section.
(bfd_elf_gnu_hash): New function.
* elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes.
(struct elf_backend_data): Add elf_hash_symbol method.
* elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash
only if info->emit_hash, create .gnu.hash section if
info->emit_gnu_hash.
(struct collect_gnu_hash_codes): New type.
(elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms,
_bfd_elf_hash_symbol): New functions.
(compute_bucket_count): Don't compute HASHCODES array, instead add
that and NSYMS as arguments. Use bed->s->sizeof_hash_entry
instead of bed->s->arch_size / 8. Fix .hash size estimation.
When not optimizing, use the number of hashed symbols rather than
dynsymcount.
(bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash,
and ADD DT_GNU_HASH if info->emit_gnu_hash.
(bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash,
adjust compute_bucket_count caller. Create and populate .gnu.hash
section if info->emit_gnu_hash.
(elf_link_output_extsym): Only populate .hash section if
finfo->hash_sec != NULL.
(bfd_elf_final_link): Adjust assertion. Handle DT_GNU_HASH.
* elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined.
(elfNN_bed): Add elf_backend_hash_symbol.
* elf64-x86-64.c (elf64_x86_64_hash_symbol): New function.
(elf_backend_hash_symbol): Define.
* elf32-i386.c (elf_i386_hash_symbol): New function.
(elf_backend_hash_symbol): Define.
binutils/
* readelf.c (get_dynamic_type): Handle DT_GNU_HASH.
(get_section_type_name): Handle SHT_GNU_HASH.
(dynamic_info_DT_GNU_HASH): New variable.
(process_dynamic_section): Handle DT_GNU_HASH.
(process_symbol_table): Print also DT_GNU_HASH histogram.
-rw-r--r-- | ChangeLog.csl | 114 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 7 | ||||
-rw-r--r-- | bfd/elf.c | 23 | ||||
-rw-r--r-- | bfd/elf32-i386.c | 13 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 15 | ||||
-rw-r--r-- | bfd/elflink.c | 466 | ||||
-rw-r--r-- | bfd/elfxx-target.h | 5 | ||||
-rw-r--r-- | binutils/readelf.c | 175 | ||||
-rw-r--r-- | include/bfdlink.h | 6 | ||||
-rw-r--r-- | include/elf/common.h | 2 | ||||
-rw-r--r-- | ld/Makefile.am | 525 | ||||
-rw-r--r-- | ld/Makefile.in | 525 | ||||
-rw-r--r-- | ld/emulparams/elf32bmip.sh | 1 | ||||
-rw-r--r-- | ld/emulparams/elf32bmipn32-defs.sh | 1 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 19 | ||||
-rw-r--r-- | ld/emultempl/irix.em | 1 | ||||
-rw-r--r-- | ld/ld.texinfo | 8 | ||||
-rw-r--r-- | ld/ldmain.c | 2 | ||||
-rw-r--r-- | ld/scripttempl/elf.sc | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-mips-elf/mips-elf.exp | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsso.g | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsso.r | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsso32.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsso32.g | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlsso32.r | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/tlstocso.g | 2 |
26 files changed, 1343 insertions, 590 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index d70041ef41f..fa77f3656ce 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,117 @@ +2006-11-29 Mark Shinwell <shinwell@codesourcery.com> + + Backport from mainline: + + 2006-07-29 Richard Sandiford <richard@codesourcery.com> + + ld/ + * Makefile.am (eelf32b4300.c): Update dependencies. + (eelf32bmip.c): Likewise. + (eelf32bsmip.c): Likewise. + (eelf32btsmip.c): Likewise. + (eelf32btsmipn32.c): Likewise. + (eelf32ltsmip.c): Likewise. + (eelf32ltsmipn32.c): Likewise. + (eelf32ebmip.c): Likewise. + (eelf32ebmipvxworks.c): Likewise. + (eelf32elmip.c): Likewise. + (eelf32elmipvxworks.c): Likewise. + (eelf32bmipn32.c): Likewise. + (eelf32lmip.c): Likewise. + (eelf32mipswindiss.c): Likewise. + (eelf32lsmip.c): Likewise. + (eelf64bmip.c): Likewise. + (eelf64btsmip.c): Likewise. + (eelf64ltsmip.c): Likewise. + (emipsbig.c): Likewise. Canonicalize ${GENSCRIPTS} line. + (emipsbsd.c): Likewise. + (emipsidt.c): Update dependencies. + (emipsidtl.c): Likewise. + (emipslit.c): Likewise. + (emipslnews.c): Likewise. + (emipspe.c): Likewise. Fix ${GENSCRIPTS} invocation. + * Makefile.in: Regenerate. + * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define. + * emulparams/elf32bmipn32-defs.sh (EXTRA_EM_FILE): Likewise. + * emultempl/irix.em: Include emultempl/mipself.em. + * emultempl/mipself.em: New file. + + ld/testsuite/ + * ld-mips-elf/hash1.s, ld-mips-elf/hash1a.d, + * ld-mips-elf/hash1b.d, ld-mips-elf/hash1c.d: New tests. + * ld-mips-elf/mips-elf.exp: Run them. + + 2006-07-14 Jakub Jelinek <jakub@redhat.com> + + * elflink.c (bfd_elf_size_dynsym_hash_dynstr): Fix cinfo.shift2 value. + + 2006-07-10 Jakub Jelinek <jakub@redhat.com> + + include/ + * bfdlink.h (struct bfd_link_info): Add emit_hash and + emit_gnu_hash bitfields. + + include/elf/ + * common.h (SHT_GNU_HASH, DT_GNU_HASH): Define. + + ld/ + * scripttempl/elf.sc: Add .gnu.hash section. + * emultempl/elf32.em (OPTION_HASH_STYLE): Define. + (gld${EMULATION_NAME}_add_options): Register --hash-style option. + (gld${EMULATION_NAME}_handle_option): Handle it. + (gld${EMULATION_NAME}_list_options): Document it. + * ldmain.c (main): Initialize emit_hash and emit_gnu_hash. + * ld.texinfo: Document --hash-style option. + + ld/testsuite/ + * ld-powerpc/tlsso32.r: Adjust. + * ld-powerpc/tlsso32.d: Adjust. + * ld-powerpc/tlsso32.g: Adjust. + * ld-powerpc/tlsso.r: Adjust. + * ld-powerpc/tlsso.g: Adjust. + * ld-powerpc/tlstocso.g: Adjust. + + bfd/ + * elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH. + (bfd_section_from_shdr, elf_fake_sections, assign_section_numbers): + Handle SHT_GNU_HASH. + (special_sections_g): Include .gnu.hash section. + (bfd_elf_gnu_hash): New function. + * elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes. + (struct elf_backend_data): Add elf_hash_symbol method. + * elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash + only if info->emit_hash, create .gnu.hash section if + info->emit_gnu_hash. + (struct collect_gnu_hash_codes): New type. + (elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms, + _bfd_elf_hash_symbol): New functions. + (compute_bucket_count): Don't compute HASHCODES array, instead add + that and NSYMS as arguments. Use bed->s->sizeof_hash_entry + instead of bed->s->arch_size / 8. Fix .hash size estimation. + When not optimizing, use the number of hashed symbols rather than + dynsymcount. + (bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash, + and ADD DT_GNU_HASH if info->emit_gnu_hash. + (bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash, + adjust compute_bucket_count caller. Create and populate .gnu.hash + section if info->emit_gnu_hash. + (elf_link_output_extsym): Only populate .hash section if + finfo->hash_sec != NULL. + (bfd_elf_final_link): Adjust assertion. Handle DT_GNU_HASH. + * elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined. + (elfNN_bed): Add elf_backend_hash_symbol. + * elf64-x86-64.c (elf64_x86_64_hash_symbol): New function. + (elf_backend_hash_symbol): Define. + * elf32-i386.c (elf_i386_hash_symbol): New function. + (elf_backend_hash_symbol): Define. + + binutils/ + * readelf.c (get_dynamic_type): Handle DT_GNU_HASH. + (get_section_type_name): Handle SHT_GNU_HASH. + (dynamic_info_DT_GNU_HASH): New variable. + (process_dynamic_section): Handle DT_GNU_HASH. + (process_symbol_table): Print also DT_GNU_HASH histogram. + 2006-11-29 Kazu Hirata <kazu@codesourcery.com> bfd/ diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 3a32fc447d0..b635d6e6564 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1030,6 +1030,9 @@ struct elf_backend_data bfd_boolean *, bfd_boolean *, bfd *, asection **); + /* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */ + bfd_boolean (*elf_hash_symbol) (struct elf_link_hash_entry *); + /* Used to handle bad SHF_LINK_ORDER input. */ bfd_error_handler_type link_order_error_handler; @@ -1470,6 +1473,8 @@ extern bfd_vma _bfd_elf_section_offset extern unsigned long bfd_elf_hash (const char *); +extern unsigned long bfd_elf_gnu_hash + (const char *); extern bfd_reloc_status_type bfd_elf_generic_reloc (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); @@ -1640,6 +1645,8 @@ extern bfd_boolean _bfd_elf_merge_symbol struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *, bfd_boolean *, bfd_boolean *); +extern bfd_boolean _bfd_elf_hash_symbol (struct elf_link_hash_entry *); + extern bfd_boolean _bfd_elf_add_default_symbol (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, const char *, Elf_Internal_Sym *, asection **, bfd_vma *, diff --git a/bfd/elf.c b/bfd/elf.c index 9454f5b0cbc..02d86a921ac 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -206,6 +206,21 @@ bfd_elf_hash (const char *namearg) return h & 0xffffffff; } +/* DT_GNU_HASH hash function. Do not change this function; you will + cause invalid hash tables to be generated. */ + +unsigned long +bfd_elf_gnu_hash (const char *namearg) +{ + const unsigned char *name = (const unsigned char *) namearg; + unsigned long h = 5381; + unsigned char ch; + + while ((ch = *name++) != '\0') + h = (h << 5) + h + ch; + return h & 0xffffffff; +} + bfd_boolean bfd_elf_mkobject (bfd *abfd) { @@ -1239,6 +1254,7 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg) case DT_AUXILIARY: name = "AUXILIARY"; stringp = TRUE; break; case DT_USED: name = "USED"; break; case DT_FILTER: name = "FILTER"; stringp = TRUE; break; + case DT_GNU_HASH: name = "GNU_HASH"; break; } fprintf (f, " %-11s ", name); @@ -1822,6 +1838,7 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) case SHT_FINI_ARRAY: /* .fini_array section. */ case SHT_PREINIT_ARRAY: /* .preinit_array section. */ case SHT_GNU_LIBLIST: /* .gnu.liblist section. */ + case SHT_GNU_HASH: /* .gnu.hash section. */ return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); case SHT_DYNAMIC: /* Dynamic linking information. */ @@ -2261,6 +2278,7 @@ static const struct bfd_elf_special_section special_sections_g[] = { ".gnu.version_r", 14, 0, SHT_GNU_verneed, 0 }, { ".gnu.liblist", 12, 0, SHT_GNU_LIBLIST, SHF_ALLOC }, { ".gnu.conflict", 13, 0, SHT_RELA, SHF_ALLOC }, + { ".gnu.hash", 9, 0, SHT_GNU_HASH, SHF_ALLOC }, { NULL, 0, 0, 0, 0 } }; @@ -2774,6 +2792,10 @@ elf_fake_sections (bfd *abfd, asection *asect, void *failedptrarg) case SHT_GROUP: this_hdr->sh_entsize = 4; break; + + case SHT_GNU_HASH: + this_hdr->sh_entsize = bed->s->arch_size == 64 ? 0 : 4; + break; } if ((asect->flags & SEC_ALLOC) != 0) @@ -3219,6 +3241,7 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info) break; case SHT_HASH: + case SHT_GNU_HASH: case SHT_GNU_versym: /* sh_link is the section header index of the symbol table this hash table or version table is for. */ diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 754aa52254d..de473f9ac6f 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -3872,6 +3872,18 @@ elf_i386_plt_sym_val (bfd_vma i, const asection *plt, return plt->vma + (i + 1) * PLT_ENTRY_SIZE; } +/* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */ + +static bfd_boolean +elf_i386_hash_symbol (struct elf_link_hash_entry *h) +{ + if (h->plt.offset != (bfd_vma) -1 + && !h->def_regular + && !h->pointer_equality_needed) + return FALSE; + + return _bfd_elf_hash_symbol (h); +} #define TARGET_LITTLE_SYM bfd_elf32_i386_vec #define TARGET_LITTLE_NAME "elf32-i386" @@ -3912,6 +3924,7 @@ elf_i386_plt_sym_val (bfd_vma i, const asection *plt, #define elf_backend_size_dynamic_sections elf_i386_size_dynamic_sections #define elf_backend_always_size_sections elf_i386_always_size_sections #define elf_backend_plt_sym_val elf_i386_plt_sym_val +#define elf_backend_hash_symbol elf_i386_hash_symbol #include "elf32-target.h" diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 9befd69c5df..9948bda944f 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -3614,6 +3614,19 @@ elf64_x86_64_additional_program_headers (bfd *abfd) return count; } +/* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */ + +static bfd_boolean +elf64_x86_64_hash_symbol (struct elf_link_hash_entry *h) +{ + if (h->plt.offset != (bfd_vma) -1 + && !h->def_regular + && !h->pointer_equality_needed) + return FALSE; + + return _bfd_elf_hash_symbol (h); +} + static const struct bfd_elf_special_section elf64_x86_64_special_sections[]= { @@ -3685,5 +3698,7 @@ static const struct bfd_elf_special_section elf64_x86_64_special_sections #define elf_backend_additional_program_headers \ elf64_x86_64_additional_program_headers +#define elf_backend_hash_symbol \ + elf64_x86_64_hash_symbol #include "elf64-target.h" diff --git a/bfd/elflink.c b/bfd/elflink.c index 8600d465d18..5d66b84d260 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -240,12 +240,30 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) if (!_bfd_elf_define_linkage_sym (abfd, info, s, "_DYNAMIC")) return FALSE; - s = bfd_make_section_with_flags (abfd, ".hash", - flags | SEC_READONLY); - if (s == NULL - || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align)) - return FALSE; - elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry; + if (info->emit_hash) + { + s = bfd_make_section_with_flags (abfd, ".hash", flags | SEC_READONLY); + if (s == NULL + || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align)) + return FALSE; + elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry; + } + + if (info->emit_gnu_hash) + { + s = bfd_make_section_with_flags (abfd, ".gnu.hash", + flags | SEC_READONLY); + if (s == NULL + || ! bfd_set_section_alignment (abfd, s, bed->s->log_file_align)) + return FALSE; + /* For 64-bit ELF, .gnu.hash is a non-uniform entity size section: + 4 32-bit words followed by variable count of 64-bit words, then + variable count of 32-bit words. */ + if (bed->s->arch_size == 64) + elf_section_data (s)->this_hdr.sh_entsize = 0; + else + elf_section_data (s)->this_hdr.sh_entsize = 4; + } /* Let the backend create the rest of the sections. This lets the backend set the right flags. The backend will normally create @@ -4791,6 +4809,131 @@ elf_collect_hash_codes (struct elf_link_hash_entry *h, void *data) return TRUE; } +struct collect_gnu_hash_codes +{ + bfd *output_bfd; + const struct elf_backend_data *bed; + unsigned long int nsyms; + unsigned long int maskbits; + unsigned long int *hashcodes; + unsigned long int *hashval; + unsigned long int *indx; + unsigned long int *counts; + bfd_vma *bitmask; + bfd_byte *contents; + long int min_dynindx; + unsigned long int bucketcount; + unsigned long int symindx; + long int local_indx; + long int shift1, shift2; + unsigned long int mask; +}; + +/* This function will be called though elf_link_hash_traverse to store + all hash value of the exported symbols in an array. */ + +static bfd_boolean +elf_collect_gnu_hash_codes (struct elf_link_hash_entry *h, void *data) +{ + struct collect_gnu_hash_codes *s = data; + const char *name; + char *p; + unsigned long ha; + char *alc = NULL; + + if (h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + /* Ignore indirect symbols. These are added by the versioning code. */ + if (h->dynindx == -1) + return TRUE; + + /* Ignore also local symbols and undefined symbols. */ + if (! (*s->bed->elf_hash_symbol) (h)) + return TRUE; + + name = h->root.root.string; + p = strchr (name, ELF_VER_CHR); + if (p != NULL) + { + alc = bfd_malloc (p - name + 1); + memcpy (alc, name, p - name); + alc[p - name] = '\0'; + name = alc; + } + + /* Compute the hash value. */ + ha = bfd_elf_gnu_hash (name); + + /* Store the found hash value in the array for compute_bucket_count, + and also for .dynsym reordering purposes. */ + s->hashcodes[s->nsyms] = ha; + s->hashval[h->dynindx] = ha; + ++s->nsyms; + if (s->min_dynindx < 0 || s->min_dynindx > h->dynindx) + s->min_dynindx = h->dynindx; + + if (alc != NULL) + free (alc); + + return TRUE; +} + +/* This function will be called though elf_link_hash_traverse to do + final dynaminc symbol renumbering. */ + +static bfd_boolean +elf_renumber_gnu_hash_syms (struct elf_link_hash_entry *h, void *data) +{ + struct collect_gnu_hash_codes *s = data; + unsigned long int bucket; + unsigned long int val; + + if (h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + /* Ignore indirect symbols. */ + if (h->dynindx == -1) + return TRUE; + + /* Ignore also local symbols and undefined symbols. */ + if (! (*s->bed->elf_hash_symbol) (h)) + { + if (h->dynindx >= s->min_dynindx) + h->dynindx = s->local_indx++; + return TRUE; + } + + bucket = s->hashval[h->dynindx] % s->bucketcount; + val = (s->hashval[h->dynindx] >> s->shift1) + & ((s->maskbits >> s->shift1) - 1); + s->bitmask[val] |= ((bfd_vma) 1) << (s->hashval[h->dynindx] & s->mask); + s->bitmask[val] + |= ((bfd_vma) 1) << ((s->hashval[h->dynindx] >> s->shift2) & s->mask); + val = s->hashval[h->dynindx] & ~(unsigned long int) 1; + if (s->counts[bucket] == 1) + /* Last element terminates the chain. */ + val |= 1; + bfd_put_32 (s->output_bfd, val, + s->contents + (s->indx[bucket] - s->symindx) * 4); + --s->counts[bucket]; + h->dynindx = s->indx[bucket]++; + return TRUE; +} + +/* Return TRUE if symbol should be hashed in the `.gnu.hash' section. */ + +bfd_boolean +_bfd_elf_hash_symbol (struct elf_link_hash_entry *h) +{ + return !(h->forced_local + || h->root.type == bfd_link_hash_undefined + || h->root.type == bfd_link_hash_undefweak + || ((h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && h->root.u.def.section->output_section == NULL)); +} + /* Array used to determine the number of hash table buckets to use based on the number of symbols there are. If there are fewer than 3 symbols we use 1 bucket, fewer than 17 symbols we use 3 buckets, @@ -4812,42 +4955,26 @@ static const size_t elf_buckets[] = Therefore the result is always a good payoff between few collisions (= short chain lengths) and table size. */ static size_t -compute_bucket_count (struct bfd_link_info *info) +compute_bucket_count (struct bfd_link_info *info, unsigned long int *hashcodes, + unsigned long int nsyms, int gnu_hash) { size_t dynsymcount = elf_hash_table (info)->dynsymcount; size_t best_size = 0; - unsigned long int *hashcodes; - unsigned long int *hashcodesp; unsigned long int i; bfd_size_type amt; - /* Compute the hash values for all exported symbols. At the same - time store the values in an array so that we could use them for - optimizations. */ - amt = dynsymcount; - amt *= sizeof (unsigned long int); - hashcodes = bfd_malloc (amt); - if (hashcodes == NULL) - return 0; - hashcodesp = hashcodes; - - /* Put all hash values in HASHCODES. */ - elf_link_hash_traverse (elf_hash_table (info), - elf_collect_hash_codes, &hashcodesp); - /* We have a problem here. The following code to optimize the table size requires an integer type with more the 32 bits. If BFD_HOST_U_64_BIT is set we know about such a type. */ #ifdef BFD_HOST_U_64_BIT if (info->optimize) { - unsigned long int nsyms = hashcodesp - hashcodes; size_t minsize; size_t maxsize; BFD_HOST_U_64_BIT best_chlen = ~((BFD_HOST_U_64_BIT) 0); - unsigned long int *counts ; bfd *dynobj = elf_hash_table (info)->dynobj; const struct elf_backend_data *bed = get_elf_backend_data (dynobj); + unsigned long int *counts; /* Possible optimization parameters: if we have NSYMS symbols we say that the hashing table must at least have NSYMS/4 and at most @@ -4856,6 +4983,13 @@ compute_bucket_count (struct bfd_link_info *info) if (minsize == 0) minsize = 1; best_size = maxsize = nsyms * 2; + if (gnu_hash) + { + if (minsize < 2) + minsize = 2; + if ((best_size & 31) == 0) + ++best_size; + } /* Create array where we count the collisions in. We must use bfd_malloc since the size could be large. */ @@ -4863,10 +4997,7 @@ compute_bucket_count (struct bfd_link_info *info) amt *= sizeof (unsigned long int); counts = bfd_malloc (amt); if (counts == NULL) - { - free (hashcodes); - return 0; - } + return 0; /* Compute the "optimal" size for the hash table. The criteria is a minimal chain length. The minor criteria is (of course) the size @@ -4878,6 +5009,9 @@ compute_bucket_count (struct bfd_link_info *info) unsigned long int j; unsigned long int fact; + if (gnu_hash && (i & 31) == 0) + continue; + memset (counts, '\0', i * sizeof (unsigned long int)); /* Determine how often each hash bucket is used. */ @@ -4893,9 +5027,9 @@ compute_bucket_count (struct bfd_link_info *info) # define BFD_TARGET_PAGESIZE (4096) # endif - /* We in any case need 2 + NSYMS entries for the size values and - the chains. */ - max = (2 + nsyms) * (bed->s->arch_size / 8); + /* We in any case need 2 + DYNSYMCOUNT entries for the size values + and the chains. */ + max = (2 + dynsymcount) * bed->s->sizeof_hash_entry; # if 1 /* Variant 1: optimize for short chains. We add the squares @@ -4905,7 +5039,7 @@ compute_bucket_count (struct bfd_link_info *info) max += counts[j] * counts[j]; /* This adds penalties for the overall size of the table. */ - fact = i / (BFD_TARGET_PAGESIZE / (bed->s->arch_size / 8)) + 1; + fact = i / (BFD_TARGET_PAGESIZE / bed->s->sizeof_hash_entry) + 1; max *= fact * fact; # else /* Variant 2: Optimize a lot more for small table. Here we @@ -4916,7 +5050,7 @@ compute_bucket_count (struct bfd_link_info *info) /* The overall size of the table is considered, but not as strong as in variant 1, where it is squared. */ - fact = i / (BFD_TARGET_PAGESIZE / (bed->s->arch_size / 8)) + 1; + fact = i / (BFD_TARGET_PAGESIZE / bed->s->sizeof_hash_entry) + 1; max *= fact; # endif @@ -4939,14 +5073,13 @@ compute_bucket_count (struct bfd_link_info *info) for (i = 0; elf_buckets[i] != 0; i++) { best_size = elf_buckets[i]; - if (dynsymcount < elf_buckets[i + 1]) + if (nsyms < elf_buckets[i + 1]) break; } + if (gnu_hash && best_size < 2) + best_size = 2; } - /* Free the arrays we needed. */ - free (hashcodes); - return best_size; } @@ -5304,7 +5437,10 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd, bfd_size_type strsize; strsize = _bfd_elf_strtab_size (elf_hash_table (info)->dynstr); - if (!_bfd_elf_add_dynamic_entry (info, DT_HASH, 0) + if ((info->emit_hash + && !_bfd_elf_add_dynamic_entry (info, DT_HASH, 0)) + || (info->emit_gnu_hash + && !_bfd_elf_add_dynamic_entry (info, DT_GNU_HASH, 0)) || !_bfd_elf_add_dynamic_entry (info, DT_STRTAB, 0) || !_bfd_elf_add_dynamic_entry (info, DT_SYMTAB, 0) || !_bfd_elf_add_dynamic_entry (info, DT_STRSZ, strsize) @@ -5706,8 +5842,6 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info) asection *s; bfd_size_type dynsymcount; unsigned long section_sym_count; - size_t bucketcount = 0; - size_t hash_entry_size; unsigned int dtagcount; dynobj = elf_hash_table (info)->dynobj; @@ -5758,23 +5892,215 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info) memset (s->contents, 0, section_sym_count * bed->s->sizeof_sym); } + elf_hash_table (info)->bucketcount = 0; + /* Compute the size of the hashing table. As a side effect this computes the hash values for all the names we export. */ - bucketcount = compute_bucket_count (info); + if (info->emit_hash) + { + unsigned long int *hashcodes; + unsigned long int *hashcodesp; + bfd_size_type amt; + unsigned long int nsyms; + size_t bucketcount; + size_t hash_entry_size; + + /* Compute the hash values for all exported symbols. At the same + time store the values in an array so that we could use them for + optimizations. */ + amt = dynsymcount * sizeof (unsigned long int); + hashcodes = bfd_malloc (amt); + if (hashcodes == NULL) + return FALSE; + hashcodesp = hashcodes; - s = bfd_get_section_by_name (dynobj, ".hash"); - BFD_ASSERT (s != NULL); - hash_entry_size = elf_section_data (s)->this_hdr.sh_entsize; - s->size = ((2 + bucketcount + dynsymcount) * hash_entry_size); - s->contents = bfd_zalloc (output_bfd, s->size); - if (s->contents == NULL) - return FALSE; + /* Put all hash values in HASHCODES. */ + elf_link_hash_traverse (elf_hash_table (info), + elf_collect_hash_codes, &hashcodesp); + + nsyms = hashcodesp - hashcodes; + bucketcount + = compute_bucket_count (info, hashcodes, nsyms, 0); + free (hashcodes); + + if (bucketcount == 0) + return FALSE; - bfd_put (8 * hash_entry_size, output_bfd, bucketcount, s->contents); - bfd_put (8 * hash_entry_size, output_bfd, dynsymcount, - s->contents + hash_entry_size); + elf_hash_table (info)->bucketcount = bucketcount; - elf_hash_table (info)->bucketcount = bucketcount; + s = bfd_get_section_by_name (dynobj, ".hash"); + BFD_ASSERT (s != NULL); + hash_entry_size = elf_section_data (s)->this_hdr.sh_entsize; + s->size = ((2 + bucketcount + dynsymcount) * hash_entry_size); + s->contents = bfd_zalloc (output_bfd, s->size); + if (s->contents == NULL) + return FALSE; + + bfd_put (8 * hash_entry_size, output_bfd, bucketcount, s->contents); + bfd_put (8 * hash_entry_size, output_bfd, dynsymcount, + s->contents + hash_entry_size); + } + + if (info->emit_gnu_hash) + { + size_t i, cnt; + unsigned char *contents; + struct collect_gnu_hash_codes cinfo; + bfd_size_type amt; + size_t bucketcount; + + memset (&cinfo, 0, sizeof (cinfo)); + + /* Compute the hash values for all exported symbols. At the same + time store the values in an array so that we could use them for + optimizations. */ + amt = dynsymcount * 2 * sizeof (unsigned long int); + cinfo.hashcodes = bfd_malloc (amt); + if (cinfo.hashcodes == NULL) + return FALSE; + + cinfo.hashval = cinfo.hashcodes + dynsymcount; + cinfo.min_dynindx = -1; + cinfo.output_bfd = output_bfd; + cinfo.bed = bed; + + /* Put all hash values in HASHCODES. */ + elf_link_hash_traverse (elf_hash_table (info), + elf_collect_gnu_hash_codes, &cinfo); + + bucketcount + = compute_bucket_count (info, cinfo.hashcodes, cinfo.nsyms, 1); + + if (bucketcount == 0) + { + free (cinfo.hashcodes); + return FALSE; + } + + s = bfd_get_section_by_name (dynobj, ".gnu.hash"); + BFD_ASSERT (s != NULL); + + if (cinfo.nsyms == 0) + { + /* Empty .gnu.hash section is special. */ + BFD_ASSERT (cinfo.min_dynindx == -1); + free (cinfo.hashcodes); + s->size = 5 * 4 + bed->s->arch_size / 8; + contents = bfd_zalloc (output_bfd, s->size); + if (contents == NULL) + return FALSE; + s->contents = contents; + /* 1 empty bucket. */ + bfd_put_32 (output_bfd, 1, contents); + /* SYMIDX above the special symbol 0. */ + bfd_put_32 (output_bfd, 1, contents + 4); + /* Just one word for bitmask. */ + bfd_put_32 (output_bfd, 1, contents + 8); + /* Only hash fn bloom filter. */ + bfd_put_32 (output_bfd, 0, contents + 12); + /* No hashes are valid - empty bitmask. */ + bfd_put (bed->s->arch_size, output_bfd, 0, contents + 16); + /* No hashes in the only bucket. */ + bfd_put_32 (output_bfd, 0, + contents + 16 + bed->s->arch_size / 8); + } + else + { + BFD_ASSERT (cinfo.min_dynindx != -1); + unsigned long int maskwords, maskbitslog2; + + maskbitslog2 = bfd_log2 (cinfo.nsyms) + 1; + if (maskbitslog2 < 3) + maskbitslog2 = 5; + else if ((1 << (maskbitslog2 - 2)) & cinfo.nsyms) + maskbitslog2 = maskbitslog2 + 3; + else + maskbitslog2 = maskbitslog2 + 2; + if (bed->s->arch_size == 64) + { + if (maskbitslog2 == 5) + maskbitslog2 = 6; + cinfo.shift1 = 6; + } + else + cinfo.shift1 = 5; + cinfo.mask = (1 << cinfo.shift1) - 1; + cinfo.shift2 = maskbitslog2; + cinfo.maskbits = 1 << maskbitslog2; + maskwords = 1 << (maskbitslog2 - cinfo.shift1); + amt = bucketcount * sizeof (unsigned long int) * 2; + amt += maskwords * sizeof (bfd_vma); + cinfo.bitmask = bfd_malloc (amt); + if (cinfo.bitmask == NULL) + { + free (cinfo.hashcodes); + return FALSE; + } + + cinfo.counts = (void *) (cinfo.bitmask + maskwords); + cinfo.indx = cinfo.counts + bucketcount; + cinfo.symindx = dynsymcount - cinfo.nsyms; + memset (cinfo.bitmask, 0, maskwords * sizeof (bfd_vma)); + + /* Determine how often each hash bucket is used. */ + memset (cinfo.counts, 0, bucketcount * sizeof (cinfo.counts[0])); + for (i = 0; i < cinfo.nsyms; ++i) + ++cinfo.counts[cinfo.hashcodes[i] % bucketcount]; + + for (i = 0, cnt = cinfo.symindx; i < bucketcount; ++i) + if (cinfo.counts[i] != 0) + { + cinfo.indx[i] = cnt; + cnt += cinfo.counts[i]; + } + BFD_ASSERT (cnt == dynsymcount); + cinfo.bucketcount = bucketcount; + cinfo.local_indx = cinfo.min_dynindx; + + s->size = (4 + bucketcount + cinfo.nsyms) * 4; + s->size += cinfo.maskbits / 8; + contents = bfd_zalloc (output_bfd, s->size); + if (contents == NULL) + { + free (cinfo.bitmask); + free (cinfo.hashcodes); + return FALSE; + } + + s->contents = contents; + bfd_put_32 (output_bfd, bucketcount, contents); + bfd_put_32 (output_bfd, cinfo.symindx, contents + 4); + bfd_put_32 (output_bfd, maskwords, contents + 8); + bfd_put_32 (output_bfd, cinfo.shift2, contents + 12); + contents += 16 + cinfo.maskbits / 8; + + for (i = 0; i < bucketcount; ++i) + { + if (cinfo.counts[i] == 0) + bfd_put_32 (output_bfd, 0, contents); + else + bfd_put_32 (output_bfd, cinfo.indx[i], contents); + contents += 4; + } + + cinfo.contents = contents; + + /* Renumber dynamic symbols, populate .gnu.hash section. */ + elf_link_hash_traverse (elf_hash_table (info), + elf_renumber_gnu_hash_syms, &cinfo); + + contents = s->contents + 16; + for (i = 0; i < maskwords; ++i) + { + bfd_put (bed->s->arch_size, output_bfd, cinfo.bitmask[i], + contents); + contents += bed->s->arch_size / 8; + } + + free (cinfo.bitmask); + free (cinfo.hashcodes); + } + } s = bfd_get_section_by_name (dynobj, ".dynstr"); BFD_ASSERT (s != NULL); @@ -6643,9 +6969,6 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) { size_t bucketcount; size_t bucket; - size_t hash_entry_size; - bfd_byte *bucketpos; - bfd_vma chain; bfd_byte *esym; sym.st_name = h->dynstr_index; @@ -6659,15 +6982,23 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) bucketcount = elf_hash_table (finfo->info)->bucketcount; bucket = h->u.elf_hash_value % bucketcount; - hash_entry_size - = elf_section_data (finfo->hash_sec)->this_hdr.sh_entsize; - bucketpos = ((bfd_byte *) finfo->hash_sec->contents - + (bucket + 2) * hash_entry_size); - chain = bfd_get (8 * hash_entry_size, finfo->output_bfd, bucketpos); - bfd_put (8 * hash_entry_size, finfo->output_bfd, h->dynindx, bucketpos); - bfd_put (8 * hash_entry_size, finfo->output_bfd, chain, - ((bfd_byte *) finfo->hash_sec->contents - + (bucketcount + 2 + h->dynindx) * hash_entry_size)); + + if (finfo->hash_sec != NULL) + { + size_t hash_entry_size; + bfd_byte *bucketpos; + bfd_vma chain; + + hash_entry_size + = elf_section_data (finfo->hash_sec)->this_hdr.sh_entsize; + bucketpos = ((bfd_byte *) finfo->hash_sec->contents + + (bucket + 2) * hash_entry_size); + chain = bfd_get (8 * hash_entry_size, finfo->output_bfd, bucketpos); + bfd_put (8 * hash_entry_size, finfo->output_bfd, h->dynindx, bucketpos); + bfd_put (8 * hash_entry_size, finfo->output_bfd, chain, + ((bfd_byte *) finfo->hash_sec->contents + + (bucketcount + 2 + h->dynindx) * hash_entry_size)); + } if (finfo->symver_sec != NULL && finfo->symver_sec->contents != NULL) { @@ -7841,7 +8172,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) { finfo.dynsym_sec = bfd_get_section_by_name (dynobj, ".dynsym"); finfo.hash_sec = bfd_get_section_by_name (dynobj, ".hash"); - BFD_ASSERT (finfo.dynsym_sec != NULL && finfo.hash_sec != NULL); + BFD_ASSERT (finfo.dynsym_sec != NULL); finfo.symver_sec = bfd_get_section_by_name (dynobj, ".gnu.version"); /* Note that it is OK if symver_sec is NULL. */ } @@ -8600,6 +8931,9 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) case DT_HASH: name = ".hash"; goto get_vma; + case DT_GNU_HASH: + name = ".gnu.hash"; + goto get_vma; case DT_STRTAB: name = ".dynstr"; goto get_vma; diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 10d055482e6..c1e4d19df36 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -554,6 +554,10 @@ #define elf_backend_merge_symbol NULL #endif +#ifndef elf_backend_hash_symbol +#define elf_backend_hash_symbol _bfd_elf_hash_symbol +#endif + extern const struct elf_size_info _bfd_elfNN_size_info; #ifndef INCLUDED_TARGET_FILE @@ -632,6 +636,7 @@ static const struct elf_backend_data elfNN_bed = elf_backend_common_section_index, elf_backend_common_section, elf_backend_merge_symbol, + elf_backend_hash_symbol, elf_backend_link_order_error_handler, elf_backend_relplt_name, ELF_MACHINE_ALT1, diff --git a/binutils/readelf.c b/binutils/readelf.c index aa79d5fb057..aea3d3de77f 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -135,6 +135,7 @@ static unsigned long dynamic_syminfo_offset; static unsigned int dynamic_syminfo_nent; static char program_interpreter[64]; static bfd_vma dynamic_info[DT_JMPREL + 1]; +static bfd_vma dynamic_info_DT_GNU_HASH; static bfd_vma version_info[16]; static Elf_Internal_Ehdr elf_header; static Elf_Internal_Shdr *section_headers; @@ -1499,6 +1500,7 @@ get_dynamic_type (unsigned long type) case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ"; case DT_GNU_LIBLIST: return "GNU_LIBLIST"; case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ"; + case DT_GNU_HASH: return "GNU_HASH"; default: if ((type >= DT_LOPROC) && (type <= DT_HIPROC)) @@ -2569,6 +2571,7 @@ get_section_type_name (unsigned int sh_type) case SHT_INIT_ARRAY: return "INIT_ARRAY"; case SHT_FINI_ARRAY: return "FINI_ARRAY"; case SHT_PREINIT_ARRAY: return "PREINIT_ARRAY"; + case SHT_GNU_HASH: return "GNU_HASH"; case SHT_GROUP: return "GROUP"; case SHT_SYMTAB_SHNDX: return "SYMTAB SECTION INDICIES"; case SHT_GNU_verdef: return "VERDEF"; @@ -6217,6 +6220,15 @@ process_dynamic_section (FILE *file) } break; + case DT_GNU_HASH: + dynamic_info_DT_GNU_HASH = entry->d_un.d_val; + if (do_dynamic) + { + print_vma (entry->d_un.d_val, PREFIX_HEX); + putchar ('\n'); + } + break; + default: if ((entry->d_tag >= DT_VERSYM) && (entry->d_tag <= DT_VERNEEDNUM)) version_info[DT_VERSIONTAGIDX (entry->d_tag)] = @@ -6892,6 +6904,9 @@ process_symbol_table (FILE *file) bfd_vma nchains = 0; bfd_vma *buckets = NULL; bfd_vma *chains = NULL; + bfd_vma ngnubuckets = 0; + bfd_vma *gnubuckets = NULL; + bfd_vma *gnuchains = NULL; if (! do_syms && !do_histogram) return 1; @@ -7271,6 +7286,166 @@ process_symbol_table (FILE *file) free (chains); } + if (do_histogram && dynamic_info_DT_GNU_HASH) + { + unsigned char nb[16]; + bfd_vma i, maxchain = 0xffffffff, symidx, bitmaskwords; + unsigned long *lengths; + unsigned long *counts; + unsigned long hn; + unsigned long maxlength = 0; + unsigned long nzero_counts = 0; + unsigned long nsyms = 0; + bfd_vma buckets_vma; + + if (fseek (file, + (archive_file_offset + + offset_from_vma (file, dynamic_info_DT_GNU_HASH, + sizeof nb)), + SEEK_SET)) + { + error (_("Unable to seek to start of dynamic information")); + return 0; + } + + if (fread (nb, 16, 1, file) != 1) + { + error (_("Failed to read in number of buckets\n")); + return 0; + } + + ngnubuckets = byte_get (nb, 4); + symidx = byte_get (nb + 4, 4); + bitmaskwords = byte_get (nb + 8, 4); + buckets_vma = dynamic_info_DT_GNU_HASH + 16; + if (is_32bit_elf) + buckets_vma += bitmaskwords * 4; + else + buckets_vma += bitmaskwords * 8; + + if (fseek (file, + (archive_file_offset + + offset_from_vma (file, buckets_vma, 4)), + SEEK_SET)) + { + error (_("Unable to seek to start of dynamic information")); + return 0; + } + + gnubuckets = get_dynamic_data (file, ngnubuckets, 4); + + if (gnubuckets == NULL) + return 0; + + for (i = 0; i < ngnubuckets; i++) + if (gnubuckets[i] != 0) + { + if (gnubuckets[i] < symidx) + return 0; + + if (maxchain == 0xffffffff || gnubuckets[i] > maxchain) + maxchain = gnubuckets[i]; + } + + if (maxchain == 0xffffffff) + return 0; + + maxchain -= symidx; + + if (fseek (file, + (archive_file_offset + + offset_from_vma (file, buckets_vma + + 4 * (ngnubuckets + maxchain), 4)), + SEEK_SET)) + { + error (_("Unable to seek to start of dynamic information")); + return 0; + } + + do + { + if (fread (nb, 4, 1, file) != 1) + { + error (_("Failed to determine last chain length\n")); + return 0; + } + + if (maxchain + 1 == 0) + return 0; + + ++maxchain; + } + while ((byte_get (nb, 4) & 1) == 0); + + if (fseek (file, + (archive_file_offset + + offset_from_vma (file, buckets_vma + 4 * ngnubuckets, 4)), + SEEK_SET)) + { + error (_("Unable to seek to start of dynamic information")); + return 0; + } + + gnuchains = get_dynamic_data (file, maxchain, 4); + + if (gnuchains == NULL) + return 0; + + lengths = calloc (ngnubuckets, sizeof (*lengths)); + if (lengths == NULL) + { + error (_("Out of memory")); + return 0; + } + + printf (_("\nHistogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"), + (unsigned long) ngnubuckets); + printf (_(" Length Number %% of total Coverage\n")); + + for (hn = 0; hn < ngnubuckets; ++hn) + if (gnubuckets[hn] != 0) + { + bfd_vma off, length = 1; + + for (off = gnubuckets[hn] - symidx; + (gnuchains[off] & 1) == 0; ++off) + ++length; + lengths[hn] = length; + if (length > maxlength) + maxlength = length; + nsyms += length; + } + + counts = calloc (maxlength + 1, sizeof (*counts)); + if (counts == NULL) + { + error (_("Out of memory")); + return 0; + } + + for (hn = 0; hn < ngnubuckets; ++hn) + ++counts[lengths[hn]]; + + if (ngnubuckets > 0) + { + unsigned long j; + printf (" 0 %-10lu (%5.1f%%)\n", + counts[0], (counts[0] * 100.0) / ngnubuckets); + for (j = 1; j <= maxlength; ++j) + { + nzero_counts += counts[j] * j; + printf ("%7lu %-10lu (%5.1f%%) %5.1f%%\n", + j, counts[j], (counts[j] * 100.0) / ngnubuckets, + (nzero_counts * 100.0) / nsyms); + } + } + + free (counts); + free (lengths); + free (gnubuckets); + free (gnuchains); + } + return 1; } diff --git a/include/bfdlink.h b/include/bfdlink.h index f4b7aa7cfa4..761bd0513e3 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -324,6 +324,12 @@ struct bfd_link_info /* TRUE if unreferenced sections should be removed. */ unsigned int gc_sections: 1; + /* TRUE if .hash section should be created. */ + unsigned int emit_hash: 1; + + /* TRUE if .gnu.hash section should be created. */ + unsigned int emit_gnu_hash: 1; + /* What to do with unresolved symbols in an object file. When producing executables the default is GENERATE_ERROR. When producing shared libraries the default is IGNORE. The diff --git a/include/elf/common.h b/include/elf/common.h index b11171b56b4..0380a8fd7f9 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -338,6 +338,7 @@ #define SHT_LOOS 0x60000000 /* First of OS specific semantics */ #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ +#define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */ #define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */ /* The next three section types are defined by Solaris, and are named @@ -577,6 +578,7 @@ #define DT_VALRNGHI 0x6ffffdff #define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 #define DT_TLSDESC_PLT 0x6ffffef6 #define DT_TLSDESC_GOT 0x6ffffef7 #define DT_GNU_CONFLICT 0x6ffffef8 diff --git a/ld/Makefile.am b/ld/Makefile.am index 2a78b241e54..8b7d86882b4 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -483,6 +483,8 @@ stringify.sed: ${srcdir}/emultempl/$(STRINGIFY) GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed +ELF_DEPS = $(srcdir)/emultempl/elf32.em +ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em @TDIRS@ @@ -502,55 +504,55 @@ ealpha.c: $(srcdir)/emulparams/alpha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/alpha.sc ${GEN_DEPENDS} ${GENSCRIPTS} alpha "$(tdir_alpha)" earcelf.c: $(srcdir)/emulparams/arcelf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} arcelf "$(tdir_arcelf)" earmelf.c: $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf "$(tdir_armelf)" earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb "$(tdir_armelfb)" earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)" earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux "$(tdir_armelf_linux)" earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)" earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_linux "$(tdir_armelfb_linux)" earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_linux_eabi "$(tdir_armelfb_linux_abi)" earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_nbsd "$(tdir_armelf_nbsd)" earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \ $(srcdir)/emulparams/armelf_nbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_nbsd "$(tdir_armelfb_nbsd)" earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ + $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" @@ -567,7 +569,7 @@ earmnbsd.c: $(srcdir)/emulparams/armnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnbsd "$(tdir_armnbsd)" earmnto.c: $(srcdir)/emulparams/armnto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnto "$(tdir_armnto)" earm_epoc_pe.c: $(srcdir)/emulparams/arm_epoc_pe.sh \ @@ -577,28 +579,28 @@ earmpe.c: $(srcdir)/emulparams/armpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} armpe "$(tdir_armpe)" earmsymbian.c: $(srcdir)/emulparams/armsymbian.sh \ - $(srcdir)/emulparams/armelf.sh $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emulparams/armelf.sh $(ELF_DEPS) \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/armbpabi.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armsymbian "$(tdir_armelf)" -eavr2.c: $(srcdir)/emulparams/avr2.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr2.c: $(srcdir)/emulparams/avr2.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr2 "$(tdir_avr2)" -eavr1.c: $(srcdir)/emulparams/avr1.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr1.c: $(srcdir)/emulparams/avr1.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr1 "$(tdir_avr2)" -eavr3.c: $(srcdir)/emulparams/avr3.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr3.c: $(srcdir)/emulparams/avr3.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr3 "$(tdir_avr2)" -eavr4.c: $(srcdir)/emulparams/avr4.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr4.c: $(srcdir)/emulparams/avr4.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr4 "$(tdir_avr2)" -eavr5.c: $(srcdir)/emulparams/avr5.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr5.c: $(srcdir)/emulparams/avr5.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr5 "$(tdir_avr2)" ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ @@ -611,332 +613,341 @@ ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS} ${GENSCRIPTS} crisaout "$(tdir_cris)" ecriself.c: $(srcdir)/emulparams/criself.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} criself "$(tdir_cris)" ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} crislinux "$(tdir_cris)" ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d10velf "$(tdir_d10v)" ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30velf "$(tdir_d30v)" ed30v_o.c: $(srcdir)/emulparams/d30v_o.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_o "$(tdir_d30v)" ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_e "$(tdir_d30v)" edelta68.c: $(srcdir)/emulparams/delta68.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/delta68.sc ${GEN_DEPENDS} ${GENSCRIPTS} delta68 "$(tdir_delta68)" eelf32bfin.c: $(srcdir)/emulparams/bfin.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32_dlx.c: $(srcdir)/emulparams/elf32_dlx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_dlx "$(tdir_elf32_dlx)" eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32am33lin "$(tdir_mn10300)" eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.sh \ - $(srcdir)/emulparams/xtensa-config.sh $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emulparams/xtensa-config.sh $(ELF_DEPS) \ $(srcdir)/emultempl/xtensaelf.em $(INCDIR)/xtensa-config.h \ $(BFDDIR)/elf-bfd.h $(BFDDIR)/libbfd.h $(INCDIR)/elf/xtensa.h \ $(srcdir)/scripttempl/elfxtensa.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xtensa "$(tdir_elf32xtensa)" eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32frv "$(tdir_frv)" eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" em32relf.c: $(srcdir)/emulparams/m32relf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32relf "$(tdir_m32r)" em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" -eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) $(srcdir)/emultempl/irix.em \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bsmip "$(tdir_elf32bsmip)" eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/crxelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ - $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32btsmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)" eelf32ebmipvxworks.c: $(srcdir)/emulparams/elf32ebmipvxworks.sh \ - $(srcdir)/emulparams/elf32ebmip.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmipvxworks "$(tdir_elf32ebmipvxworks)" eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmip "$(tdir_elf32elmip)" eelf32elmipvxworks.c: $(srcdir)/emulparams/elf32elmipvxworks.sh \ - $(srcdir)/emulparams/elf32elmip.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmipvxworks "$(tdir_elf32elmipvxworks)" eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" -eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)" eelf32lppcnto.c: $(srcdir)/emulparams/elf32lppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppcnto "$(tdir_elf32lppcnto)" eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \ $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)" eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32ppcvxworks.c: $(srcdir)/emulparams/elf32ppcvxworks.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcvxworks "$(tdir_elf32ppcvxworks)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32openrisc "$(tdir_openrisc)" eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)" eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)" eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)" eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" eelf64alpha_fbsd.c: $(srcdir)/emulparams/elf64alpha_fbsd.sh \ $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)" eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/ia64elf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)" eelf64_ia64_fbsd.c: $(srcdir)/emulparams/elf64_ia64_fbsd.sh \ $(srcdir)/emulparams/elf64_ia64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/ia64elf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)" eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(ELF_DEPS) $(srcdir)/emultempl/mmix-elfnmmo.em \ $(srcdir)/emultempl/mmixelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64mmix "$(tdir_elf64mmix)" emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ - $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mmo.em \ + $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em \ + $(srcdir)/emultempl/mmo.em \ $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} ${GENSCRIPTS} mmo "$(tdir_mmo)" eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ - $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)" eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \ $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)" eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ $(srcdir)/emulparams/elf_i386.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_vxworks "$(tdir_elf_i386_vxworks)" eelf_s390.c: $(srcdir)/emulparams/elf_s390.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_s390 "$(tdir_elf_s390)" egld960.c: $(srcdir)/emulparams/gld960.sh \ $(srcdir)/emultempl/gld960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} @@ -966,31 +977,31 @@ eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxn "$(tdir_h8300sxn)" eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" eh8300self.c: $(srcdir)/emulparams/h8300self.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300self "$(tdir_h8300self)" eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" eh8300snelf.c: $(srcdir)/emulparams/h8300snelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300snelf "$(tdir_h8300snelf)" eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxelf "$(tdir_h8300sxelf)" eh8300sxnelf.c: $(srcdir)/emulparams/h8300sxnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxnelf "$(tdir_h8300sxnelf)" eh8500.c: $(srcdir)/emulparams/h8500.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500.sc ${GEN_DEPENDS} @@ -1014,24 +1025,24 @@ ehp3hpux.c: $(srcdir)/emulparams/hp3hpux.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} hp3hpux "$(tdir_hp3hpux)" ehppaelf.c: $(srcdir)/emulparams/hppaelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaelf "$(tdir_hppaelf)" ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppalinux "$(tdir_hppalinux)" ehppanbsd.c: $(srcdir)/emulparams/hppanbsd.sh \ $(srcdir)/emulparams/hppaelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppanbsd "$(tdir_hppanbsd)" ehppaobsd.c: $(srcdir)/emulparams/hppaobsd.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaobsd "$(tdir_hppaobsd)" ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)" ei386aout.c: $(srcdir)/emulparams/i386aout.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -1052,13 +1063,13 @@ ei386linux.c: $(srcdir)/emulparams/i386linux.sh \ $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386linux "$(tdir_i386linux)" ei386lynx.c: $(srcdir)/emulparams/i386lynx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386lynx "$(tdir_i386lynx)" ei386mach.c: $(srcdir)/emulparams/i386mach.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386mach "$(tdir_i386mach)" ei386moss.c: $(srcdir)/emulparams/i386moss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386moss "$(tdir_i386moss)" ei386msdos.c: $(srcdir)/emulparams/i386msdos.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386msdos.sc ${GEN_DEPENDS} @@ -1067,10 +1078,10 @@ ei386nbsd.c: $(srcdir)/emulparams/i386nbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nbsd "$(tdir_i386nbsd)" ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nto "$(tdir_i386nto)" ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nw "$(tdir_i386nw)" ei386pe.c: $(srcdir)/emulparams/i386pe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} @@ -1082,19 +1093,19 @@ elnk960.c: $(srcdir)/emulparams/lnk960.sh \ $(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} ${GENSCRIPTS} lnk960 "$(tdir_lnk960)" em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc11elf "$(tdir_m68hc11)" em68hc11elfb.c: $(srcdir)/emulparams/m68hc11elfb.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc11elfb "$(tdir_m68hc11b)" em68hc12elf.c: $(srcdir)/emulparams/m68hc12elf.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc12elf "$(tdir_m68hc12)" em68hc12elfb.c: $(srcdir)/emulparams/m68hc12elfb.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc12elfb "$(tdir_m68hc12b)" em68k4knbsd.c: $(srcdir)/emulparams/m68k4knbsd.sh \ @@ -1110,12 +1121,12 @@ em68kcoff.c: $(srcdir)/emulparams/m68kcoff.sh \ $(srcdir)/emultempl/m68kcoff.em $(srcdir)/scripttempl/m68kcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kcoff "$(tdir_m68kcoff)" em68kelf.c: $(srcdir)/emulparams/m68kelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/m68kelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kelf "$(tdir_m68kelf)" em68kelfnbsd.c: $(srcdir)/emulparams/m68kelfnbsd.sh \ $(srcdir)/emulparams/m68kelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/m68kelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kelfnbsd "$(tdir_m68kelfnbsd)" em68klinux.c: $(srcdir)/emulparams/m68klinux.sh \ @@ -1125,7 +1136,7 @@ em68knbsd.c: $(srcdir)/emulparams/m68knbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68knbsd "$(tdir_m68knbsd)" em68kpsos.c: $(srcdir)/emulparams/m68kpsos.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kpsos "$(tdir_m68kpsos)" em88kbcs.c: $(srcdir)/emulparams/m88kbcs.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m88kbcs.sc ${GEN_DEPENDS} @@ -1136,270 +1147,270 @@ emaxqcoff.c: $(srcdir)/emulparams/maxqcoff.sh \ emcorepe.c: $(srcdir)/emulparams/mcorepe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} mcorepe "$(tdir_mcorepe)" -emipsbig.c: $(srcdir)/emulparams/mipsbig.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipsbig -emipsbsd.c: $(srcdir)/emulparams/mipsbsd.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mipsbsd.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipsbsd -emipsidt.c: $(srcdir)/emulparams/mipsidt.sh \ - $(srcdir)/emultempl/mipsecoff.em $(srcdir)/emultempl/generic.em \ +emipsbig.c: $(srcdir)/emulparams/mipsbig.sh $(srcdir)/emultempl/generic.em \ $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbig "$(tdir_mipsbig)" +emipsbsd.c: $(srcdir)/emulparams/mipsbsd.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/scripttempl/mipsbsd.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbsd "$(tdir_mipsbsd)" +emipsidt.c: $(srcdir)/emulparams/mipsidt.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} mipsidt "$(tdir_mipsidt)" -emipsidtl.c: $(srcdir)/emulparams/mipsidtl.sh \ - $(srcdir)/emultempl/mipsecoff.em $(srcdir)/emultempl/generic.em \ - $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} +emipsidtl.c: $(srcdir)/emulparams/mipsidtl.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} mipsidtl "$(tdir_mipsidtl)" -emipslit.c: $(srcdir)/emulparams/mipslit.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} +emipslit.c: $(srcdir)/emulparams/mipslit.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} ${GENSCRIPTS} mipslit "$(tdir_mipslit)" -emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ +emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipslnews -emipspe.c: $(srcdir)/emulparams/mipspe.sh \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipspe "$(tdir_mips)" + ${GENSCRIPTS} mipslnews "$(tdir_mipslnews)" +emipspe.c: $(srcdir)/emulparams/mipspe.sh $(srcdir)/emultempl/pe.em \ + $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipspe "$(tdir_mipspe)" emn10300.c: $(srcdir)/emulparams/mn10300.sh \ $(srcdir)/emulparams/mn10200.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10300 "$(tdir_mn10300)" emn10200.c: $(srcdir)/emulparams/mn10200.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emsp430x110.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" msp430all emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1101.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1101 "$(tdir_msp430x1101)" msp430all emsp430x1111.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" msp430all emsp430x1121.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1121 "$(tdir_msp430x1121)" msp430all emsp430x1122.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1122 "$(tdir_msp430x1122)" msp430all emsp430x1132.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1132 "$(tdir_msp430x1132)" msp430all emsp430x122.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" msp430all emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1222.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" msp430all emsp430x1232.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1232 "$(tdir_msp430x1232)" msp430all emsp430x133.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" msp430all emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1331.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" msp430all emsp430x1351.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1351 "$(tdir_msp430x1351)" msp430all emsp430x147.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x147 "$(tdir_msp430x147)" msp430all emsp430x148.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x148 "$(tdir_msp430x148)" msp430all emsp430x149.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x149 "$(tdir_msp430x149)" msp430all emsp430x155.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x155 "$(tdir_msp430x155)" msp430all emsp430x156.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x156 "$(tdir_msp430x156)" msp430all emsp430x157.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" msp430all emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x1610.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1610 "$(tdir_msp430x1610)" msp430all emsp430x1611.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1611 "$(tdir_msp430x1611)" msp430all emsp430x1612.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1612 "$(tdir_msp430x1612)" msp430all emsp430x2101.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2101 "$(tdir_msp430x2101)" msp430all emsp430x2111.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2111 "$(tdir_msp430x2111)" msp430all emsp430x2121.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2121 "$(tdir_msp430x2121)" msp430all emsp430x2131.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2131 "$(tdir_msp430x2131)" msp430all emsp430x311.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x311 "$(tdir_msp430x311)" msp430all emsp430x312.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x312 "$(tdir_msp430x312)" msp430all emsp430x313.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x313 "$(tdir_msp430x313)" msp430all emsp430x314.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x314 "$(tdir_msp430x314)" msp430all emsp430x315.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x315 "$(tdir_msp430x315)" msp430all emsp430x323.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x323 "$(tdir_msp430x323)" msp430all emsp430x325.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x325 "$(tdir_msp430x325)" msp430all emsp430x336.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x336 "$(tdir_msp430x336)" msp430all emsp430x337.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x337 "$(tdir_msp430x337)" msp430all emsp430x412.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all emsp430xE423.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE423 "$(tdir_msp430xE423)" msp430all emsp430xE425.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE425 "$(tdir_msp430xE425)" msp430all emsp430xE427.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE427 "$(tdir_msp430xE427)" msp430all emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all emsp430xG437.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG437 "$(tdir_msp430xG437)" msp430all emsp430xG438.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG438 "$(tdir_msp430xG438)" msp430all emsp430xG439.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG439 "$(tdir_msp430xG439)" msp430all emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all enews.c: $(srcdir)/emulparams/news.sh \ @@ -1413,7 +1424,7 @@ eor32.c: $(srcdir)/emulparams/or32.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS} ${GENSCRIPTS} or32 "$(tdir_or32)" eor32elf.c: $(srcdir)/emulparams/or32elf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} or32elf "$(tdir_or32elf)" epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -1422,22 +1433,22 @@ epdp11.c: $(srcdir)/emulparams/pdp11.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} pdp11 "$(tdir_pdp11)" epjelf.c: $(srcdir)/emulparams/pjelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjelf "$(tdir_pjelf)" -epjlelf.c: $(srcdir)/emulparams/pjlelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +epjlelf.c: $(srcdir)/emulparams/pjlelf.sh $(srcdir)/emulparams/pjelf.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjlelf "$(tdir_pjlelf)" eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \ $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcmacos "$(tdir_ppcmacos)" eppcnw.c: $(srcdir)/emulparams/ppcnw.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcnw "$(tdir_ppcnw)" eppcpe.c: $(srcdir)/emulparams/ppcpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/ppcpe.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcpe "$(tdir_ppcpe)" eppclynx.c: $(srcdir)/emulparams/ppclynx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppclynx "$(tdir_ppclynx)" eriscix.c: $(srcdir)/emulparams/riscix.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -1446,90 +1457,90 @@ esh.c: $(srcdir)/emulparams/sh.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} ${GENSCRIPTS} sh "$(tdir_sh)" eshelf.c: $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf "$(tdir_shelf)" eshelf32.c: $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32 "$(tdir_shelf32)" eshelf32_linux.c: $(srcdir)/emulparams/shelf32_linux.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_linux "$(tdir_shelf32_linux)" eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_nbsd "$(tdir_shelf32_nbsd)" eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf64 "$(tdir_shelf64)" eshelf64_nbsd.c: $(srcdir)/emulparams/shelf64_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \ $(srcdir)/emulparams/shlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_linux "$(tdir_shelf_linux)" eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_linux "$(tdir_shlelf_linux)" eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nbsd "$(tdir_shelf_nbsd)" eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" -eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf "$(tdir_shlelf)" +eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlsymbian "$(tdir_shlelf)" eshlelf32.c: $(srcdir)/emulparams/shlelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h $(srcdir)/emulparams/shelf32.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32 "$(tdir_shlelf32)" eshlelf32_linux.c: $(srcdir)/emulparams/shlelf32_linux.sh \ $(srcdir)/emulparams/shelf32_linux.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32_linux "$(tdir_shlelf32_linux)" eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32_nbsd "$(tdir_shlelf32_nbsd)" eshlelf64.c: $(srcdir)/emulparams/shlelf64.sh \ $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf64 "$(tdir_shlelf64)" eshlelf64_nbsd.c: $(srcdir)/emulparams/shlelf64_nbsd.sh \ $(srcdir)/emulparams/shelf64_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" eshl.c: $(srcdir)/emulparams/shl.sh \ $(srcdir)/emulparams/sh.sh \ @@ -1590,7 +1601,7 @@ evsta.c: $(srcdir)/emulparams/vsta.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} vsta "$(tdir_vsta)" ev850.c: $(srcdir)/emulparams/v850.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} ${GENSCRIPTS} v850 "$(tdir_v850)" ew65.c: $(srcdir)/emulparams/w65.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS} diff --git a/ld/Makefile.in b/ld/Makefile.in index be3c132d925..bae64430e35 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -668,6 +668,8 @@ POTFILES = $(CFILES) $(HFILES) $(EMULATION_FILES) # These all start with e so 'make clean' can find them. GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh "${srcdir}" "${libdir}" "${prefix}" "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed +ELF_DEPS = $(srcdir)/emultempl/elf32.em +ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em # We need this for automake to use YLWRAP. EXTRA_ld_new_SOURCES = deffilep.y @@ -1312,55 +1314,55 @@ ealpha.c: $(srcdir)/emulparams/alpha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/alpha.sc ${GEN_DEPENDS} ${GENSCRIPTS} alpha "$(tdir_alpha)" earcelf.c: $(srcdir)/emulparams/arcelf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} arcelf "$(tdir_arcelf)" earmelf.c: $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf "$(tdir_armelf)" earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb "$(tdir_armelfb)" earmelf_fbsd.c: $(srcdir)/emulparams/armelf_fbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)" earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux "$(tdir_armelf_linux)" earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)" earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_linux "$(tdir_armelfb_linux)" earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(srcdir)/emulparams/armelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_linux_eabi "$(tdir_armelfb_linux_abi)" earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_nbsd "$(tdir_armelf_nbsd)" earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \ $(srcdir)/emulparams/armelf_nbsd.sh \ $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelfb_nbsd "$(tdir_armelfb_nbsd)" earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ + $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" @@ -1377,7 +1379,7 @@ earmnbsd.c: $(srcdir)/emulparams/armnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnbsd "$(tdir_armnbsd)" earmnto.c: $(srcdir)/emulparams/armnto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnto "$(tdir_armnto)" earm_epoc_pe.c: $(srcdir)/emulparams/arm_epoc_pe.sh \ @@ -1387,28 +1389,28 @@ earmpe.c: $(srcdir)/emulparams/armpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} armpe "$(tdir_armpe)" earmsymbian.c: $(srcdir)/emulparams/armsymbian.sh \ - $(srcdir)/emulparams/armelf.sh $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emulparams/armelf.sh $(ELF_DEPS) \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/armbpabi.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armsymbian "$(tdir_armelf)" -eavr2.c: $(srcdir)/emulparams/avr2.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr2.c: $(srcdir)/emulparams/avr2.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr2 "$(tdir_avr2)" -eavr1.c: $(srcdir)/emulparams/avr1.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr1.c: $(srcdir)/emulparams/avr1.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr1 "$(tdir_avr2)" -eavr3.c: $(srcdir)/emulparams/avr3.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr3.c: $(srcdir)/emulparams/avr3.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr3 "$(tdir_avr2)" -eavr4.c: $(srcdir)/emulparams/avr4.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr4.c: $(srcdir)/emulparams/avr4.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr4 "$(tdir_avr2)" -eavr5.c: $(srcdir)/emulparams/avr5.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/avr.sc \ +eavr5.c: $(srcdir)/emulparams/avr5.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr5 "$(tdir_avr2)" ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \ @@ -1421,332 +1423,341 @@ ecrisaout.c: $(srcdir)/emulparams/crisaout.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/crisaout.sc ${GEN_DEPENDS} ${GENSCRIPTS} crisaout "$(tdir_cris)" ecriself.c: $(srcdir)/emulparams/criself.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} criself "$(tdir_cris)" ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} crislinux "$(tdir_cris)" ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d10velf "$(tdir_d10v)" ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30velf "$(tdir_d30v)" ed30v_o.c: $(srcdir)/emulparams/d30v_o.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_o "$(tdir_d30v)" ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_e "$(tdir_d30v)" edelta68.c: $(srcdir)/emulparams/delta68.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/delta68.sc ${GEN_DEPENDS} ${GENSCRIPTS} delta68 "$(tdir_delta68)" eelf32bfin.c: $(srcdir)/emulparams/bfin.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32_dlx.c: $(srcdir)/emulparams/elf32_dlx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_dlx "$(tdir_elf32_dlx)" eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32am33lin "$(tdir_mn10300)" eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.sh \ - $(srcdir)/emulparams/xtensa-config.sh $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emulparams/xtensa-config.sh $(ELF_DEPS) \ $(srcdir)/emultempl/xtensaelf.em $(INCDIR)/xtensa-config.h \ $(BFDDIR)/elf-bfd.h $(BFDDIR)/libbfd.h $(INCDIR)/elf/xtensa.h \ $(srcdir)/scripttempl/elfxtensa.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32xtensa "$(tdir_elf32xtensa)" eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32frv "$(tdir_frv)" eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" em32relf.c: $(srcdir)/emulparams/m32relf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32relf "$(tdir_m32r)" em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ - $(srcdir)/emultempl/elf32.em \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" -eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) $(srcdir)/emultempl/irix.em \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bsmip "$(tdir_elf32bsmip)" eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmip "$(tdir_elf32btsmip)" eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/crxelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32btsmipn32 "$(tdir_elf32btsmipn32)" eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ - $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32btsmipn32.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ltsmipn32 "$(tdir_elf32ltsmipn32)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmip "$(tdir_elf32ebmip)" eelf32ebmipvxworks.c: $(srcdir)/emulparams/elf32ebmipvxworks.sh \ - $(srcdir)/emulparams/elf32ebmip.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ebmipvxworks "$(tdir_elf32ebmipvxworks)" eelf32elmip.c: $(srcdir)/emulparams/elf32elmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmip "$(tdir_elf32elmip)" eelf32elmipvxworks.c: $(srcdir)/emulparams/elf32elmipvxworks.sh \ - $(srcdir)/emulparams/elf32elmip.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/emultempl/vxworks.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32elmipvxworks "$(tdir_elf32elmipvxworks)" eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ - $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" -eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppc "$(tdir_elf32lppc)" eelf32lppcnto.c: $(srcdir)/emulparams/elf32lppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppcnto "$(tdir_elf32lppcnto)" eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \ $(srcdir)/emulparams/elf32lppc.sh $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lppcsim "$(tdir_elf32lppcsim)" eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32ppcvxworks.c: $(srcdir)/emulparams/elf32ppcvxworks.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emulparams/vxworks.sh \ - $(srcdir)/emultempl/vxworks.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcvxworks "$(tdir_elf32ppcvxworks)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32openrisc "$(tdir_openrisc)" eelf32ppc.c: $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emultempl/ppc32elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc "$(tdir_elf32ppc)" eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppc_fbsd "$(tdir_elf32ppc_fbsd)" eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)" eelf32ppclinux.c: $(srcdir)/emulparams/elf32ppclinux.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ - $(srcdir)/emultempl/ppc32elf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" eelf64alpha_fbsd.c: $(srcdir)/emulparams/elf64alpha_fbsd.sh \ $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)" eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ $(srcdir)/emulparams/elf64alpha.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/alphaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/ia64elf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)" eelf64_ia64_fbsd.c: $(srcdir)/emulparams/elf64_ia64_fbsd.sh \ $(srcdir)/emulparams/elf64_ia64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/ia64elf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)" eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)" eelf64_sparc_fbsd.c: $(srcdir)/emulparams/elf64_sparc_fbsd.sh \ $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh $(srcdir)/emultempl/irix.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(ELF_DEPS) $(srcdir)/emultempl/mmix-elfnmmo.em \ $(srcdir)/emultempl/mmixelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64mmix "$(tdir_elf64mmix)" emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ - $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/mmo.em \ + $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em \ + $(srcdir)/emultempl/mmo.em \ $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} ${GENSCRIPTS} mmo "$(tdir_mmo)" eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ - $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ - $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf32bmipn32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)" eelf_x86_64_fbsd.c: $(srcdir)/emulparams/elf_x86_64_fbsd.sh \ $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)" eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \ $(srcdir)/emulparams/elf_i386.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_vxworks "$(tdir_elf_i386_vxworks)" eelf_s390.c: $(srcdir)/emulparams/elf_s390.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_s390 "$(tdir_elf_s390)" egld960.c: $(srcdir)/emulparams/gld960.sh \ $(srcdir)/emultempl/gld960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} @@ -1776,31 +1787,31 @@ eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxn "$(tdir_h8300sxn)" eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" eh8300self.c: $(srcdir)/emulparams/h8300self.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300self "$(tdir_h8300self)" eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" eh8300snelf.c: $(srcdir)/emulparams/h8300snelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300snelf "$(tdir_h8300snelf)" eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxelf "$(tdir_h8300sxelf)" eh8300sxnelf.c: $(srcdir)/emulparams/h8300sxnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxnelf "$(tdir_h8300sxnelf)" eh8500.c: $(srcdir)/emulparams/h8500.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8500.sc ${GEN_DEPENDS} @@ -1824,24 +1835,24 @@ ehp3hpux.c: $(srcdir)/emulparams/hp3hpux.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} hp3hpux "$(tdir_hp3hpux)" ehppaelf.c: $(srcdir)/emulparams/hppaelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/hppaelf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaelf "$(tdir_hppaelf)" ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppalinux "$(tdir_hppalinux)" ehppanbsd.c: $(srcdir)/emulparams/hppanbsd.sh \ $(srcdir)/emulparams/hppaelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppanbsd "$(tdir_hppanbsd)" ehppaobsd.c: $(srcdir)/emulparams/hppaobsd.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaobsd "$(tdir_hppaobsd)" ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)" ei386aout.c: $(srcdir)/emulparams/i386aout.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -1862,13 +1873,13 @@ ei386linux.c: $(srcdir)/emulparams/i386linux.sh \ $(srcdir)/emultempl/linux.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386linux "$(tdir_i386linux)" ei386lynx.c: $(srcdir)/emulparams/i386lynx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386lynx "$(tdir_i386lynx)" ei386mach.c: $(srcdir)/emulparams/i386mach.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386mach "$(tdir_i386mach)" ei386moss.c: $(srcdir)/emulparams/i386moss.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386moss "$(tdir_i386moss)" ei386msdos.c: $(srcdir)/emulparams/i386msdos.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i386msdos.sc ${GEN_DEPENDS} @@ -1877,10 +1888,10 @@ ei386nbsd.c: $(srcdir)/emulparams/i386nbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nbsd "$(tdir_i386nbsd)" ei386nto.c: $(srcdir)/emulparams/i386nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nto "$(tdir_i386nto)" ei386nw.c: $(srcdir)/emulparams/i386nw.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} ${GENSCRIPTS} i386nw "$(tdir_i386nw)" ei386pe.c: $(srcdir)/emulparams/i386pe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} @@ -1892,19 +1903,19 @@ elnk960.c: $(srcdir)/emulparams/lnk960.sh \ $(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} ${GENSCRIPTS} lnk960 "$(tdir_lnk960)" em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc11elf "$(tdir_m68hc11)" em68hc11elfb.c: $(srcdir)/emulparams/m68hc11elfb.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc11elfb "$(tdir_m68hc11b)" em68hc12elf.c: $(srcdir)/emulparams/m68hc12elf.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc12elf "$(tdir_m68hc12)" em68hc12elfb.c: $(srcdir)/emulparams/m68hc12elfb.sh \ - $(srcdir)/emultempl/m68hc1xelf.em $(srcdir)/emultempl/elf32.em \ + $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68hc12elfb "$(tdir_m68hc12b)" em68k4knbsd.c: $(srcdir)/emulparams/m68k4knbsd.sh \ @@ -1920,12 +1931,12 @@ em68kcoff.c: $(srcdir)/emulparams/m68kcoff.sh \ $(srcdir)/emultempl/m68kcoff.em $(srcdir)/scripttempl/m68kcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kcoff "$(tdir_m68kcoff)" em68kelf.c: $(srcdir)/emulparams/m68kelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/m68kelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kelf "$(tdir_m68kelf)" em68kelfnbsd.c: $(srcdir)/emulparams/m68kelfnbsd.sh \ $(srcdir)/emulparams/m68kelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/m68kelf.em \ + $(ELF_DEPS) $(srcdir)/emultempl/m68kelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kelfnbsd "$(tdir_m68kelfnbsd)" em68klinux.c: $(srcdir)/emulparams/m68klinux.sh \ @@ -1935,7 +1946,7 @@ em68knbsd.c: $(srcdir)/emulparams/m68knbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68knbsd "$(tdir_m68knbsd)" em68kpsos.c: $(srcdir)/emulparams/m68kpsos.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/psos.sc ${GEN_DEPENDS} ${GENSCRIPTS} m68kpsos "$(tdir_m68kpsos)" em88kbcs.c: $(srcdir)/emulparams/m88kbcs.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/m88kbcs.sc ${GEN_DEPENDS} @@ -1946,270 +1957,270 @@ emaxqcoff.c: $(srcdir)/emulparams/maxqcoff.sh \ emcorepe.c: $(srcdir)/emulparams/mcorepe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} mcorepe "$(tdir_mcorepe)" -emipsbig.c: $(srcdir)/emulparams/mipsbig.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipsbig -emipsbsd.c: $(srcdir)/emulparams/mipsbsd.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mipsbsd.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipsbsd -emipsidt.c: $(srcdir)/emulparams/mipsidt.sh \ - $(srcdir)/emultempl/mipsecoff.em $(srcdir)/emultempl/generic.em \ +emipsbig.c: $(srcdir)/emulparams/mipsbig.sh $(srcdir)/emultempl/generic.em \ $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbig "$(tdir_mipsbig)" +emipsbsd.c: $(srcdir)/emulparams/mipsbsd.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/scripttempl/mipsbsd.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipsbsd "$(tdir_mipsbsd)" +emipsidt.c: $(srcdir)/emulparams/mipsidt.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} mipsidt "$(tdir_mipsidt)" -emipsidtl.c: $(srcdir)/emulparams/mipsidtl.sh \ - $(srcdir)/emultempl/mipsecoff.em $(srcdir)/emultempl/generic.em \ - $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} +emipsidtl.c: $(srcdir)/emulparams/mipsidtl.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/emultempl/mipsecoff.em $(srcdir)/scripttempl/mips.sc \ + ${GEN_DEPENDS} ${GENSCRIPTS} mipsidtl "$(tdir_mipsidtl)" -emipslit.c: $(srcdir)/emulparams/mipslit.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} +emipslit.c: $(srcdir)/emulparams/mipslit.sh $(srcdir)/emultempl/generic.em \ + $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} ${GENSCRIPTS} mipslit "$(tdir_mipslit)" -emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ +emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/mips.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipslnews -emipspe.c: $(srcdir)/emulparams/mipspe.sh \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mipspe "$(tdir_mips)" + ${GENSCRIPTS} mipslnews "$(tdir_mipslnews)" +emipspe.c: $(srcdir)/emulparams/mipspe.sh $(srcdir)/emultempl/pe.em \ + $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mipspe "$(tdir_mipspe)" emn10300.c: $(srcdir)/emulparams/mn10300.sh \ $(srcdir)/emulparams/mn10200.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10300 "$(tdir_mn10300)" emn10200.c: $(srcdir)/emulparams/mn10200.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emsp430x110.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" msp430all emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1101.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1101 "$(tdir_msp430x1101)" msp430all emsp430x1111.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" msp430all emsp430x1121.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1121 "$(tdir_msp430x1121)" msp430all emsp430x1122.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1122 "$(tdir_msp430x1122)" msp430all emsp430x1132.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1132 "$(tdir_msp430x1132)" msp430all emsp430x122.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" msp430all emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1222.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" msp430all emsp430x1232.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1232 "$(tdir_msp430x1232)" msp430all emsp430x133.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" msp430all emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1331.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" msp430all emsp430x1351.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1351 "$(tdir_msp430x1351)" msp430all emsp430x147.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x147 "$(tdir_msp430x147)" msp430all emsp430x148.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x148 "$(tdir_msp430x148)" msp430all emsp430x149.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x149 "$(tdir_msp430x149)" msp430all emsp430x155.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x155 "$(tdir_msp430x155)" msp430all emsp430x156.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x156 "$(tdir_msp430x156)" msp430all emsp430x157.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" msp430all emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x1610.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1610 "$(tdir_msp430x1610)" msp430all emsp430x1611.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1611 "$(tdir_msp430x1611)" msp430all emsp430x1612.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1612 "$(tdir_msp430x1612)" msp430all emsp430x2101.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2101 "$(tdir_msp430x2101)" msp430all emsp430x2111.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2111 "$(tdir_msp430x2111)" msp430all emsp430x2121.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2121 "$(tdir_msp430x2121)" msp430all emsp430x2131.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x2131 "$(tdir_msp430x2131)" msp430all emsp430x311.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x311 "$(tdir_msp430x311)" msp430all emsp430x312.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x312 "$(tdir_msp430x312)" msp430all emsp430x313.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x313 "$(tdir_msp430x313)" msp430all emsp430x314.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x314 "$(tdir_msp430x314)" msp430all emsp430x315.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x315 "$(tdir_msp430x315)" msp430all emsp430x323.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x323 "$(tdir_msp430x323)" msp430all emsp430x325.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x325 "$(tdir_msp430x325)" msp430all emsp430x336.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x336 "$(tdir_msp430x336)" msp430all emsp430x337.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430_3.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x337 "$(tdir_msp430x337)" msp430all emsp430x412.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all emsp430xE423.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE423 "$(tdir_msp430xE423)" msp430all emsp430xE425.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE425 "$(tdir_msp430xE425)" msp430all emsp430xE427.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE427 "$(tdir_msp430xE427)" msp430all emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all emsp430xG437.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG437 "$(tdir_msp430xG437)" msp430all emsp430xG438.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG438 "$(tdir_msp430xG438)" msp430all emsp430xG439.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG439 "$(tdir_msp430xG439)" msp430all emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all enews.c: $(srcdir)/emulparams/news.sh \ @@ -2223,7 +2234,7 @@ eor32.c: $(srcdir)/emulparams/or32.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS} ${GENSCRIPTS} or32 "$(tdir_or32)" eor32elf.c: $(srcdir)/emulparams/or32elf.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} or32elf "$(tdir_or32elf)" epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -2232,22 +2243,22 @@ epdp11.c: $(srcdir)/emulparams/pdp11.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} pdp11 "$(tdir_pdp11)" epjelf.c: $(srcdir)/emulparams/pjelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjelf "$(tdir_pjelf)" -epjlelf.c: $(srcdir)/emulparams/pjlelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} +epjlelf.c: $(srcdir)/emulparams/pjlelf.sh $(srcdir)/emulparams/pjelf.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjlelf "$(tdir_pjlelf)" eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \ $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcmacos "$(tdir_ppcmacos)" eppcnw.c: $(srcdir)/emulparams/ppcnw.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/nw.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcnw "$(tdir_ppcnw)" eppcpe.c: $(srcdir)/emulparams/ppcpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/ppcpe.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcpe "$(tdir_ppcpe)" eppclynx.c: $(srcdir)/emulparams/ppclynx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppclynx "$(tdir_ppclynx)" eriscix.c: $(srcdir)/emulparams/riscix.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} @@ -2256,90 +2267,90 @@ esh.c: $(srcdir)/emulparams/sh.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} ${GENSCRIPTS} sh "$(tdir_sh)" eshelf.c: $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf "$(tdir_shelf)" eshelf32.c: $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32 "$(tdir_shelf32)" eshelf32_linux.c: $(srcdir)/emulparams/shelf32_linux.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_linux "$(tdir_shelf32_linux)" eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_nbsd "$(tdir_shelf32_nbsd)" eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf64 "$(tdir_shelf64)" eshelf64_nbsd.c: $(srcdir)/emulparams/shelf64_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \ $(srcdir)/emulparams/shlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_linux "$(tdir_shelf_linux)" eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_linux "$(tdir_shlelf_linux)" eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nbsd "$(tdir_shelf_nbsd)" eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_nto)" eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ $(srcdir)/emulparams/shelf_nbsd.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" -eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf "$(tdir_shlelf)" +eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ $(srcdir)/emulparams/shelf.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlsymbian "$(tdir_shlelf)" eshlelf32.c: $(srcdir)/emulparams/shlelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h $(srcdir)/emulparams/shelf32.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32 "$(tdir_shlelf32)" eshlelf32_linux.c: $(srcdir)/emulparams/shlelf32_linux.sh \ $(srcdir)/emulparams/shelf32_linux.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32_linux "$(tdir_shlelf32_linux)" eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ $(BFDDIR)/libbfd.h $(INCDIR)/libiberty.h \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf32_nbsd "$(tdir_shlelf32_nbsd)" eshlelf64.c: $(srcdir)/emulparams/shlelf64.sh \ $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf64 "$(tdir_shlelf64)" eshlelf64_nbsd.c: $(srcdir)/emulparams/shlelf64_nbsd.sh \ $(srcdir)/emulparams/shelf64_nbsd.sh \ $(srcdir)/emulparams/shelf32_nbsd.sh $(srcdir)/emulparams/shelf32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" eshl.c: $(srcdir)/emulparams/shl.sh \ $(srcdir)/emulparams/sh.sh \ @@ -2400,7 +2411,7 @@ evsta.c: $(srcdir)/emulparams/vsta.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} vsta "$(tdir_vsta)" ev850.c: $(srcdir)/emulparams/v850.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} + $(ELF_DEPS) $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} ${GENSCRIPTS} v850 "$(tdir_v850)" ew65.c: $(srcdir)/emulparams/w65.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS} diff --git a/ld/emulparams/elf32bmip.sh b/ld/emulparams/elf32bmip.sh index 614856573fa..e51a70cce7e 100644 --- a/ld/emulparams/elf32bmip.sh +++ b/ld/emulparams/elf32bmip.sh @@ -46,5 +46,6 @@ OTHER_SECTIONS=' ARCH=mips MACHINE= TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=mipself GENERATE_SHLIB_SCRIPT=yes GENERATE_PIE_SCRIPT=yes diff --git a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh index b81ac49ec30..507a88e860f 100644 --- a/ld/emulparams/elf32bmipn32-defs.sh +++ b/ld/emulparams/elf32bmipn32-defs.sh @@ -11,6 +11,7 @@ BIG_OUTPUT_FORMAT="elf32-bigmips" LITTLE_OUTPUT_FORMAT="elf32-littlemips" TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=mipself case "$EMULATION_NAME" in elf32*n32*) ELFSIZE=32 ;; diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index ffc5f24eef1..b834bc56d9c 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1730,6 +1730,7 @@ cat >>e${EMULATION_NAME}.c <<EOF #define OPTION_GROUP (OPTION_ENABLE_NEW_DTAGS + 1) #define OPTION_EH_FRAME_HDR (OPTION_GROUP + 1) #define OPTION_EXCLUDE_LIBS (OPTION_EH_FRAME_HDR + 1) +#define OPTION_HASH_STYLE (OPTION_EXCLUDE_LIBS + 1) static void gld${EMULATION_NAME}_add_options @@ -1746,6 +1747,7 @@ cat >>e${EMULATION_NAME}.c <<EOF {"enable-new-dtags", no_argument, NULL, OPTION_ENABLE_NEW_DTAGS}, {"eh-frame-hdr", no_argument, NULL, OPTION_EH_FRAME_HDR}, {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS}, + {"hash-style", required_argument, NULL, OPTION_HASH_STYLE}, {"Bgroup", no_argument, NULL, OPTION_GROUP}, EOF fi @@ -1802,6 +1804,22 @@ cat >>e${EMULATION_NAME}.c <<EOF add_excluded_libs (optarg); break; + case OPTION_HASH_STYLE: + link_info.emit_hash = FALSE; + link_info.emit_gnu_hash = FALSE; + if (strcmp (optarg, "sysv") == 0) + link_info.emit_hash = TRUE; + else if (strcmp (optarg, "gnu") == 0) + link_info.emit_gnu_hash = TRUE; + else if (strcmp (optarg, "both") == 0) + { + link_info.emit_hash = TRUE; + link_info.emit_gnu_hash = TRUE; + } + else + einfo (_("%P%F: invalid hash style \`%s'\n"), optarg); + break; + case 'z': if (strcmp (optarg, "initfirst") == 0) link_info.flags_1 |= (bfd_vma) DF_1_INITFIRST; @@ -1884,6 +1902,7 @@ cat >>e${EMULATION_NAME}.c <<EOF fprintf (file, _(" --disable-new-dtags\tDisable new dynamic tags\n")); fprintf (file, _(" --enable-new-dtags\tEnable new dynamic tags\n")); fprintf (file, _(" --eh-frame-hdr\tCreate .eh_frame_hdr section\n")); + fprintf (file, _(" --hash-style=STYLE\tSet hash style to sysv, gnu or both\n")); fprintf (file, _(" -z combreloc\t\tMerge dynamic relocs into one section and sort\n")); fprintf (file, _(" -z defs\t\tReport unresolved symbols in object files.\n")); fprintf (file, _(" -z execstack\t\tMark executable as requiring executable stack\n")); diff --git a/ld/emultempl/irix.em b/ld/emultempl/irix.em index 5dfc2a44c5a..0fd9be9974a 100644 --- a/ld/emultempl/irix.em +++ b/ld/emultempl/irix.em @@ -39,3 +39,4 @@ irix_after_open (void) EOF LDEMUL_AFTER_OPEN=irix_after_open +. "${srcdir}/emultempl/mipself.em" diff --git a/ld/ld.texinfo b/ld/ld.texinfo index fc2413ee600..830b755a19b 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -1871,6 +1871,14 @@ time it takes the linker to perform its tasks, at the expense of increasing the linker's memory requirements. Similarly reducing this value can reduce the memory requirements at the expense of speed. +@kindex --hash-style=@var{style} +@item --hash-style=@var{style} +Set the type of linker's hash table(s). @var{style} can be either +@code{sysv} for classic ELF @code{.hash} section, @code{gnu} for +new style GNU @code{.gnu.hash} section or @code{both} for both +the classic ELF @code{.hash} and new style GNU @code{.gnu.hash} +hash tables. The default is @code{sysv}. + @kindex --reduce-memory-overheads @item --reduce-memory-overheads This option reduces memory requirements at ld runtime, at the expense of diff --git a/ld/ldmain.c b/ld/ldmain.c index db87a40b6aa..10627d08526 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -304,6 +304,8 @@ main (int argc, char **argv) link_info.create_object_symbols_section = NULL; link_info.gc_sym_list = NULL; link_info.base_file = NULL; + link_info.emit_hash = TRUE; + link_info.emit_gnu_hash = FALSE; /* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init and _fini symbols. We are compatible. */ link_info.init_function = "_init"; diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index fe7f5da0b15..3615f193209 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -262,6 +262,7 @@ SECTIONS ${INITIAL_READONLY_SECTIONS} ${TEXT_DYNAMIC+${DYNAMIC}} .hash ${RELOCATING-0} : { *(.hash) } + .gnu.hash ${RELOCATING-0} : { *(.gnu.hash) } .dynsym ${RELOCATING-0} : { *(.dynsym) } .dynstr ${RELOCATING-0} : { *(.dynstr) } .gnu.version ${RELOCATING-0} : { *(.gnu.version) } diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-elf/mips-elf.exp index b5ddaefd58f..1afb94c13d0 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -137,6 +137,10 @@ if $has_newabi { run_dump_test "emit-relocs-1" } +run_dump_test "hash1a" +run_dump_test "hash1b" +run_dump_test "hash1c" + if {[istarget mips*-*-linux*]} { # The number of symbols that are always included in the symbol table # for these tests. The 5 are: diff --git a/ld/testsuite/ld-powerpc/tlsso.g b/ld/testsuite/ld-powerpc/tlsso.g index caef9dd503e..6113155fab9 100644 --- a/ld/testsuite/ld-powerpc/tlsso.g +++ b/ld/testsuite/ld-powerpc/tlsso.g @@ -7,7 +7,7 @@ .*: +file format elf64-powerpc Contents of section \.got: -.* 00000000 000187f0 00000000 00000000 .* +.* 00000000 000187b8 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* diff --git a/ld/testsuite/ld-powerpc/tlsso.r b/ld/testsuite/ld-powerpc/tlsso.r index 8501c6fe9c4..713f27c6dea 100644 --- a/ld/testsuite/ld-powerpc/tlsso.r +++ b/ld/testsuite/ld-powerpc/tlsso.r @@ -49,9 +49,9 @@ Relocation section '\.rela\.dyn' at offset .* contains 16 entries: [0-9a-f ]+R_PPC64_TPREL16 +0+60 le0 \+ 0 [0-9a-f ]+R_PPC64_TPREL16_HA +0+68 le1 \+ 0 [0-9a-f ]+R_PPC64_TPREL16_LO +0+68 le1 \+ 0 -[0-9a-f ]+R_PPC64_TPREL16_DS +0+10668 \.tdata \+ 28 -[0-9a-f ]+R_PPC64_TPREL16_HA +0+10668 \.tdata \+ 30 -[0-9a-f ]+R_PPC64_TPREL16_LO +0+10668 \.tdata \+ 30 +[0-9a-f ]+R_PPC64_TPREL16_DS +0+10630 \.tdata \+ 28 +[0-9a-f ]+R_PPC64_TPREL16_HA +0+10630 \.tdata \+ 30 +[0-9a-f ]+R_PPC64_TPREL16_LO +0+10630 \.tdata \+ 30 [0-9a-f ]+R_PPC64_DTPMOD64 +0+ [0-9a-f ]+R_PPC64_DTPMOD64 +0+ [0-9a-f ]+R_PPC64_DTPREL64 +0+ diff --git a/ld/testsuite/ld-powerpc/tlsso32.d b/ld/testsuite/ld-powerpc/tlsso32.d index 45432db33e3..dafca7d34f6 100644 --- a/ld/testsuite/ld-powerpc/tlsso32.d +++ b/ld/testsuite/ld-powerpc/tlsso32.d @@ -42,5 +42,5 @@ Disassembly of section \.got: .* <\.got>: \.\.\. .*: 4e 80 00 21 blrl -.*: 00 01 04 38 .* +.*: 00 01 04 00 .* \.\.\. diff --git a/ld/testsuite/ld-powerpc/tlsso32.g b/ld/testsuite/ld-powerpc/tlsso32.g index 7014419a691..c097ffa3451 100644 --- a/ld/testsuite/ld-powerpc/tlsso32.g +++ b/ld/testsuite/ld-powerpc/tlsso32.g @@ -9,5 +9,5 @@ Contents of section \.got: .* 00000000 00000000 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* -.* 00000000 4e800021 00010438 00000000 .* +.* 00000000 4e800021 00010400 00000000 .* .* 00000000 .* diff --git a/ld/testsuite/ld-powerpc/tlsso32.r b/ld/testsuite/ld-powerpc/tlsso32.r index c0c120c635b..fec5ebba14d 100644 --- a/ld/testsuite/ld-powerpc/tlsso32.r +++ b/ld/testsuite/ld-powerpc/tlsso32.r @@ -52,9 +52,9 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries: [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0 [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0 [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0 -[0-9a-f ]+R_PPC_TPREL16 +0+1041c +\.tdata \+ 10430 -[0-9a-f ]+R_PPC_TPREL16_HA +0+1041c +\.tdata \+ 10434 -[0-9a-f ]+R_PPC_TPREL16_LO +0+1041c +\.tdata \+ 10434 +[0-9a-f ]+R_PPC_TPREL16 +0+103e4 +\.tdata \+ 103f8 +[0-9a-f ]+R_PPC_TPREL16_HA +0+103e4 +\.tdata \+ 103fc +[0-9a-f ]+R_PPC_TPREL16_LO +0+103e4 +\.tdata \+ 103fc [0-9a-f ]+R_PPC_DTPMOD32 +0+ [0-9a-f ]+R_PPC_DTPREL32 +0+ [0-9a-f ]+R_PPC_DTPMOD32 +0+ diff --git a/ld/testsuite/ld-powerpc/tlstocso.g b/ld/testsuite/ld-powerpc/tlstocso.g index b5d7d647cc2..3d59c435f9d 100644 --- a/ld/testsuite/ld-powerpc/tlstocso.g +++ b/ld/testsuite/ld-powerpc/tlstocso.g @@ -7,7 +7,7 @@ .*: +file format elf64-powerpc Contents of section \.got: -.* 00000000 00018738 00000000 00000000 .* +.* 00000000 00018700 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* .* 00000000 00000000 00000000 00000000 .* |