From: Alan Modra Date: Tue, 1 Feb 2011 12:25:54 +0000 (+0000) Subject: backport from mainline X-Git-Tag: binutils-2_21_1~225 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8f2afa8903cc1ce28bf250cda4ebb027fa72f0f3;p=thirdparty%2Fbinutils-gdb.git backport from mainline --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5eb0e1e1bed..2ca6bc60cd6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,96 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-22 Richard Sandiford + * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Ignore + common sections too. + + 2011-01-14 Alan Modra + * bfd.c (bfd_perror): Flush stdout before and stderr after printing + error. + (_bfd_default_error_handler): Likewise. + * elf.c (print_segment_map): Likewise. + * libbfd.c (warn_deprecated): Likewise. + * som.c (som_sizeof_headers): No need to do so here. + * coff-i860.c: Replace use of printf for error messages with + _bfd_error_handler. + * coff-ppc.c: Likewise. + * coff-sh.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-dlx.c: Likewise. + * elf32-mep.c: Likewise. + * elf32-v850.c: Likewise. + * mach-o.c: Likewise. + * pef.c: Likewise. + + 2010-12-24 Alan Modra + * compress.c (decompress_contents): Style. + (bfd_get_full_section_contents): Do not decompress directly into + caller buffer or directly return cached section contents. + Check malloc return for compressed_buffer. + + 2010-12-13 Alan Modra + * aoutx.h (aout_link_check_ar_symbols): Formatting. + * cofflink.c (coff_link_check_ar_symbols): Likewise. + * elflink.c (elf_link_add_archive_symbols): Likewise. + * pdp11.c (aout_link_check_ar_symbols): Likewise. + * xcofflink.c (xcoff_link_check_dynamic_ar_symbols, + xcoff_link_check_dynamic_ar_symbols): Likewise. + * aoutx.h (aout_link_check_archive_element): Simplify code dealing + with add_archive_element substitute BFD. + * cofflink.c (coff_link_check_archive_element): Likewise. + * ecoff.c (ecoff_link_check_archive_element): Likewise. + (ecoff_link_add_archive_symbols): Likewise. + * linker.c (generic_link_check_archive_element): Likewise. + * pdp11.c (aout_link_check_archive_element): Likewise. + * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise. + * xcofflink.c (xcoff_link_check_archive_element): Likewise. + * aoutx.h (aout_link_check_archive_element): Free symbols from old + bfd if !keep_memory. + * cofflink.c (coff_link_check_archive_element): Likewise. + * pdp11.c (aout_link_check_archive_element): Likewise. + * xcofflink.c (xcoff_link_check_archive_element): Likewise. + + 2010-12-12 H.J. Lu + * elflink.c (elf_link_add_archive_symbols): Remove subsbfd. + + 2010-12-06 Dmitry Gorbachev + PR ld/12288 + * plugin.c (message): Add putchar for the trailing `\n'. + + 2010-12-04 Alan Modra + PR ld/12277 + * elflink.c (elf_link_output_extsym): Set bfd_error on symbol + and section errors. Allow better translation of error messages. + + 2010-11-24 Joel Brobecker + * Makefile.am (OPTIONAL_BACKENDS): Add rs6000-core.lo. + (OPTIONAL_BACKENDS_CFILES): Add rs6000-core.c. + * Makefile.in: Regenerate. + + 2010-11-24 Alan Modra + PR ld/12253 + * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Correct + DW_EH_PE_datarel handling. Truncate .eh_frame_hdr address to + ptr_size. + + 2010-11-08 Alan Modra + * hash.c (bfd_hash_hash): Extract from.. + (bfd_hash_lookup): ..here. + (bfd_hash_rename): New function. + * section.c (bfd_rename_section): New function. + * bfd-in.h (bfd_hash_rename): Declare. + * bfd-in2.h: Regenerate. + * elf.c (_bfd_elf_make_section_from_shdr): Rename input sections + when compressing or decompressing. Don't assert name match. + * elf64-hppa.c (get_reloc_section): Don't assert name match. + * elfxx-ia64.c (get_reloc_section): Likewise. + + 2010-11-05 Joseph Myers + * elf-attrs.c (_bfd_elf_merge_unknown_attribute_low, + _bfd_elf_merge_unknown_attribute_list): Correct test for matching + string attributes. + 2011-02-01 Alan Modra * elf64-ppc.c (ppc64_elf_next_input_section): Use elf_gp value diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 343125374a2..9c454cc1c81 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -653,6 +653,7 @@ OPTIONAL_BACKENDS = \ irix-core.lo \ lynx-core.lo \ osf-core.lo \ + rs6000-core.lo \ sco5-core.lo \ trad-core.lo @@ -663,6 +664,7 @@ OPTIONAL_BACKENDS_CFILES = \ irix-core.c \ lynx-core.c \ osf-core.c \ + rs6000-core.c \ sco5-core.c \ trad-core.c diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 183ae9691ac..2cbf6a0e466 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -954,6 +954,7 @@ OPTIONAL_BACKENDS = \ irix-core.lo \ lynx-core.lo \ osf-core.lo \ + rs6000-core.lo \ sco5-core.lo \ trad-core.lo @@ -964,6 +965,7 @@ OPTIONAL_BACKENDS_CFILES = \ irix-core.c \ lynx-core.c \ osf-core.c \ + rs6000-core.c \ sco5-core.c \ trad-core.c @@ -1464,6 +1466,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reloc16.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/riscix.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rs6000-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sco5-core.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/section.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Plo@am__quote@ diff --git a/bfd/aoutx.h b/bfd/aoutx.h index efa9d474319..7ca221ecd6d 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -3305,8 +3305,8 @@ aout_link_check_ar_symbols (bfd *abfd, continue; } - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -3333,8 +3333,8 @@ aout_link_check_ar_symbols (bfd *abfd, outside BFD. We assume that we should link in the object file. This is done for the -u option in the linker. */ - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -3343,8 +3343,8 @@ aout_link_check_ar_symbols (bfd *abfd, symbol. It is already on the undefs list. */ h->type = bfd_link_hash_common; h->u.c.p = (struct bfd_link_hash_common_entry *) - bfd_hash_allocate (&info->hash->table, - sizeof (struct bfd_link_hash_common_entry)); + bfd_hash_allocate (&info->hash->table, + sizeof (struct bfd_link_hash_common_entry)); if (h->u.c.p == NULL) return FALSE; @@ -3382,8 +3382,8 @@ aout_link_check_ar_symbols (bfd *abfd, it if the current link symbol is common. */ if (h->type == bfd_link_hash_undefined) { - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -3404,27 +3404,36 @@ aout_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded) { - bfd *subsbfd = NULL; + bfd *oldbfd; + bfd_boolean needed; - if (! aout_get_external_symbols (abfd)) + if (!aout_get_external_symbols (abfd)) return FALSE; - if (! aout_link_check_ar_symbols (abfd, info, pneeded, &subsbfd)) + oldbfd = abfd; + if (!aout_link_check_ar_symbols (abfd, info, pneeded, &abfd)) return FALSE; - if (*pneeded) + needed = *pneeded; + if (needed) { /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (subsbfd && !aout_get_external_symbols (subsbfd)) - return FALSE; - if (! aout_link_add_symbols (subsbfd ? subsbfd : abfd, info)) + if (abfd != oldbfd) + { + if (!info->keep_memory + && !aout_link_free_symbols (oldbfd)) + return FALSE; + if (!aout_get_external_symbols (abfd)) + return FALSE; + } + if (!aout_link_add_symbols (abfd, info)) return FALSE; } - if (! info->keep_memory || ! *pneeded) + if (!info->keep_memory || !needed) { - if (! aout_link_free_symbols (abfd)) + if (!aout_link_free_symbols (abfd)) return FALSE; } diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index cfa5225325b..63fcdc9bb42 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -404,6 +404,10 @@ extern struct bfd_hash_entry *bfd_hash_lookup extern struct bfd_hash_entry *bfd_hash_insert (struct bfd_hash_table *, const char *, unsigned long); +/* Rename an entry in a hash table. */ +extern void bfd_hash_rename + (struct bfd_hash_table *, const char *, struct bfd_hash_entry *); + /* Replace an entry in a hash table. */ extern void bfd_hash_replace (struct bfd_hash_table *, struct bfd_hash_entry *old, diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index c6a54b5acbe..f3e2b457913 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -411,6 +411,10 @@ extern struct bfd_hash_entry *bfd_hash_lookup extern struct bfd_hash_entry *bfd_hash_insert (struct bfd_hash_table *, const char *, unsigned long); +/* Rename an entry in a hash table. */ +extern void bfd_hash_rename + (struct bfd_hash_table *, const char *, struct bfd_hash_entry *); + /* Replace an entry in a hash table. */ extern void bfd_hash_replace (struct bfd_hash_table *, struct bfd_hash_entry *old, @@ -1713,6 +1717,9 @@ asection *bfd_make_section (bfd *, const char *name); bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags); +void bfd_rename_section + (bfd *abfd, asection *sec, const char *newname); + void bfd_map_over_sections (bfd *abfd, void (*func) (bfd *abfd, asection *sect, void *obj), diff --git a/bfd/bfd.c b/bfd/bfd.c index a9ce7cc226b..77582ec82fe 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -1,6 +1,6 @@ /* Generic BFD library interface and support routines. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Written by Cygnus Support. @@ -523,10 +523,12 @@ DESCRIPTION void bfd_perror (const char *message) { + fflush (stdout); if (message == NULL || *message == '\0') fprintf (stderr, "%s\n", bfd_errmsg (bfd_get_error ())); else fprintf (stderr, "%s: %s\n", message, bfd_errmsg (bfd_get_error ())); + fflush (stderr); } /* @@ -723,6 +725,7 @@ _bfd_default_error_handler (const char *fmt, ...) va_end (ap); putc ('\n', stderr); + fflush (stderr); } /* This is a function pointer to the routine which should handle BFD diff --git a/bfd/coff-i860.c b/bfd/coff-i860.c index b7ada164747..d50b070eff8 100644 --- a/bfd/coff-i860.c +++ b/bfd/coff-i860.c @@ -1,6 +1,6 @@ /* BFD back-end for Intel i860 COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2007, 2008, 2010 Free Software Foundation, Inc. + 2003, 2004, 2005, 2007, 2008, 2010, 2011 Free Software Foundation, Inc. Created mostly by substituting "860" for "386" in coff-i386.c Harry Dolan , October 1995 @@ -144,7 +144,7 @@ coff_i860_reloc_nyi (bfd *abfd ATTRIBUTE_UNUSED, char **error_message ATTRIBUTE_UNUSED) { reloc_howto_type *howto = reloc_entry->howto; - fprintf (stderr, _("Relocation `%s' not yet implemented\n"), howto->name); + (*_bfd_error_handler) (_("relocation `%s' not yet implemented"), howto->name); return bfd_reloc_notsupported; } diff --git a/bfd/coff-ppc.c b/bfd/coff-ppc.c index 06eed247c35..69e10d8c667 100644 --- a/bfd/coff-ppc.c +++ b/bfd/coff-ppc.c @@ -1,6 +1,6 @@ /* BFD back-end for PowerPC Microsoft Portable Executable files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Original version pieced together by Kim Knuttila (krk@cygnus.com) @@ -1843,10 +1843,9 @@ ppc_coff_rtype2howto (relent, internal) howto = ppc_coff_howto_table + IMAGE_REL_PPC_TOCREL16; break; default: - fprintf (stderr, - _("Warning: Unsupported reloc %s [%d] used -- it may not work.\n"), - ppc_coff_howto_table[r_type].name, - r_type); + (*_bfd_error_handler) (_("warning: unsupported reloc %s [%d] used -- it may not work"), + ppc_coff_howto_table[r_type].name, + r_type); howto = ppc_coff_howto_table + r_type; break; } @@ -1916,10 +1915,9 @@ coff_ppc_rtype_to_howto (abfd, sec, rel, h, sym, addendp) howto = ppc_coff_howto_table + r_type; break; default: - fprintf (stderr, - _("Warning: Unsupported reloc %s [%d] used -- it may not work.\n"), - ppc_coff_howto_table[r_type].name, - r_type); + (*_bfd_error_handler) (_("warning: unsupported reloc %s [%d] used -- it may not work"), + ppc_coff_howto_table[r_type].name, + r_type); howto = ppc_coff_howto_table + r_type; break; } diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c index 28ac0aba462..b77af7c394a 100644 --- a/bfd/coff-sh.c +++ b/bfd/coff-sh.c @@ -1,6 +1,7 @@ /* BFD back-end for Renesas Super-H COFF binaries. Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011 + Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Steve Chamberlain, . Relaxing code written by Ian Lance Taylor, . @@ -517,7 +518,7 @@ sh_coff_reloc_type_lookup (abfd, code) if (sh_reloc_map[i].bfd_reloc_val == code) return &sh_coff_howtos[(int) sh_reloc_map[i].shcoff_reloc_val]; - fprintf (stderr, "SH Error: unknown reloc type %d\n", code); + (*_bfd_error_handler) (_("SH Error: unknown reloc type %d"), code); return NULL; } diff --git a/bfd/cofflink.c b/bfd/cofflink.c index a28d396919a..33de7fe3cc8 100644 --- a/bfd/cofflink.c +++ b/bfd/cofflink.c @@ -244,8 +244,8 @@ coff_link_check_ar_symbols (bfd *abfd, if (h != (struct bfd_link_hash_entry *) NULL && h->type == bfd_link_hash_undefined) { - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -269,29 +269,38 @@ coff_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded) { - bfd *subsbfd = NULL; + bfd *oldbfd; + bfd_boolean needed; - if (! _bfd_coff_get_external_symbols (abfd)) - return FALSE; - - if (! coff_link_check_ar_symbols (abfd, info, pneeded, &subsbfd)) - return FALSE; - - /* Potentially, the add_archive_element hook may have set a - substitute BFD for us. */ - if (*pneeded - && subsbfd - && ! _bfd_coff_get_external_symbols (subsbfd)) + if (!_bfd_coff_get_external_symbols (abfd)) return FALSE; - if (*pneeded - && ! coff_link_add_symbols (subsbfd ? subsbfd : abfd, info)) + oldbfd = abfd; + if (!coff_link_check_ar_symbols (abfd, info, pneeded, &abfd)) return FALSE; - if ((! info->keep_memory || ! *pneeded) - && ! _bfd_coff_free_symbols (abfd)) - return FALSE; + needed = *pneeded; + if (needed) + { + /* Potentially, the add_archive_element hook may have set a + substitute BFD for us. */ + if (abfd != oldbfd) + { + if (!info->keep_memory + && !_bfd_coff_free_symbols (oldbfd)) + return FALSE; + if (!_bfd_coff_get_external_symbols (abfd)) + return FALSE; + } + if (!coff_link_add_symbols (abfd, info)) + return FALSE; + } + if (!info->keep_memory || !needed) + { + if (!_bfd_coff_free_symbols (abfd)) + return FALSE; + } return TRUE; } diff --git a/bfd/compress.c b/bfd/compress.c index bdaa3c47510..a526ea99c79 100644 --- a/bfd/compress.c +++ b/bfd/compress.c @@ -59,7 +59,7 @@ decompress_contents (bfd_byte *compressed_buffer, rc = inflateReset (&strm); } rc = inflateEnd (&strm); - return rc != Z_OK || strm.avail_out != 0 ? FALSE: TRUE; + return rc == Z_OK && strm.avail_out == 0; } #endif @@ -157,8 +157,8 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr) { bfd_size_type sz = sec->rawsize ? sec->rawsize : sec->size; bfd_byte *p = *ptr; - bfd_boolean need_free, ret; #ifdef HAVE_ZLIB_H + bfd_boolean ret; bfd_size_type compressed_size; bfd_size_type uncompressed_size; bfd_size_type rawsize; @@ -177,88 +177,77 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr) p = (bfd_byte *) bfd_malloc (sz); if (p == NULL) return FALSE; - need_free = TRUE; - *ptr = p; } - else - need_free = FALSE; - ret = bfd_get_section_contents (abfd, sec, p, 0, sz); - if (!ret && need_free) - free (p); - return ret; - - case COMPRESS_SECTION_DONE: - if (p) - memcpy (p, sec->contents, sz); - else - *ptr = sec->contents; + if (!bfd_get_section_contents (abfd, sec, p, 0, sz)) + { + if (*ptr != p) + free (p); + return FALSE; + } + *ptr = p; return TRUE; case DECOMPRESS_SECTION_SIZED: - break; - - default: - abort (); - } - #ifndef HAVE_ZLIB_H - bfd_set_error (bfd_error_invalid_operation); - return FALSE; + bfd_set_error (bfd_error_invalid_operation); + return FALSE; #else - /* Read in the full compressed section contents. */ - uncompressed_size = sec->size; - compressed_size = sec->compressed_size; - compressed_buffer = (bfd_byte *) bfd_malloc (compressed_size); - rawsize = sec->rawsize; - /* Clear rawsize, set size to compressed size and set compress_status - to COMPRESS_SECTION_NONE. If the compressed size is bigger than - the uncompressed size, bfd_get_section_contents will fail. */ - sec->rawsize = 0; - sec->size = compressed_size; - sec->compress_status = COMPRESS_SECTION_NONE; - ret = bfd_get_section_contents (abfd, sec, compressed_buffer, - 0, compressed_size); - /* Restore rawsize and size. */ - sec->rawsize = rawsize; - sec->size = uncompressed_size; - if (!ret) - { -fail_compressed: + /* Read in the full compressed section contents. */ + uncompressed_size = sec->size; + compressed_size = sec->compressed_size; + compressed_buffer = (bfd_byte *) bfd_malloc (compressed_size); + if (compressed_buffer == NULL) + return FALSE; + rawsize = sec->rawsize; + /* Clear rawsize, set size to compressed size and set compress_status + to COMPRESS_SECTION_NONE. If the compressed size is bigger than + the uncompressed size, bfd_get_section_contents will fail. */ + sec->rawsize = 0; + sec->size = compressed_size; + sec->compress_status = COMPRESS_SECTION_NONE; + ret = bfd_get_section_contents (abfd, sec, compressed_buffer, + 0, compressed_size); + /* Restore rawsize and size. */ + sec->rawsize = rawsize; + sec->size = uncompressed_size; sec->compress_status = DECOMPRESS_SECTION_SIZED; - free (compressed_buffer); - return ret; - } + if (!ret) + goto fail_compressed; - /* Decompress to caller buffer directly if it is provided. */ - if (p) - uncompressed_buffer = p; - else - { uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size); if (uncompressed_buffer == NULL) goto fail_compressed; - } - if (!decompress_contents (compressed_buffer, compressed_size, - uncompressed_buffer, uncompressed_size)) - { - sec->compress_status = DECOMPRESS_SECTION_SIZED; - free (compressed_buffer); - if (p == NULL) - free (uncompressed_buffer); - bfd_set_error (bfd_error_bad_value); - return FALSE; - } + if (!decompress_contents (compressed_buffer, compressed_size, + uncompressed_buffer, uncompressed_size)) + { + bfd_set_error (bfd_error_bad_value); + free (uncompressed_buffer); + fail_compressed: + free (compressed_buffer); + return FALSE; + } - free (compressed_buffer); - if (p == NULL) - *ptr = uncompressed_buffer; + free (compressed_buffer); + sec->contents = uncompressed_buffer; + sec->compress_status = COMPRESS_SECTION_DONE; + /* Fall thru */ +#endif - sec->contents = uncompressed_buffer; - sec->compress_status = COMPRESS_SECTION_DONE; + case COMPRESS_SECTION_DONE: + if (p == NULL) + { + p = (bfd_byte *) bfd_malloc (sz); + if (p == NULL) + return FALSE; + *ptr = p; + } + memcpy (p, sec->contents, sz); + return TRUE; - return TRUE; -#endif + default: + abort (); + } } /* diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 43494868d6c..f85627d2f52 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -3600,7 +3600,7 @@ ecoff_link_check_archive_element (bfd *abfd, EXTR esym; bfd_boolean def; const char *name; - bfd *subsbfd; + bfd *oldbfd; struct bfd_link_hash_entry *h; (*swap_ext_in) (abfd, (void *) ext_ptr, &esym); @@ -3645,18 +3645,17 @@ ecoff_link_check_archive_element (bfd *abfd, continue; /* Include this element. */ - subsbfd = NULL; - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, &subsbfd)) + oldbfd = abfd; + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, &abfd)) goto error_return; /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (subsbfd + if (abfd != oldbfd && !reread_ext_syms_and_strs (&symhdr, &external_ext_size, &esize, - &external_ext, &ssext, subsbfd, backend)) + &external_ext, &ssext, abfd, backend)) goto error_return; - if (! ecoff_link_add_externals (subsbfd ? subsbfd : abfd, info, - external_ext, ssext)) + if (! ecoff_link_add_externals (abfd, info, external_ext, ssext)) goto error_return; *pneeded = TRUE; @@ -3733,7 +3732,6 @@ ecoff_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) unsigned int file_offset; const char *name; bfd *element; - bfd *subsbfd; h = *pundef; @@ -3820,13 +3818,10 @@ ecoff_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) /* Unlike the generic linker, we know that this element provides a definition for an undefined symbol and we know that we want to include it. We don't need to check anything. */ - subsbfd = NULL; - if (! (*info->callbacks->add_archive_element) - (info, element, name, &subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, element, name, &element)) return FALSE; - /* Potentially, the add_archive_element hook may have set a - substitute BFD for us. */ - if (! ecoff_link_add_object_symbols (subsbfd ? subsbfd : element, info)) + if (! ecoff_link_add_object_symbols (element, info)) return FALSE; pundef = &(*pundef)->u.undef.next; diff --git a/bfd/elf-attrs.c b/bfd/elf-attrs.c index e1893d38d94..569e846cc54 100644 --- a/bfd/elf-attrs.c +++ b/bfd/elf-attrs.c @@ -613,7 +613,7 @@ _bfd_elf_merge_unknown_attribute_low (bfd *ibfd, bfd *obfd, int tag) /* Only pass on attributes that match in both inputs. */ if (in_attr[tag].i != out_attr[tag].i - || in_attr[tag].s != out_attr[tag].s + || (in_attr[tag].s == NULL) != (out_attr[tag].s == NULL) || (in_attr[tag].s != NULL && out_attr[tag].s != NULL && strcmp (in_attr[tag].s, out_attr[tag].s) != 0)) { @@ -673,7 +673,7 @@ _bfd_elf_merge_unknown_attribute_list (bfd *ibfd, bfd *obfd) /* Only pass on attributes that match in both inputs. */ if (in_list->attr.i != out_list->attr.i - || in_list->attr.s != out_list->attr.s + || (in_list->attr.s == NULL) != (out_list->attr.s == NULL) || (in_list->attr.s && out_list->attr.s && strcmp (in_list->attr.s, out_list->attr.s) != 0)) { diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 8380ef86004..0a221381474 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -1572,10 +1572,31 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, break; case DW_EH_PE_datarel: { - asection *got = bfd_get_section_by_name (abfd, ".got"); - - BFD_ASSERT (got != NULL); - address += got->vma; + switch (abfd->arch_info->arch) + { + case bfd_arch_ia64: + BFD_ASSERT (elf_gp (abfd) != 0); + address += elf_gp (abfd); + break; + default: + (*info->callbacks->einfo) + (_("%P: DW_EH_PE_datarel unspecified" + " for this architecture.\n")); + /* Fall thru */ + case bfd_arch_frv: + case bfd_arch_i386: + BFD_ASSERT (htab->hgot != NULL + && ((htab->hgot->root.type + == bfd_link_hash_defined) + || (htab->hgot->root.type + == bfd_link_hash_defweak))); + address + += (htab->hgot->root.u.def.value + + htab->hgot->root.u.def.section->output_offset + + (htab->hgot->root.u.def.section->output_section + ->vma)); + break; + } } break; case DW_EH_PE_pcrel: @@ -1596,6 +1617,11 @@ _bfd_elf_write_section_eh_frame (bfd *abfd, if (hdr_info) { + /* The address calculation may overflow, giving us a + value greater than 4G on a 32-bit target when + dwarf_vma is 64-bit. */ + if (sizeof (address) > 4 && ptr_size == 4) + address &= 0xffffffff; hdr_info->array[hdr_info->array_count].initial_loc = address; hdr_info->array[hdr_info->array_count++].fde = (sec->output_section->vma diff --git a/bfd/elf.c b/bfd/elf.c index 4f326a7ae53..f54448659f0 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -1,7 +1,7 @@ /* ELF executable support for BFD. Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -822,11 +822,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, const struct elf_backend_data *bed; if (hdr->bfd_section != NULL) - { - BFD_ASSERT (strcmp (name, - bfd_get_section_name (abfd, hdr->bfd_section)) == 0); - return TRUE; - } + return TRUE; newsect = bfd_make_section_anyway (abfd, name); if (newsect == NULL) @@ -1016,6 +1012,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, || (name[1] == 'z' && name[7] == '_'))) { enum { nothing, compress, decompress } action = nothing; + char *new_name; if (bfd_is_section_compressed (abfd, newsect)) { @@ -1030,6 +1027,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, action = compress; } + new_name = NULL; switch (action) { case nothing: @@ -1042,6 +1040,17 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, abfd, name); return FALSE; } + if (name[1] != 'z') + { + unsigned int len = strlen (name); + + new_name = bfd_alloc (abfd, len + 2); + if (new_name == NULL) + return FALSE; + new_name[0] = '.'; + new_name[1] = 'z'; + memcpy (new_name + 2, name + 1, len); + } break; case decompress: if (!bfd_init_section_decompress_status (abfd, newsect)) @@ -1051,8 +1060,20 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, abfd, name); return FALSE; } + if (name[1] == 'z') + { + unsigned int len = strlen (name); + + new_name = bfd_alloc (abfd, len); + if (new_name == NULL) + return FALSE; + new_name[0] = '.'; + memcpy (new_name + 1, name + 2, len - 1); + } break; } + if (new_name != NULL) + bfd_rename_section (abfd, newsect, new_name); } return TRUE; @@ -4251,10 +4272,12 @@ print_segment_map (const struct elf_segment_map *m) (unsigned int) m->p_type); pt = buf; } + fflush (stdout); fprintf (stderr, "%s:", pt); for (j = 0; j < m->count; j++) fprintf (stderr, " %s", m->sections [j]->name); putc ('\n',stderr); + fflush (stderr); } static bfd_boolean diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c index 237391b201e..df7bd567f9c 100644 --- a/bfd/elf32-bfin.c +++ b/bfd/elf32-bfin.c @@ -1,5 +1,5 @@ /* ADI Blackfin BFD support for 32-bit ELF. - Copyright 2005, 2006, 2007, 2008, 2009, 2010 + Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -104,7 +104,7 @@ bfin_pcrel24_reloc (bfd *abfd, /* if rightshift is 1 and the number odd, return error. */ if (howto->rightshift && (relocation & 0x01)) { - fprintf(stderr, "relocation should be even number\n"); + (*_bfd_error_handler) (_("relocation should be even number")); return bfd_reloc_overflow; } @@ -360,7 +360,7 @@ bfin_bfd_reloc (bfd *abfd, /* If rightshift is 1 and the number odd, return error. */ if (howto->rightshift && (relocation & 0x01)) { - fprintf(stderr, "relocation should be even number\n"); + (*_bfd_error_handler) (_("relocation should be even number")); return bfd_reloc_overflow; } @@ -5266,7 +5266,8 @@ bfin_finish_dynamic_symbol (bfd * output_bfd, && (info->symbolic || h->dynindx == -1 || h->forced_local) && h->def_regular) { - fprintf(stderr, "*** check this relocation %s\n", __FUNCTION__); + (*_bfd_error_handler) (_("*** check this relocation %s"), + __FUNCTION__); rela.r_info = ELF32_R_INFO (0, R_BFIN_PCREL24); rela.r_addend = bfd_get_signed_32 (output_bfd, (sgot->contents diff --git a/bfd/elf32-dlx.c b/bfd/elf32-dlx.c index 6b96ac9767a..29b89104e9e 100644 --- a/bfd/elf32-dlx.c +++ b/bfd/elf32-dlx.c @@ -1,5 +1,5 @@ /* DLX specific support for 32-bit ELF - Copyright 2002, 2003, 2004, 2005, 2006, 2007 + Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -139,9 +139,8 @@ elf32_dlx_relocate16 (bfd *abfd, /* Can not support a long jump to sections other then .text. */ if (strcmp (input_section->name, symbol->section->output_section->name) != 0) { - fprintf (stderr, - "BFD Link Error: branch (PC rel16) to section (%s) not supported\n", - symbol->section->output_section->name); + (*_bfd_error_handler) (_("BFD Link Error: branch (PC rel16) to section (%s) not supported"), + symbol->section->output_section->name); return bfd_reloc_undefined; } @@ -202,9 +201,8 @@ elf32_dlx_relocate26 (bfd *abfd, /* Can not support a long jump to sections other then .text */ if (strcmp (input_section->name, symbol->section->output_section->name) != 0) { - fprintf (stderr, - "BFD Link Error: jump (PC rel26) to section (%s) not supported\n", - symbol->section->output_section->name); + (*_bfd_error_handler) (_("BFD Link Error: jump (PC rel26) to section (%s) not supported"), + symbol->section->output_section->name); return bfd_reloc_undefined; } diff --git a/bfd/elf32-mep.c b/bfd/elf32-mep.c index a6afcb569f1..b688d679ee2 100644 --- a/bfd/elf32-mep.c +++ b/bfd/elf32-mep.c @@ -1,6 +1,6 @@ /* MeP-specific support for 32-bit ELF. - Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -154,13 +154,14 @@ mep_reloc_type_lookup default: /* Pacify gcc -Wall. */ - fprintf (stderr, "mep: no reloc for code %d\n", code); + (*_bfd_error_handler) (_("mep: no reloc for code %d"), code); return NULL; } if (mep_elf_howto_table[type].type != type) { - fprintf (stderr, "MeP: howto %d has type %d\n", type, mep_elf_howto_table[type].type); + (*_bfd_error_handler) (_("MeP: howto %d has type %d"), + type, mep_elf_howto_table[type].type); abort (); } diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 29b2311b181..9e6f77d22f6 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1,6 +1,6 @@ /* V850-specific support for 32-bit ELF Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -480,7 +480,7 @@ v850_elf_perform_lo16_relocation (bfd *abfd, unsigned long *insn, } else { - fprintf (stderr, _("FAILED to find previous HI16 reloc\n")); + (*_bfd_error_handler) (_("FAILED to find previous HI16 reloc")); return FALSE; } } diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c index 11289b13916..d8213a01a8a 100644 --- a/bfd/elf64-hppa.c +++ b/bfd/elf64-hppa.c @@ -411,13 +411,6 @@ get_reloc_section (bfd *abfd, if (srel_name == NULL) return FALSE; - BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela") - && strcmp (bfd_get_section_name (abfd, sec), - srel_name + 5) == 0) - || (CONST_STRNEQ (srel_name, ".rel") - && strcmp (bfd_get_section_name (abfd, sec), - srel_name + 4) == 0)); - dynobj = hppa_info->root.dynobj; if (!dynobj) hppa_info->root.dynobj = dynobj = abfd; diff --git a/bfd/elflink.c b/bfd/elflink.c index 590e3243cd1..6136a94cfdf 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -5011,7 +5011,6 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) { struct elf_link_hash_entry *h; bfd *element; - bfd *subsbfd = NULL; struct bfd_link_hash_entry *undefs_tail; symindex mark; @@ -5074,12 +5073,10 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) undefs_tail = info->hash->undefs_tail; - if (! (*info->callbacks->add_archive_element) - (info, element, symdef->name, &subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, element, symdef->name, &element)) goto error_return; - /* Potentially, the add_archive_element hook may have set a - substitute BFD for us. */ - if (! bfd_link_add_symbols (subsbfd ? subsbfd : element, info)) + if (!bfd_link_add_symbols (element, info)) goto error_return; /* If there are any new undefined symbols, we need to make @@ -8643,6 +8640,7 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) h->ref_regular ? NULL : h->root.u.undef.abfd, NULL, 0, finfo->info->unresolved_syms_in_shared_libs == RM_GENERATE_ERROR))) { + bfd_set_error (bfd_error_bad_value); eoinfo->failed = TRUE; return FALSE; } @@ -8659,16 +8657,21 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) && !h->dynamic_weak && ! elf_link_check_versioned_symbol (finfo->info, bed, h)) { - (*_bfd_error_handler) - (_("%B: %s symbol `%s' in %B is referenced by DSO"), - finfo->output_bfd, - h->root.u.def.section == bfd_abs_section_ptr - ? finfo->output_bfd : h->root.u.def.section->owner, - ELF_ST_VISIBILITY (h->other) == STV_INTERNAL - ? "internal" - : ELF_ST_VISIBILITY (h->other) == STV_HIDDEN - ? "hidden" : "local", - h->root.root.string); + bfd *def_bfd; + const char *msg; + + if (ELF_ST_VISIBILITY (h->other) == STV_INTERNAL) + msg = _("%B: internal symbol `%s' in %B is referenced by DSO"); + else if (ELF_ST_VISIBILITY (h->other) == STV_HIDDEN) + msg = _("%B: hidden symbol `%s' in %B is referenced by DSO"); + else + msg = _("%B: local symbol `%s' in %B is referenced by DSO"); + def_bfd = finfo->output_bfd; + if (h->root.u.def.section != bfd_abs_section_ptr) + def_bfd = h->root.u.def.section->owner; + (*_bfd_error_handler) (msg, finfo->output_bfd, def_bfd, + h->root.root.string); + bfd_set_error (bfd_error_bad_value); eoinfo->failed = TRUE; return FALSE; } @@ -8753,6 +8756,7 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) (*_bfd_error_handler) (_("%B: could not find output section %A for input section %A"), finfo->output_bfd, input_sec->output_section, input_sec); + bfd_set_error (bfd_error_nonrepresentable_section); eoinfo->failed = TRUE; return FALSE; } @@ -8870,14 +8874,16 @@ elf_link_output_extsym (struct elf_link_hash_entry *h, void *data) && h->root.type == bfd_link_hash_undefined && !h->def_regular) { - (*_bfd_error_handler) - (_("%B: %s symbol `%s' isn't defined"), - finfo->output_bfd, - ELF_ST_VISIBILITY (sym.st_other) == STV_PROTECTED - ? "protected" - : ELF_ST_VISIBILITY (sym.st_other) == STV_INTERNAL - ? "internal" : "hidden", - h->root.root.string); + const char *msg; + + if (ELF_ST_VISIBILITY (sym.st_other) == STV_PROTECTED) + msg = _("%B: protected symbol `%s' isn't defined"); + else if (ELF_ST_VISIBILITY (sym.st_other) == STV_INTERNAL) + msg = _("%B: internal symbol `%s' isn't defined"); + else + msg = _("%B: hidden symbol `%s' isn't defined"); + (*_bfd_error_handler) (msg, finfo->output_bfd, h->root.root.string); + bfd_set_error (bfd_error_bad_value); eoinfo->failed = TRUE; return FALSE; } diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index 0ef1a442d9e..d42ad892121 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -2602,13 +2602,6 @@ get_reloc_section (bfd *abfd, if (srel_name == NULL) return NULL; - BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela") - && strcmp (bfd_get_section_name (abfd, sec), - srel_name+5) == 0) - || (CONST_STRNEQ (srel_name, ".rel") - && strcmp (bfd_get_section_name (abfd, sec), - srel_name+4) == 0)); - dynobj = ia64_info->root.dynobj; if (!dynobj) ia64_info->root.dynobj = dynobj = abfd; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 4718dd4db67..2939af49156 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -12589,8 +12589,11 @@ _bfd_mips_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd) for (sec = ibfd->sections; sec != NULL; sec = sec->next) { /* Ignore synthetic sections and empty .text, .data and .bss sections - which are automatically generated by gas. */ - if (strcmp (sec->name, ".reginfo") + which are automatically generated by gas. Also ignore fake + (s)common sections, since merely defining a common symbol does + not affect compatibility. */ + if ((sec->flags & SEC_IS_COMMON) == 0 + && strcmp (sec->name, ".reginfo") && strcmp (sec->name, ".mdebug") && (sec->size != 0 || (strcmp (sec->name, ".text") diff --git a/bfd/hash.c b/bfd/hash.c index fc05923a5ca..e2fa3a91385 100644 --- a/bfd/hash.c +++ b/bfd/hash.c @@ -1,6 +1,6 @@ /* hash.c -- hash table routines for BFD Copyright 1993, 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2009 Free Software Foundation, Inc. + 2006, 2007, 2009, 2010 Free Software Foundation, Inc. Written by Steve Chamberlain This file is part of BFD, the Binary File Descriptor library. @@ -412,20 +412,13 @@ bfd_hash_table_free (struct bfd_hash_table *table) table->memory = NULL; } -/* Look up a string in a hash table. */ - -struct bfd_hash_entry * -bfd_hash_lookup (struct bfd_hash_table *table, - const char *string, - bfd_boolean create, - bfd_boolean copy) +static inline unsigned long +bfd_hash_hash (const char *string, unsigned int *lenp) { const unsigned char *s; unsigned long hash; - unsigned int c; - struct bfd_hash_entry *hashp; unsigned int len; - unsigned int _index; + unsigned int c; hash = 0; len = 0; @@ -438,7 +431,25 @@ bfd_hash_lookup (struct bfd_hash_table *table, len = (s - (const unsigned char *) string) - 1; hash += len + (len << 17); hash ^= hash >> 2; + if (lenp != NULL) + *lenp = len; + return hash; +} + +/* Look up a string in a hash table. */ +struct bfd_hash_entry * +bfd_hash_lookup (struct bfd_hash_table *table, + const char *string, + bfd_boolean create, + bfd_boolean copy) +{ + unsigned long hash; + struct bfd_hash_entry *hashp; + unsigned int len; + unsigned int _index; + + hash = bfd_hash_hash (string, &len); _index = hash % table->size; for (hashp = table->table[_index]; hashp != NULL; @@ -535,6 +546,31 @@ bfd_hash_insert (struct bfd_hash_table *table, return hashp; } +/* Rename an entry in a hash table. */ + +void +bfd_hash_rename (struct bfd_hash_table *table, + const char *string, + struct bfd_hash_entry *ent) +{ + unsigned int _index; + struct bfd_hash_entry **pph; + + _index = ent->hash % table->size; + for (pph = &table->table[_index]; *pph != NULL; pph = &(*pph)->next) + if (*pph == ent) + break; + if (*pph == NULL) + abort (); + + *pph = ent->next; + ent->string = string; + ent->hash = bfd_hash_hash (string, NULL); + _index = ent->hash % table->size; + ent->next = table->table[_index]; + table->table[_index] = ent; +} + /* Replace an entry in a hash table. */ void diff --git a/bfd/libbfd.c b/bfd/libbfd.c index a66d9c6f077..8b243784568 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -1,6 +1,6 @@ /* Assorted BFD support routines, only used internally. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 + 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Written by Cygnus Support. @@ -1021,6 +1021,7 @@ warn_deprecated (const char *what, if (~(size_t) func & ~mask) { + fflush (stdout); /* Note: separate sentences in order to allow for translation into other languages. */ if (func) @@ -1028,6 +1029,7 @@ warn_deprecated (const char *what, what, file, line, func); else fprintf (stderr, _("Deprecated %s called\n"), what); + fflush (stderr); mask |= ~(size_t) func; } } diff --git a/bfd/linker.c b/bfd/linker.c index fc52b51f007..2b52ba96510 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -1223,20 +1223,18 @@ generic_link_check_archive_element (bfd *abfd, { bfd_size_type symcount; asymbol **symbols; - bfd *subsbfd = NULL; + bfd *oldbfd = abfd; /* This object file defines this symbol, so pull it in. */ - if (! (*info->callbacks->add_archive_element) - (info, abfd, bfd_asymbol_name (p), &subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, bfd_asymbol_name (p), + &abfd)) return FALSE; /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (subsbfd) - { - abfd = subsbfd; - if (!bfd_generic_link_read_symbols (abfd)) - return FALSE; - } + if (abfd != oldbfd + && !bfd_generic_link_read_symbols (abfd)) + return FALSE; symcount = _bfd_generic_link_get_symcount (abfd); symbols = _bfd_generic_link_get_symbols (abfd); if (! generic_link_add_symbol_list (abfd, info, symcount, @@ -1257,12 +1255,12 @@ generic_link_check_archive_element (bfd *abfd, symbfd = h->u.undef.abfd; if (symbfd == NULL) { - bfd *subsbfd = NULL; /* This symbol was created as undefined from outside BFD. We assume that we should link in the object file. This is for the -u option in the linker. */ - if (! (*info->callbacks->add_archive_element) - (info, abfd, bfd_asymbol_name (p), &subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, bfd_asymbol_name (p), + &abfd)) return FALSE; /* Potentially, the add_archive_element hook may have set a substitute BFD for us. But no symbols are going to get diff --git a/bfd/mach-o.c b/bfd/mach-o.c index a02030e5dcd..0c0d1ac1f1a 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -1,6 +1,6 @@ /* Mach-O support for BFD. Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010 + 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -378,8 +378,7 @@ bfd_mach_o_canonicalize_symtab (bfd *abfd, asymbol **alocation) if (bfd_mach_o_read_symtab_symbols (abfd) != 0) { - fprintf (stderr, - "bfd_mach_o_canonicalize_symtab: unable to load symbols\n"); + (*_bfd_error_handler) (_("bfd_mach_o_canonicalize_symtab: unable to load symbols")); return 0; } @@ -1251,9 +1250,8 @@ bfd_mach_o_write_contents (bfd *abfd) case BFD_MACH_O_LC_SUB_FRAMEWORK: break; default: - fprintf (stderr, - "unable to write unknown load command 0x%lx\n", - (unsigned long) cur->type); + (*_bfd_error_handler) (_("unable to write unknown load command 0x%lx"), + (unsigned long) cur->type); return FALSE; } } @@ -1653,8 +1651,8 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd, if (bfd_seek (abfd, symoff, SEEK_SET) != 0 || bfd_bread ((void *) buf, symwidth, abfd) != symwidth) { - fprintf (stderr, "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu\n", - symwidth, (unsigned long) symoff); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"), + symwidth, (unsigned long) symoff); return -1; } @@ -1670,8 +1668,9 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd, if (stroff >= sym->strsize) { - fprintf (stderr, "bfd_mach_o_read_symtab_symbol: symbol name out of range (%lu >= %lu)\n", - (unsigned long) stroff, (unsigned long) sym->strsize); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: symbol name out of range (%lu >= %lu)"), + (unsigned long) stroff, + (unsigned long) sym->strsize); return -1; } @@ -1754,23 +1753,23 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd, /* Mach-O uses 0 to mean "no section"; not an error. */ if (section != 0) { - fprintf (stderr, "bfd_mach_o_read_symtab_symbol: " - "symbol \"%s\" specified invalid section %d (max %lu): setting to undefined\n", - s->symbol.name, section, mdata->nsects); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: " + "symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"), + s->symbol.name, section, mdata->nsects); } s->symbol.section = bfd_und_section_ptr; } break; case BFD_MACH_O_N_INDR: - fprintf (stderr, "bfd_mach_o_read_symtab_symbol: " - "symbol \"%s\" is unsupported 'indirect' reference: setting to undefined\n", - s->symbol.name); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: " + "symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"), + s->symbol.name); s->symbol.section = bfd_und_section_ptr; break; default: - fprintf (stderr, "bfd_mach_o_read_symtab_symbol: " - "symbol \"%s\" specified invalid type field 0x%x: setting to undefined\n", - s->symbol.name, symtype); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: " + "symbol \"%s\" specified invalid type field 0x%x: setting to undefined"), + s->symbol.name, symtype); s->symbol.section = bfd_und_section_ptr; break; } @@ -1838,7 +1837,7 @@ bfd_mach_o_read_symtab_symbols (bfd *abfd) if (sym->symbols == NULL) { - fprintf (stderr, "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols\n"); + (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols")); return -1; } @@ -1872,8 +1871,8 @@ bfd_mach_o_read_dysymtab_symbol (bfd *abfd, if (bfd_seek (abfd, isymoff, SEEK_SET) != 0 || bfd_bread ((void *) buf, 4, abfd) != 4) { - fprintf (stderr, "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu\n", - (unsigned long) 4, isymoff); + (*_bfd_error_handler) (_("bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"), + (unsigned long) 4, isymoff); return -1; } sym_index = bfd_h_get_32 (abfd, buf); @@ -2554,8 +2553,8 @@ bfd_mach_o_read_command (bfd *abfd, bfd_mach_o_load_command *command) return -1; break; default: - fprintf (stderr, "unable to read unknown load command 0x%lx\n", - (unsigned long) command->type); + (*_bfd_error_handler) (_("unable to read unknown load command 0x%lx"), + (unsigned long) command->type); break; } @@ -2734,8 +2733,8 @@ bfd_mach_o_scan (bfd *abfd, &cputype, &cpusubtype); if (cputype == bfd_arch_unknown) { - fprintf (stderr, "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx\n", - header->cputype, header->cpusubtype); + (*_bfd_error_handler) (_("bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"), + header->cputype, header->cpusubtype); return -1; } @@ -2830,8 +2829,8 @@ bfd_mach_o_header_p (bfd *abfd, if (! (header.byteorder == BFD_ENDIAN_BIG || header.byteorder == BFD_ENDIAN_LITTLE)) { - fprintf (stderr, "unknown header byte-order value 0x%lx\n", - (unsigned long) header.byteorder); + (*_bfd_error_handler) (_("unknown header byte-order value 0x%lx"), + (unsigned long) header.byteorder); goto wrong; } diff --git a/bfd/pdp11.c b/bfd/pdp11.c index 5f4d28c6277..93ea461dd39 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -2601,8 +2601,8 @@ aout_link_check_ar_symbols (bfd *abfd, but not if it is defined in the .text section. That seems a bit crazy to me, and I haven't implemented it. However, it might be correct. */ - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -2629,8 +2629,8 @@ aout_link_check_ar_symbols (bfd *abfd, outside BFD. We assume that we should link in the object file. This is done for the -u option in the linker. */ - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -2682,27 +2682,36 @@ aout_link_check_archive_element (bfd *abfd, struct bfd_link_info *info, bfd_boolean *pneeded) { - bfd *subsbfd = NULL; + bfd *oldbfd; + bfd_boolean needed; - if (! aout_get_external_symbols (abfd)) + if (!aout_get_external_symbols (abfd)) return FALSE; - if (! aout_link_check_ar_symbols (abfd, info, pneeded, &subsbfd)) + oldbfd = abfd; + if (!aout_link_check_ar_symbols (abfd, info, pneeded, &abfd)) return FALSE; - if (*pneeded) + needed = *pneeded; + if (needed) { /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (subsbfd && ! aout_get_external_symbols (subsbfd)) - return FALSE; - if (! aout_link_add_symbols (subsbfd ? subsbfd : abfd, info)) + if (abfd != oldbfd) + { + if (!info->keep_memory + && !aout_link_free_symbols (oldbfd)) + return FALSE; + if (!aout_get_external_symbols (abfd)) + return FALSE; + } + if (!aout_link_add_symbols (abfd, info)) return FALSE; } - if (! info->keep_memory || ! *pneeded) + if (!info->keep_memory || !needed) { - if (! aout_link_free_symbols (abfd)) + if (!aout_link_free_symbols (abfd)) return FALSE; } diff --git a/bfd/pef.c b/bfd/pef.c index 788388cbf75..dcfda0595cc 100644 --- a/bfd/pef.c +++ b/bfd/pef.c @@ -1,6 +1,6 @@ /* PEF support for BFD. - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2011 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -516,8 +516,8 @@ bfd_pef_scan (abfd, header, mdata) bfd_pef_convert_architecture (header->architecture, &cputype, &cpusubtype); if (cputype == bfd_arch_unknown) { - fprintf (stderr, "bfd_pef_scan: unknown architecture 0x%lx\n", - header->architecture); + (*_bfd_error_handler) (_("bfd_pef_scan: unknown architecture 0x%lx"), + header->architecture); return -1; } bfd_set_arch_mach (abfd, cputype, cpusubtype); diff --git a/bfd/plugin.c b/bfd/plugin.c index a46bf905c99..61cd6873361 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -78,6 +78,7 @@ message (int level ATTRIBUTE_UNUSED, va_start (args, format); printf ("bfd plugin: "); vprintf (format, args); + putchar ('\n'); va_end (args); return LDPS_OK; } diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in index 729b7042184..e036a2ff441 100644 --- a/bfd/po/SRC-POTFILES.in +++ b/bfd/po/SRC-POTFILES.in @@ -319,6 +319,7 @@ ppcboot.c reloc.c reloc16.c riscix.c +rs6000-core.c sco5-core.c section.c simple.c diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot index f5856a81e66..53cfa1367d0 100644 --- a/bfd/po/bfd.pot +++ b/bfd/po/bfd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2010-11-05 11:31+0100\n" +"POT-Creation-Date: 2011-02-01 22:23+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -48,24 +48,24 @@ msgstr "" msgid "*unknown*" msgstr "" -#: aoutx.h:4007 aoutx.h:4333 +#: aoutx.h:4016 aoutx.h:4342 msgid "%P: %B: unexpected relocation type\n" msgstr "" -#: aoutx.h:5364 +#: aoutx.h:5373 #, c-format msgid "%s: relocatable link from %s to %s not supported" msgstr "" -#: archive.c:2125 +#: archive.c:2120 msgid "Warning: writing archive was slow: rewriting timestamp\n" msgstr "" -#: archive.c:2416 +#: archive.c:2411 msgid "Reading archive file mod timestamp" msgstr "" -#: archive.c:2440 +#: archive.c:2435 msgid "Writing updated armap timestamp" msgstr "" @@ -154,22 +154,22 @@ msgstr "" msgid "#" msgstr "" -#: bfd.c:939 +#: bfd.c:942 #, c-format msgid "BFD %s assertion fail %s:%d" msgstr "" -#: bfd.c:951 +#: bfd.c:954 #, c-format msgid "BFD %s internal error, aborting at %s line %d in %s\n" msgstr "" -#: bfd.c:955 +#: bfd.c:958 #, c-format msgid "BFD %s internal error, aborting at %s line %d\n" msgstr "" -#: bfd.c:957 +#: bfd.c:960 msgid "Please report this bug.\n" msgstr "" @@ -225,7 +225,7 @@ msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW" msgstr "" #: coff-alpha.c:1575 elf32-m32r.c:2493 elf64-alpha.c:3991 elf64-alpha.c:4140 -#: elf32-ia64.c:4582 elf64-ia64.c:4582 +#: elf32-ia64.c:4575 elf64-ia64.c:4575 msgid "%B: unknown relocation type %d" msgstr "" @@ -254,7 +254,7 @@ msgid "" " consider relinking with --support-old-code enabled" msgstr "" -#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3043 +#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3052 msgid "%B: bad reloc address 0x%lx in section `%A'" msgstr "" @@ -267,14 +267,14 @@ msgstr "" msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d" msgstr "" -#: coff-arm.c:2226 elf32-arm.c:14105 +#: coff-arm.c:2226 elf32-arm.c:14098 #, c-format msgid "" "error: %B passes floats in float registers, whereas %B passes them in " "integer registers" msgstr "" -#: coff-arm.c:2229 elf32-arm.c:14109 +#: coff-arm.c:2229 elf32-arm.c:14102 #, c-format msgid "" "error: %B passes floats in integer registers, whereas %B passes them in " @@ -295,12 +295,12 @@ msgid "" "position independent" msgstr "" -#: coff-arm.c:2274 elf32-arm.c:14174 +#: coff-arm.c:2274 elf32-arm.c:14167 #, c-format msgid "Warning: %B supports interworking, whereas %B does not" msgstr "" -#: coff-arm.c:2277 elf32-arm.c:14180 +#: coff-arm.c:2277 elf32-arm.c:14173 #, c-format msgid "Warning: %B does not support interworking, whereas %B does" msgstr "" @@ -310,7 +310,7 @@ msgstr "" msgid "private flags = %x:" msgstr "" -#: coff-arm.c:2309 elf32-arm.c:10492 +#: coff-arm.c:2309 elf32-arm.c:10485 #, c-format msgid " [floats passed in float registers]" msgstr "" @@ -320,7 +320,7 @@ msgstr "" msgid " [floats passed in integer registers]" msgstr "" -#: coff-arm.c:2314 elf32-arm.c:10495 +#: coff-arm.c:2314 elf32-arm.c:10488 #, c-format msgid " [position independent]" msgstr "" @@ -364,7 +364,7 @@ msgstr "" #: coff-i860.c:147 #, c-format -msgid "Relocation `%s' not yet implemented\n" +msgid "relocation `%s' not yet implemented" msgstr "" #: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5147 @@ -375,7 +375,7 @@ msgstr "" msgid "uncertain calling convention for non-COFF symbol" msgstr "" -#: coff-m68k.c:506 elf32-bfin.c:5678 elf32-cr16.c:2897 elf32-m68k.c:4672 +#: coff-m68k.c:506 elf32-bfin.c:5679 elf32-cr16.c:2897 elf32-m68k.c:4672 msgid "unsupported reloc type" msgstr "" @@ -402,6 +402,11 @@ msgstr "" msgid "%B: symbol `%s' has unrecognized smclas %d" msgstr "" +#: coff-sh.c:521 +#, c-format +msgid "SH Error: unknown reloc type %d" +msgstr "" + #: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458 #, c-format msgid "Unrecognized reloc type 0x%x" @@ -478,20 +483,20 @@ msgstr "" msgid "%B: bad string table size %lu" msgstr "" -#: cofflink.c:524 elflink.c:4339 +#: cofflink.c:533 elflink.c:4339 msgid "Warning: type of symbol `%s' changed from %d to %d in %B" msgstr "" -#: cofflink.c:2321 +#: cofflink.c:2330 msgid "%B: relocs in section `%A', but it has no contents" msgstr "" -#: cofflink.c:2652 coffswap.h:826 +#: cofflink.c:2661 coffswap.h:826 #, c-format msgid "%s: %s: reloc overflow: 0x%lx > 0xffff" msgstr "" -#: cofflink.c:2661 coffswap.h:812 +#: cofflink.c:2670 coffswap.h:812 #, c-format msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff" msgstr "" @@ -641,6 +646,10 @@ msgid "" "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n" msgstr "" +#: elf-eh-frame.c:1583 +msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n" +msgstr "" + #: elf-ifunc.c:179 msgid "" "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can " @@ -652,7 +661,7 @@ msgstr "" #: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2077 elf32-crx.c:922 #: elf32-d10v.c:509 elf32-fr30.c:609 elf32-frv.c:4111 elf32-h8300.c:509 #: elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684 elf32-lm32.c:1168 -#: elf32-m32c.c:553 elf32-m32r.c:3111 elf32-m68hc1x.c:1138 elf32-mep.c:534 +#: elf32-m32c.c:553 elf32-m32r.c:3111 elf32-m68hc1x.c:1138 elf32-mep.c:535 #: elf32-microblaze.c:1231 elf32-moxie.c:282 elf32-msp430.c:486 elf32-mt.c:395 #: elf32-openrisc.c:404 elf32-score.c:2731 elf32-score7.c:2540 #: elf32-spu.c:5042 elf32-v850.c:2143 elf32-xstormy16.c:941 elf64-mmix.c:1522 @@ -663,7 +672,7 @@ msgstr "" #: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2081 elf32-crx.c:926 #: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4115 elf32-h8300.c:513 #: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557 -#: elf32-m32r.c:3115 elf32-m68hc1x.c:1142 elf32-mep.c:538 +#: elf32-m32r.c:3115 elf32-m68hc1x.c:1142 elf32-mep.c:539 #: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490 #: elf32-openrisc.c:408 elf32-score.c:2735 elf32-score7.c:2544 #: elf32-spu.c:5046 elf32-v850.c:2147 elf32-xstormy16.c:945 elf64-mmix.c:1526 @@ -682,7 +691,7 @@ msgstr "" #: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2089 elf32-crx.c:934 #: elf32-d10v.c:521 elf32-fr30.c:621 elf32-frv.c:4123 elf32-h8300.c:521 #: elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696 elf32-lm32.c:1180 -#: elf32-m32c.c:565 elf32-m32r.c:3123 elf32-m68hc1x.c:1150 elf32-mep.c:546 +#: elf32-m32c.c:565 elf32-m32r.c:3123 elf32-m68hc1x.c:1150 elf32-mep.c:547 #: elf32-microblaze.c:1243 elf32-moxie.c:294 elf32-msp430.c:498 elf32-mt.c:403 #: elf32-openrisc.c:416 elf32-score.c:2748 elf32-score7.c:2552 #: elf32-spu.c:5054 elf32-v850.c:2167 elf32-xstormy16.c:953 elf64-mmix.c:1534 @@ -690,8 +699,8 @@ msgid "internal error: unknown error" msgstr "" #: elf-m10300.c:1504 elf32-arm.c:9098 elf32-i386.c:4081 elf32-m32r.c:2604 -#: elf32-m68k.c:4156 elf32-ppc.c:8089 elf32-s390.c:3010 elf32-sh.c:4223 -#: elf32-xtensa.c:3067 elf64-ppc.c:13115 elf64-s390.c:2985 elf64-sh64.c:1636 +#: elf32-m68k.c:4156 elf32-ppc.c:8090 elf32-s390.c:3010 elf32-sh.c:4223 +#: elf32-xtensa.c:3067 elf64-ppc.c:13138 elf64-s390.c:2985 elf64-sh64.c:1636 #: elf64-x86-64.c:3719 elfxx-sparc.c:3806 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'" msgstr "" @@ -706,9 +715,9 @@ msgstr "" msgid "internal error: suspicious relocation type used in shared library" msgstr "" -#: elf-m10300.c:4372 elf32-arm.c:11392 elf32-cr16.c:2451 elf32-cris.c:3044 +#: elf-m10300.c:4372 elf32-arm.c:11385 elf32-cr16.c:2451 elf32-cris.c:3044 #: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2036 elf32-lm32.c:1868 -#: elf32-m32r.c:1927 elf32-m68k.c:3252 elf32-ppc.c:4994 elf32-s390.c:1652 +#: elf32-m32r.c:1927 elf32-m68k.c:3252 elf32-ppc.c:4995 elf32-s390.c:1652 #: elf32-sh.c:2931 elf32-vax.c:1040 elf64-ppc.c:6483 elf64-s390.c:1635 #: elf64-sh64.c:3377 elf64-x86-64.c:1871 elfxx-sparc.c:2104 #, c-format @@ -735,7 +744,7 @@ msgstr "" msgid "%B: no group info for section %A" msgstr "" -#: elf.c:737 elf.c:3090 elflink.c:10062 +#: elf.c:737 elf.c:3111 elflink.c:10068 msgid "%B: warning: sh_link not set for section `%A'" msgstr "" @@ -747,118 +756,118 @@ msgstr "" msgid "%B: unknown [%d] section `%s' in group [%s]" msgstr "" -#: elf.c:1041 +#: elf.c:1039 msgid "%B: unable to initialize commpress status for section %s" msgstr "" -#: elf.c:1050 +#: elf.c:1059 msgid "%B: unable to initialize decommpress status for section %s" msgstr "" -#: elf.c:1158 +#: elf.c:1179 #, c-format msgid "" "\n" "Program Header:\n" msgstr "" -#: elf.c:1200 +#: elf.c:1221 #, c-format msgid "" "\n" "Dynamic Section:\n" msgstr "" -#: elf.c:1336 +#: elf.c:1357 #, c-format msgid "" "\n" "Version definitions:\n" msgstr "" -#: elf.c:1361 +#: elf.c:1382 #, c-format msgid "" "\n" "Version References:\n" msgstr "" -#: elf.c:1366 +#: elf.c:1387 #, c-format msgid " required from %s:\n" msgstr "" -#: elf.c:1773 +#: elf.c:1794 msgid "%B: invalid link %lu for reloc section %s (index %u)" msgstr "" -#: elf.c:1943 +#: elf.c:1964 msgid "" "%B: don't know how to handle allocated, application specific section `%s' [0x" "%8x]" msgstr "" -#: elf.c:1955 +#: elf.c:1976 msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]" msgstr "" -#: elf.c:1966 +#: elf.c:1987 msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]" msgstr "" -#: elf.c:1976 +#: elf.c:1997 msgid "%B: don't know how to handle section `%s' [0x%8x]" msgstr "" -#: elf.c:2603 +#: elf.c:2624 #, c-format msgid "warning: section `%A' type changed to PROGBITS" msgstr "" -#: elf.c:3047 +#: elf.c:3068 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'" msgstr "" -#: elf.c:3070 +#: elf.c:3091 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'" msgstr "" -#: elf.c:4480 +#: elf.c:4503 msgid "" "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section" msgstr "" -#: elf.c:4507 +#: elf.c:4530 msgid "%B: Not enough room for program headers, try linking with -N" msgstr "" -#: elf.c:4594 +#: elf.c:4617 msgid "%B: section %A lma %#lx adjusted to %#lx" msgstr "" -#: elf.c:4713 +#: elf.c:4736 msgid "%B: section `%A' can't be allocated in segment %d" msgstr "" -#: elf.c:4761 +#: elf.c:4784 msgid "%B: warning: allocated section `%s' not in segment" msgstr "" -#: elf.c:5257 +#: elf.c:5280 msgid "%B: symbol `%s' required but not present" msgstr "" -#: elf.c:5595 +#: elf.c:5618 msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n" msgstr "" -#: elf.c:6622 +#: elf.c:6645 #, c-format msgid "" "Unable to find equivalent output section for symbol '%s' from section '%s'" msgstr "" -#: elf.c:7611 +#: elf.c:7634 msgid "%B: unsupported relocation type %s" msgstr "" @@ -941,11 +950,11 @@ msgstr "" msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section" msgstr "" -#: elf32-arm.c:9074 elf32-m68k.c:4191 elf32-xtensa.c:2805 elf64-ppc.c:11689 +#: elf32-arm.c:9074 elf32-m68k.c:4191 elf32-xtensa.c:2805 elf64-ppc.c:11712 msgid "%B(%A+0x%lx): %s used with TLS symbol %s" msgstr "" -#: elf32-arm.c:9075 elf32-m68k.c:4192 elf32-xtensa.c:2806 elf64-ppc.c:11690 +#: elf32-arm.c:9075 elf32-m68k.c:4192 elf32-xtensa.c:2806 elf64-ppc.c:11713 msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s" msgstr "" @@ -983,254 +992,254 @@ msgstr "" msgid "error: %B: Conflicting CPU architectures %d/%d" msgstr "" -#: elf32-arm.c:9942 +#: elf32-arm.c:9939 msgid "" "Error: %B has both the current and legacy Tag_MPextension_use attributes" msgstr "" -#: elf32-arm.c:9967 +#: elf32-arm.c:9964 msgid "error: %B uses VFP register arguments, %B does not" msgstr "" -#: elf32-arm.c:10112 +#: elf32-arm.c:10109 msgid "error: %B: unable to merge virtualization attributes with %B" msgstr "" -#: elf32-arm.c:10138 +#: elf32-arm.c:10135 msgid "error: %B: Conflicting architecture profiles %c/%c" msgstr "" -#: elf32-arm.c:10239 +#: elf32-arm.c:10236 msgid "Warning: %B: Conflicting platform configuration" msgstr "" -#: elf32-arm.c:10248 +#: elf32-arm.c:10245 msgid "error: %B: Conflicting use of R9" msgstr "" -#: elf32-arm.c:10260 +#: elf32-arm.c:10257 msgid "error: %B: SB relative addressing conflicts with use of R9" msgstr "" -#: elf32-arm.c:10273 +#: elf32-arm.c:10270 msgid "" "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; " "use of wchar_t values across objects may fail" msgstr "" -#: elf32-arm.c:10304 +#: elf32-arm.c:10301 msgid "" "warning: %B uses %s enums yet the output is to use %s enums; use of enum " "values across objects may fail" msgstr "" -#: elf32-arm.c:10316 +#: elf32-arm.c:10313 msgid "error: %B uses iWMMXt register arguments, %B does not" msgstr "" -#: elf32-arm.c:10333 +#: elf32-arm.c:10330 msgid "error: fp16 format mismatch between %B and %B" msgstr "" -#: elf32-arm.c:10357 +#: elf32-arm.c:10354 msgid "DIV usage mismatch between %B and %B" msgstr "" -#: elf32-arm.c:10376 +#: elf32-arm.c:10373 msgid "%B has has both the current and legacy Tag_MPextension_use attributes" msgstr "" #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. #. Ignore init flag - it may not be set, despite the flags field containing valid data. -#: elf32-arm.c:10468 elf32-bfin.c:5065 elf32-cris.c:4162 elf32-m68hc1x.c:1282 +#: elf32-arm.c:10461 elf32-bfin.c:5065 elf32-cris.c:4162 elf32-m68hc1x.c:1282 #: elf32-m68k.c:1235 elf32-score.c:3996 elf32-score7.c:3803 elf32-vax.c:528 -#: elfxx-mips.c:12842 +#: elfxx-mips.c:12845 #, c-format msgid "private flags = %lx:" msgstr "" -#: elf32-arm.c:10477 +#: elf32-arm.c:10470 #, c-format msgid " [interworking enabled]" msgstr "" -#: elf32-arm.c:10485 +#: elf32-arm.c:10478 #, c-format msgid " [VFP float format]" msgstr "" -#: elf32-arm.c:10487 +#: elf32-arm.c:10480 #, c-format msgid " [Maverick float format]" msgstr "" -#: elf32-arm.c:10489 +#: elf32-arm.c:10482 #, c-format msgid " [FPA float format]" msgstr "" -#: elf32-arm.c:10498 +#: elf32-arm.c:10491 #, c-format msgid " [new ABI]" msgstr "" -#: elf32-arm.c:10501 +#: elf32-arm.c:10494 #, c-format msgid " [old ABI]" msgstr "" -#: elf32-arm.c:10504 +#: elf32-arm.c:10497 #, c-format msgid " [software FP]" msgstr "" -#: elf32-arm.c:10513 +#: elf32-arm.c:10506 #, c-format msgid " [Version1 EABI]" msgstr "" -#: elf32-arm.c:10516 elf32-arm.c:10527 +#: elf32-arm.c:10509 elf32-arm.c:10520 #, c-format msgid " [sorted symbol table]" msgstr "" -#: elf32-arm.c:10518 elf32-arm.c:10529 +#: elf32-arm.c:10511 elf32-arm.c:10522 #, c-format msgid " [unsorted symbol table]" msgstr "" -#: elf32-arm.c:10524 +#: elf32-arm.c:10517 #, c-format msgid " [Version2 EABI]" msgstr "" -#: elf32-arm.c:10532 +#: elf32-arm.c:10525 #, c-format msgid " [dynamic symbols use segment index]" msgstr "" -#: elf32-arm.c:10535 +#: elf32-arm.c:10528 #, c-format msgid " [mapping symbols precede others]" msgstr "" -#: elf32-arm.c:10542 +#: elf32-arm.c:10535 #, c-format msgid " [Version3 EABI]" msgstr "" -#: elf32-arm.c:10546 +#: elf32-arm.c:10539 #, c-format msgid " [Version4 EABI]" msgstr "" -#: elf32-arm.c:10550 +#: elf32-arm.c:10543 #, c-format msgid " [Version5 EABI]" msgstr "" -#: elf32-arm.c:10553 +#: elf32-arm.c:10546 #, c-format msgid " [BE8]" msgstr "" -#: elf32-arm.c:10556 +#: elf32-arm.c:10549 #, c-format msgid " [LE8]" msgstr "" -#: elf32-arm.c:10562 +#: elf32-arm.c:10555 #, c-format msgid " " msgstr "" -#: elf32-arm.c:10569 +#: elf32-arm.c:10562 #, c-format msgid " [relocatable executable]" msgstr "" -#: elf32-arm.c:10572 +#: elf32-arm.c:10565 #, c-format msgid " [has entry point]" msgstr "" -#: elf32-arm.c:10577 +#: elf32-arm.c:10570 #, c-format msgid "" msgstr "" -#: elf32-arm.c:10824 elf32-i386.c:1322 elf32-s390.c:1000 elf32-xtensa.c:1009 +#: elf32-arm.c:10817 elf32-i386.c:1322 elf32-s390.c:1000 elf32-xtensa.c:1009 #: elf64-s390.c:960 elf64-x86-64.c:1105 elfxx-sparc.c:1370 msgid "%B: bad symbol index: %d" msgstr "" -#: elf32-arm.c:10946 elf64-x86-64.c:1265 elf64-x86-64.c:1434 elfxx-mips.c:7942 +#: elf32-arm.c:10939 elf64-x86-64.c:1265 elf64-x86-64.c:1434 elfxx-mips.c:7942 msgid "" "%B: relocation %s against `%s' can not be used when making a shared object; " "recompile with -fPIC" msgstr "" -#: elf32-arm.c:11948 +#: elf32-arm.c:11941 #, c-format msgid "Errors encountered processing file %s" msgstr "" -#: elf32-arm.c:13334 +#: elf32-arm.c:13327 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location" msgstr "" #. There's not much we can do apart from complain if this #. happens. -#: elf32-arm.c:13361 +#: elf32-arm.c:13354 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)" msgstr "" -#: elf32-arm.c:13455 elf32-arm.c:13477 +#: elf32-arm.c:13448 elf32-arm.c:13470 msgid "%B: error: VFP11 veneer out of range" msgstr "" -#: elf32-arm.c:14002 +#: elf32-arm.c:13995 msgid "error: %B is already in final BE8 format" msgstr "" -#: elf32-arm.c:14078 +#: elf32-arm.c:14071 msgid "" "error: Source object %B has EABI version %d, but target %B has EABI version %" "d" msgstr "" -#: elf32-arm.c:14094 +#: elf32-arm.c:14087 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d" msgstr "" -#: elf32-arm.c:14119 +#: elf32-arm.c:14112 msgid "error: %B uses VFP instructions, whereas %B does not" msgstr "" -#: elf32-arm.c:14123 +#: elf32-arm.c:14116 msgid "error: %B uses FPA instructions, whereas %B does not" msgstr "" -#: elf32-arm.c:14133 +#: elf32-arm.c:14126 msgid "error: %B uses Maverick instructions, whereas %B does not" msgstr "" -#: elf32-arm.c:14137 +#: elf32-arm.c:14130 msgid "error: %B does not use Maverick instructions, whereas %B does" msgstr "" -#: elf32-arm.c:14156 +#: elf32-arm.c:14149 msgid "error: %B uses software FP, whereas %B uses hardware FP" msgstr "" -#: elf32-arm.c:14160 +#: elf32-arm.c:14153 msgid "error: %B uses hardware FP, whereas %B uses software FP" msgstr "" #: elf32-avr.c:1271 elf32-bfin.c:3201 elf32-cris.c:2085 elf32-fr30.c:617 #: elf32-frv.c:4119 elf32-i860.c:1219 elf32-ip2k.c:1479 elf32-iq2000.c:692 -#: elf32-m32c.c:561 elf32-mep.c:542 elf32-moxie.c:290 elf32-msp430.c:494 +#: elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290 elf32-msp430.c:494 #: elf32-mt.c:399 elf32-openrisc.c:412 elf32-v850.c:2151 elf32-xstormy16.c:949 #: elf64-mmix.c:1530 msgid "internal error: dangerous relocation" @@ -1240,6 +1249,10 @@ msgstr "" msgid "%B: cannot create stub entry %s" msgstr "" +#: elf32-bfin.c:107 elf32-bfin.c:363 +msgid "relocation should be even number" +msgstr "" + #: elf32-bfin.c:1575 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'" msgstr "" @@ -1296,6 +1309,11 @@ msgstr "" msgid "%s: cannot link fdpic object file into non-fdpic executable" msgstr "" +#: elf32-bfin.c:5269 +#, c-format +msgid "*** check this relocation %s" +msgstr "" + #: elf32-cris.c:1172 msgid "%B, section %A: unresolvable relocation %s against symbol `%s'" msgstr "" @@ -1414,6 +1432,16 @@ msgstr "" msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" msgstr "" +#: elf32-dlx.c:142 +#, c-format +msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported" +msgstr "" + +#: elf32-dlx.c:204 +#, c-format +msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported" +msgstr "" + #: elf32-frv.c:1509 elf32-frv.c:1658 msgid "relocation requires zero addend" msgstr "" @@ -1709,7 +1737,7 @@ msgstr "" msgid "%B: linking files compiled for HCS12 with others compiled for HC12" msgstr "" -#: elf32-m68hc1x.c:1257 elf32-ppc.c:4232 elf64-sparc.c:703 elfxx-mips.c:12704 +#: elf32-m68hc1x.c:1257 elf32-ppc.c:4233 elf64-sparc.c:703 elfxx-mips.c:12707 msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)" msgstr "" @@ -1782,15 +1810,26 @@ msgstr "" msgid "%B: Unknown relocation type %d\n" msgstr "" -#: elf32-mep.c:647 +#. Pacify gcc -Wall. +#: elf32-mep.c:157 +#, c-format +msgid "mep: no reloc for code %d" +msgstr "" + +#: elf32-mep.c:163 +#, c-format +msgid "MeP: howto %d has type %d" +msgstr "" + +#: elf32-mep.c:648 msgid "%B and %B are for different cores" msgstr "" -#: elf32-mep.c:664 +#: elf32-mep.c:665 msgid "%B and %B are for different configurations" msgstr "" -#: elf32-mep.c:701 +#: elf32-mep.c:702 #, c-format msgid "private flags = 0x%lx" msgstr "" @@ -1809,7 +1848,7 @@ msgstr "" msgid "%B: probably compiled without -fPIC?" msgstr "" -#: elf32-microblaze.c:2074 elflink.c:12601 +#: elf32-microblaze.c:2074 elflink.c:12607 msgid "%B: bad relocation section name `%s'" msgstr "" @@ -1851,91 +1890,91 @@ msgstr "" msgid "failed to install new APUinfo section." msgstr "" -#: elf32-ppc.c:3358 +#: elf32-ppc.c:3359 msgid "%B: relocation %s cannot be used when making a shared object" msgstr "" #. It does not make sense to have a procedure linkage #. table entry for a local symbol. -#: elf32-ppc.c:3702 +#: elf32-ppc.c:3703 msgid "%B(%A+0x%lx): %s reloc against local symbol" msgstr "" -#: elf32-ppc.c:4044 elf32-ppc.c:4059 elfxx-mips.c:12411 elfxx-mips.c:12437 +#: elf32-ppc.c:4045 elf32-ppc.c:4060 elfxx-mips.c:12411 elfxx-mips.c:12437 #: elfxx-mips.c:12459 elfxx-mips.c:12485 msgid "Warning: %B uses hard float, %B uses soft float" msgstr "" -#: elf32-ppc.c:4047 elf32-ppc.c:4051 +#: elf32-ppc.c:4048 elf32-ppc.c:4052 msgid "" "Warning: %B uses double-precision hard float, %B uses single-precision hard " "float" msgstr "" -#: elf32-ppc.c:4055 +#: elf32-ppc.c:4056 msgid "Warning: %B uses soft float, %B uses single-precision hard float" msgstr "" -#: elf32-ppc.c:4062 elf32-ppc.c:4066 elfxx-mips.c:12391 elfxx-mips.c:12395 +#: elf32-ppc.c:4063 elf32-ppc.c:4067 elfxx-mips.c:12391 elfxx-mips.c:12395 msgid "Warning: %B uses unknown floating point ABI %d" msgstr "" -#: elf32-ppc.c:4108 elf32-ppc.c:4112 +#: elf32-ppc.c:4109 elf32-ppc.c:4113 msgid "Warning: %B uses unknown vector ABI %d" msgstr "" -#: elf32-ppc.c:4116 +#: elf32-ppc.c:4117 msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\"" msgstr "" -#: elf32-ppc.c:4133 elf32-ppc.c:4136 +#: elf32-ppc.c:4134 elf32-ppc.c:4137 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory" msgstr "" -#: elf32-ppc.c:4139 elf32-ppc.c:4143 +#: elf32-ppc.c:4140 elf32-ppc.c:4144 msgid "Warning: %B uses unknown small structure return convention %d" msgstr "" -#: elf32-ppc.c:4197 +#: elf32-ppc.c:4198 msgid "" "%B: compiled with -mrelocatable and linked with modules compiled normally" msgstr "" -#: elf32-ppc.c:4205 +#: elf32-ppc.c:4206 msgid "" "%B: compiled normally and linked with modules compiled with -mrelocatable" msgstr "" -#: elf32-ppc.c:4293 +#: elf32-ppc.c:4294 msgid "Using bss-plt due to %B" msgstr "" -#: elf32-ppc.c:7192 elf64-ppc.c:12307 +#: elf32-ppc.c:7193 elf64-ppc.c:12330 msgid "%B: unknown relocation type %d for symbol %s" msgstr "" -#: elf32-ppc.c:7453 +#: elf32-ppc.c:7454 msgid "%B(%A+0x%lx): non-zero addend on %s reloc against `%s'" msgstr "" -#: elf32-ppc.c:7651 elf64-ppc.c:12812 +#: elf32-ppc.c:7652 elf64-ppc.c:12835 msgid "%B(%A+0x%lx): relocation %s for indirect function %s unsupported" msgstr "" -#: elf32-ppc.c:7881 elf32-ppc.c:7911 elf32-ppc.c:7958 +#: elf32-ppc.c:7882 elf32-ppc.c:7912 elf32-ppc.c:7959 msgid "" "%B: the target (%s) of a %s relocation is in the wrong output section (%s)" msgstr "" -#: elf32-ppc.c:8030 +#: elf32-ppc.c:8031 msgid "%B: relocation %s is not yet supported for symbol %s." msgstr "" -#: elf32-ppc.c:8138 elf64-ppc.c:13162 +#: elf32-ppc.c:8139 elf64-ppc.c:13185 msgid "%B(%A+0x%lx): %s reloc against `%s': error %d" msgstr "" -#: elf32-ppc.c:8629 +#: elf32-ppc.c:8630 #, c-format msgid "%s not defined in linker created %s" msgstr "" @@ -2212,7 +2251,7 @@ msgstr "" msgid "overlay stub relocation overflow" msgstr "" -#: elf32-spu.c:1960 elf64-ppc.c:11327 +#: elf32-spu.c:1960 elf64-ppc.c:11350 msgid "stubs don't match calculated size" msgstr "" @@ -2378,8 +2417,7 @@ msgid "" msgstr "" #: elf32-v850.c:483 -#, c-format -msgid "FAILED to find previous HI16 reloc\n" +msgid "FAILED to find previous HI16 reloc" msgstr "" #: elf32-v850.c:2155 @@ -2466,7 +2504,7 @@ msgstr "" msgid "%s: warning: %s relocation to 0x%x from %s section" msgstr "" -#: elf32-xstormy16.c:451 elf32-ia64.c:2861 elf64-ia64.c:2861 +#: elf32-xstormy16.c:451 elf32-ia64.c:2854 elf64-ia64.c:2854 msgid "non-zero addend in @fptr reloc" msgstr "" @@ -2565,12 +2603,12 @@ msgstr "" msgid "%B: tp-relative relocation against dynamic symbol %s" msgstr "" -#: elf64-hppa.c:2101 +#: elf64-hppa.c:2094 #, c-format msgid "stub entry for %s cannot load .plt, dp offset = %ld" msgstr "" -#: elf64-hppa.c:3299 +#: elf64-hppa.c:3292 msgid "%B(%A+0x%lx): cannot reach %s" msgstr "" @@ -2689,11 +2727,11 @@ msgstr "" msgid "can't build branch stub `%s'" msgstr "" -#: elf64-ppc.c:10684 +#: elf64-ppc.c:10707 msgid "%B section %A exceeds stub group size" msgstr "" -#: elf64-ppc.c:11339 +#: elf64-ppc.c:11362 #, c-format msgid "" "linker stubs in %u group%s\n" @@ -2704,24 +2742,24 @@ msgid "" " plt call %lu" msgstr "" -#: elf64-ppc.c:12190 +#: elf64-ppc.c:12213 msgid "" "%B(%A+0x%lx): automatic multiple TOCs not supported using your crt files; " "recompile with -mminimal-toc or upgrade gcc" msgstr "" -#: elf64-ppc.c:12198 +#: elf64-ppc.c:12221 msgid "" "%B(%A+0x%lx): sibling call optimization to `%s' does not allow automatic " "multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, " "or make `%s' extern" msgstr "" -#: elf64-ppc.c:12919 +#: elf64-ppc.c:12942 msgid "%B: relocation %s is not supported for symbol %s." msgstr "" -#: elf64-ppc.c:13096 +#: elf64-ppc.c:13119 msgid "%B: error: relocation %s not a multiple of %d" msgstr "" @@ -2881,116 +2919,132 @@ msgid "" "note: '%s' is defined in DSO %B so try adding it to the linker command line" msgstr "" -#: elflink.c:5779 +#: elflink.c:5776 #, c-format msgid "%s: undefined version: %s" msgstr "" -#: elflink.c:5847 +#: elflink.c:5844 msgid "%B: .preinit_array section is not allowed in DSO" msgstr "" -#: elflink.c:7598 +#: elflink.c:7595 #, c-format msgid "undefined %s reference in complex symbol: %s" msgstr "" -#: elflink.c:7752 +#: elflink.c:7749 #, c-format msgid "unknown operator '%c' in complex symbol" msgstr "" -#: elflink.c:8091 elflink.c:8108 elflink.c:8145 elflink.c:8162 +#: elflink.c:8088 elflink.c:8105 elflink.c:8142 elflink.c:8159 msgid "%B: Unable to sort relocs - they are in more than one size" msgstr "" -#: elflink.c:8122 elflink.c:8176 +#: elflink.c:8119 elflink.c:8173 msgid "%B: Unable to sort relocs - they are of an unknown size" msgstr "" -#: elflink.c:8227 +#: elflink.c:8224 msgid "Not enough memory to sort relocations" msgstr "" -#: elflink.c:8420 +#: elflink.c:8417 msgid "%B: Too many sections: %d (>= %d)" msgstr "" -#: elflink.c:8663 -msgid "%B: %s symbol `%s' in %B is referenced by DSO" +#: elflink.c:8664 +msgid "%B: internal symbol `%s' in %B is referenced by DSO" +msgstr "" + +#: elflink.c:8666 +msgid "%B: hidden symbol `%s' in %B is referenced by DSO" +msgstr "" + +#: elflink.c:8668 +msgid "%B: local symbol `%s' in %B is referenced by DSO" msgstr "" -#: elflink.c:8754 +#: elflink.c:8757 msgid "%B: could not find output section %A for input section %A" msgstr "" -#: elflink.c:8874 -msgid "%B: %s symbol `%s' isn't defined" +#: elflink.c:8880 +msgid "%B: protected symbol `%s' isn't defined" msgstr "" -#: elflink.c:9428 +#: elflink.c:8882 +msgid "%B: internal symbol `%s' isn't defined" +msgstr "" + +#: elflink.c:8884 +msgid "%B: hidden symbol `%s' isn't defined" +msgstr "" + +#: elflink.c:9434 msgid "" "error: %B contains a reloc (0x%s) for section %A that references a non-" "existent global symbol" msgstr "" -#: elflink.c:9494 +#: elflink.c:9500 msgid "" "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' " "of %B\n" msgstr "" -#: elflink.c:10141 +#: elflink.c:10147 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections" msgstr "" -#: elflink.c:10146 +#: elflink.c:10152 #, c-format msgid "%A has both ordered and unordered sections" msgstr "" -#: elflink.c:10992 elflink.c:11036 +#: elflink.c:10998 elflink.c:11042 msgid "%B: could not find output section %s" msgstr "" -#: elflink.c:10997 +#: elflink.c:11003 #, c-format msgid "warning: %s section has zero size" msgstr "" -#: elflink.c:11102 +#: elflink.c:11108 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n" msgstr "" -#: elflink.c:11289 +#: elflink.c:11295 msgid "%P%X: can not read symbols: %E\n" msgstr "" -#: elflink.c:11638 +#: elflink.c:11644 msgid "Removing unused section '%s' in file '%B'" msgstr "" -#: elflink.c:11850 +#: elflink.c:11856 msgid "Warning: gc-sections option ignored" msgstr "" -#: elflink.c:12399 +#: elflink.c:12405 msgid "%B: ignoring duplicate section `%A'" msgstr "" -#: elflink.c:12406 elflink.c:12413 +#: elflink.c:12412 elflink.c:12419 msgid "%B: duplicate section `%A' has different size" msgstr "" -#: elflink.c:12421 elflink.c:12426 +#: elflink.c:12427 elflink.c:12432 msgid "%B: warning: could not read contents of section `%A'" msgstr "" -#: elflink.c:12430 +#: elflink.c:12436 msgid "%B: warning: duplicate section `%A' has different contents" msgstr "" -#: elflink.c:12531 linker.c:3138 +#: elflink.c:12537 linker.c:3136 msgid "%F%P: already_linked_table: %E\n" msgstr "" @@ -3065,68 +3119,68 @@ msgstr "" msgid "%B: ABI is incompatible with that of the selected emulation" msgstr "" -#: elfxx-mips.c:12613 +#: elfxx-mips.c:12616 msgid "%B: warning: linking abicalls files with non-abicalls files" msgstr "" -#: elfxx-mips.c:12630 +#: elfxx-mips.c:12633 msgid "%B: linking 32-bit code with 64-bit code" msgstr "" -#: elfxx-mips.c:12658 +#: elfxx-mips.c:12661 msgid "%B: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:12681 +#: elfxx-mips.c:12684 msgid "%B: ABI mismatch: linking %s module with previous %s modules" msgstr "" -#: elfxx-mips.c:12845 +#: elfxx-mips.c:12848 #, c-format msgid " [abi=O32]" msgstr "" -#: elfxx-mips.c:12847 +#: elfxx-mips.c:12850 #, c-format msgid " [abi=O64]" msgstr "" -#: elfxx-mips.c:12849 +#: elfxx-mips.c:12852 #, c-format msgid " [abi=EABI32]" msgstr "" -#: elfxx-mips.c:12851 +#: elfxx-mips.c:12854 #, c-format msgid " [abi=EABI64]" msgstr "" -#: elfxx-mips.c:12853 +#: elfxx-mips.c:12856 #, c-format msgid " [abi unknown]" msgstr "" -#: elfxx-mips.c:12855 +#: elfxx-mips.c:12858 #, c-format msgid " [abi=N32]" msgstr "" -#: elfxx-mips.c:12857 +#: elfxx-mips.c:12860 #, c-format msgid " [abi=64]" msgstr "" -#: elfxx-mips.c:12859 +#: elfxx-mips.c:12862 #, c-format msgid " [no abi set]" msgstr "" -#: elfxx-mips.c:12880 +#: elfxx-mips.c:12883 #, c-format msgid " [unknown ISA]" msgstr "" -#: elfxx-mips.c:12891 +#: elfxx-mips.c:12894 #, c-format msgid " [not 32bitmode]" msgstr "" @@ -3223,86 +3277,150 @@ msgstr "" msgid "%B: unable to get decompressed section %A" msgstr "" -#: libbfd.c:1027 +#: libbfd.c:1028 #, c-format msgid "Deprecated %s called at %s line %d in %s\n" msgstr "" -#: libbfd.c:1030 +#: libbfd.c:1031 #, c-format msgid "Deprecated %s called\n" msgstr "" -#: linker.c:1911 +#: linker.c:1909 msgid "%B: indirect symbol `%s' to `%s' is a loop" msgstr "" -#: linker.c:2778 +#: linker.c:2776 #, c-format msgid "Attempt to do relocatable link with %s input and %s output" msgstr "" -#: linker.c:3105 +#: linker.c:3103 msgid "%B: warning: ignoring duplicate section `%A'\n" msgstr "" -#: linker.c:3119 +#: linker.c:3117 msgid "%B: warning: duplicate section `%A' has different size\n" msgstr "" -#: mach-o.c:3403 +#: mach-o.c:381 +msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols" +msgstr "" + +#: mach-o.c:1253 +#, c-format +msgid "unable to write unknown load command 0x%lx" +msgstr "" + +#: mach-o.c:1654 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu" +msgstr "" + +#: mach-o.c:1671 +#, c-format +msgid "bfd_mach_o_read_symtab_symbol: symbol name out of range (%lu >= %lu)" +msgstr "" + +#: mach-o.c:1756 +#, c-format +msgid "" +"bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d " +"(max %lu): setting to undefined" +msgstr "" + +#: mach-o.c:1764 +#, c-format +msgid "" +"bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' " +"reference: setting to undefined" +msgstr "" + +#: mach-o.c:1770 +#, c-format +msgid "" +"bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%" +"x: setting to undefined" +msgstr "" + +#: mach-o.c:1840 +msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols" +msgstr "" + +#: mach-o.c:1874 +#, c-format +msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu" +msgstr "" + +#: mach-o.c:2556 +#, c-format +msgid "unable to read unknown load command 0x%lx" +msgstr "" + +#: mach-o.c:2736 +#, c-format +msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx" +msgstr "" + +#: mach-o.c:2832 +#, c-format +msgid "unknown header byte-order value 0x%lx" +msgstr "" + +#: mach-o.c:3402 msgid "Mach-O header:\n" msgstr "" -#: mach-o.c:3404 +#: mach-o.c:3403 #, c-format msgid " magic : %08lx\n" msgstr "" -#: mach-o.c:3405 +#: mach-o.c:3404 #, c-format msgid " cputype : %08lx (%s)\n" msgstr "" -#: mach-o.c:3407 +#: mach-o.c:3406 #, c-format msgid " cpusubtype: %08lx\n" msgstr "" -#: mach-o.c:3408 +#: mach-o.c:3407 #, c-format msgid " filetype : %08lx (%s)\n" msgstr "" -#: mach-o.c:3411 +#: mach-o.c:3410 #, c-format msgid " ncmds : %08lx (%lu)\n" msgstr "" -#: mach-o.c:3412 +#: mach-o.c:3411 #, c-format msgid " sizeofcmds: %08lx\n" msgstr "" -#: mach-o.c:3413 +#: mach-o.c:3412 #, c-format msgid " flags : %08lx (" msgstr "" -#: mach-o.c:3415 vms-alpha.c:7652 +#: mach-o.c:3414 vms-alpha.c:7652 msgid ")\n" msgstr "" -#: mach-o.c:3416 +#: mach-o.c:3415 #, c-format msgid " reserved : %08x\n" msgstr "" -#: mach-o.c:3426 +#: mach-o.c:3425 msgid "Segments and Sections:\n" msgstr "" -#: mach-o.c:3427 +#: mach-o.c:3426 msgid " #: Segment name Section name Address\n" msgstr "" @@ -3483,6 +3601,11 @@ msgstr "" msgid "%B: bad pair/reflo after refhi\n" msgstr "" +#: pef.c:519 +#, c-format +msgid "bfd_pef_scan: unknown architecture 0x%lx" +msgstr "" + #: pei-x86_64.c:444 #, c-format msgid "warning: .pdata section size (%ld) is not a multiple of %d\n" @@ -3581,6 +3704,11 @@ msgstr "" msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "" +#: rs6000-core.c:448 +#, c-format +msgid "%s: warning core file truncated" +msgstr "" + #: som.c:5471 #, c-format msgid "" @@ -5483,11 +5611,11 @@ msgstr "" #. FIXME: we do not yet support relocatable link. It is not obvious #. how to do it for debug infos. -#: vms-alpha.c:8676 +#: vms-alpha.c:8671 msgid "%P: relocatable link is not supported\n" msgstr "" -#: vms-alpha.c:8746 +#: vms-alpha.c:8741 msgid "%P: multiple entry points: in modules %B and %B\n" msgstr "" @@ -5546,33 +5674,33 @@ msgstr "" msgid "%B: reloc %s:%d not in csect" msgstr "" -#: xcofflink.c:3186 +#: xcofflink.c:3194 #, c-format msgid "%s: no such symbol" msgstr "" -#: xcofflink.c:3291 +#: xcofflink.c:3299 #, c-format msgid "warning: attempt to export undefined symbol `%s'" msgstr "" -#: xcofflink.c:3673 +#: xcofflink.c:3681 msgid "error: undefined symbol __rtinit" msgstr "" -#: xcofflink.c:4052 +#: xcofflink.c:4060 msgid "%B: loader reloc in unrecognized section `%s'" msgstr "" -#: xcofflink.c:4063 +#: xcofflink.c:4071 msgid "%B: `%s' in loader reloc but not loader sym" msgstr "" -#: xcofflink.c:4079 +#: xcofflink.c:4087 msgid "%B: loader reloc in read-only section %A" msgstr "" -#: xcofflink.c:5097 +#: xcofflink.c:5105 #, c-format msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling" msgstr "" @@ -5583,77 +5711,77 @@ msgid "" "branch." msgstr "" -#: elf32-ia64.c:2809 elf64-ia64.c:2809 +#: elf32-ia64.c:2802 elf64-ia64.c:2802 msgid "@pltoff reloc against local symbol" msgstr "" -#: elf32-ia64.c:4430 elf64-ia64.c:4430 +#: elf32-ia64.c:4423 elf64-ia64.c:4423 #, c-format msgid "%s: short data segment overflowed (0x%lx >= 0x400000)" msgstr "" -#: elf32-ia64.c:4441 elf64-ia64.c:4441 +#: elf32-ia64.c:4434 elf64-ia64.c:4434 #, c-format msgid "%s: __gp does not cover short data segment" msgstr "" -#: elf32-ia64.c:4708 elf64-ia64.c:4708 +#: elf32-ia64.c:4701 elf64-ia64.c:4701 msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'" msgstr "" -#: elf32-ia64.c:4775 elf64-ia64.c:4775 +#: elf32-ia64.c:4768 elf64-ia64.c:4768 msgid "%B: @gprel relocation against dynamic symbol %s" msgstr "" -#: elf32-ia64.c:4838 elf64-ia64.c:4838 +#: elf32-ia64.c:4831 elf64-ia64.c:4831 msgid "%B: linking non-pic code in a position independent executable" msgstr "" -#: elf32-ia64.c:4975 elf64-ia64.c:4975 +#: elf32-ia64.c:4968 elf64-ia64.c:4968 msgid "%B: @internal branch to dynamic symbol %s" msgstr "" -#: elf32-ia64.c:4977 elf64-ia64.c:4977 +#: elf32-ia64.c:4970 elf64-ia64.c:4970 msgid "%B: speculation fixup to dynamic symbol %s" msgstr "" -#: elf32-ia64.c:4979 elf64-ia64.c:4979 +#: elf32-ia64.c:4972 elf64-ia64.c:4972 msgid "%B: @pcrel relocation against dynamic symbol %s" msgstr "" -#: elf32-ia64.c:5176 elf64-ia64.c:5176 +#: elf32-ia64.c:5169 elf64-ia64.c:5169 msgid "unsupported reloc" msgstr "" -#: elf32-ia64.c:5214 elf64-ia64.c:5214 +#: elf32-ia64.c:5207 elf64-ia64.c:5207 msgid "" "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%" "A'." msgstr "" -#: elf32-ia64.c:5229 elf64-ia64.c:5229 +#: elf32-ia64.c:5222 elf64-ia64.c:5222 msgid "" "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> " "0x1000000)." msgstr "" -#: elf32-ia64.c:5491 elf64-ia64.c:5491 +#: elf32-ia64.c:5484 elf64-ia64.c:5484 msgid "%B: linking trap-on-NULL-dereference with non-trapping files" msgstr "" -#: elf32-ia64.c:5500 elf64-ia64.c:5500 +#: elf32-ia64.c:5493 elf64-ia64.c:5493 msgid "%B: linking big-endian files with little-endian files" msgstr "" -#: elf32-ia64.c:5509 elf64-ia64.c:5509 +#: elf32-ia64.c:5502 elf64-ia64.c:5502 msgid "%B: linking 64-bit files with 32-bit files" msgstr "" -#: elf32-ia64.c:5518 elf64-ia64.c:5518 +#: elf32-ia64.c:5511 elf64-ia64.c:5511 msgid "%B: linking constant-gp files with non-constant-gp files" msgstr "" -#: elf32-ia64.c:5528 elf64-ia64.c:5528 +#: elf32-ia64.c:5521 elf64-ia64.c:5521 msgid "%B: linking auto-pic files with non-auto-pic files" msgstr "" diff --git a/bfd/section.c b/bfd/section.c index 51c2196bc44..bff8adfb078 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -1213,6 +1213,29 @@ bfd_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED, return TRUE; } +/* +FUNCTION + bfd_rename_section + +SYNOPSIS + void bfd_rename_section + (bfd *abfd, asection *sec, const char *newname); + +DESCRIPTION + Rename section @var{sec} in @var{abfd} to @var{newname}. +*/ + +void +bfd_rename_section (bfd *abfd, sec_ptr sec, const char *newname) +{ + struct section_hash_entry *sh; + + sh = (struct section_hash_entry *) + ((char *) sec - offsetof (struct section_hash_entry, section)); + sh->section.name = newname; + bfd_hash_rename (&abfd->section_htab, newname, &sh->root); +} + /* FUNCTION bfd_map_over_sections diff --git a/bfd/som.c b/bfd/som.c index a46c35aec5f..a18c8691a49 100644 --- a/bfd/som.c +++ b/bfd/som.c @@ -1,6 +1,6 @@ /* bfd back-end for HP PA-RISC SOM objects. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by the Center for Software Science at the @@ -5774,7 +5774,6 @@ som_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info ATTRIBUTE_UNUSED) { (*_bfd_error_handler) (_("som_sizeof_headers unimplemented")); - fflush (stderr); abort (); return 0; } diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index ba195f9e71b..309c3a241be 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -8220,7 +8220,6 @@ alpha_vms_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) symindex symidx; bfd *element; bfd *orig_element; - bfd *subsbfd; h = *pundef; next_pundef = &(*pundef)->u.undef.next; @@ -8278,14 +8277,10 @@ alpha_vms_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) /* Unlike the generic linker, we know that this element provides a definition for an undefined symbol and we know that we want to include it. We don't need to check anything. */ - subsbfd = NULL; - if (! (*info->callbacks->add_archive_element) - (info, element, h->root.string, &subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, element, h->root.string, &element)) return FALSE; - /* Potentially, the add_archive_element hook may have set a - substitute BFD for us. */ - if (! alpha_vms_link_add_object_symbols (subsbfd ? subsbfd : element, - info)) + if (!alpha_vms_link_add_object_symbols (element, info)) return FALSE; orig_element->archive_pass = pass; diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index c055b260d6a..d3e9043dc3f 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -2292,8 +2292,8 @@ xcoff_link_check_dynamic_ar_symbols (bfd *abfd, && (((struct xcoff_link_hash_entry *) h)->flags & XCOFF_DEF_DYNAMIC) == 0) { - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -2364,8 +2364,8 @@ xcoff_link_check_ar_symbols (bfd *abfd, || (((struct xcoff_link_hash_entry *) h)->flags & XCOFF_DEF_DYNAMIC) == 0)) { - if (! (*info->callbacks->add_archive_element) - (info, abfd, name, subsbfd)) + if (!(*info->callbacks + ->add_archive_element) (info, abfd, name, subsbfd)) return FALSE; *pneeded = TRUE; return TRUE; @@ -2390,22 +2390,30 @@ xcoff_link_check_archive_element (bfd *abfd, bfd_boolean *pneeded) { bfd_boolean keep_syms_p; - bfd *subsbfd = NULL; + bfd *oldbfd; keep_syms_p = (obj_coff_external_syms (abfd) != NULL); - if (! _bfd_coff_get_external_symbols (abfd)) + if (!_bfd_coff_get_external_symbols (abfd)) return FALSE; - if (! xcoff_link_check_ar_symbols (abfd, info, pneeded, &subsbfd)) + oldbfd = abfd; + if (!xcoff_link_check_ar_symbols (abfd, info, pneeded, &abfd)) return FALSE; if (*pneeded) { /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (subsbfd && !_bfd_coff_get_external_symbols (subsbfd)) - return FALSE; - if (! xcoff_link_add_symbols (subsbfd ? subsbfd : abfd, info)) + if (abfd != oldbfd) + { + if (!keep_syms_p + && !_bfd_coff_free_symbols (oldbfd)) + return FALSE; + keep_syms_p = (obj_coff_external_syms (abfd) != NULL); + if (!_bfd_coff_get_external_symbols (abfd)) + return FALSE; + } + if (!xcoff_link_add_symbols (abfd, info)) return FALSE; if (info->keep_memory) keep_syms_p = TRUE; @@ -2413,7 +2421,7 @@ xcoff_link_check_archive_element (bfd *abfd, if (!keep_syms_p) { - if (! _bfd_coff_free_symbols (abfd)) + if (!_bfd_coff_free_symbols (abfd)) return FALSE; } diff --git a/binutils/ChangeLog b/binutils/ChangeLog index f2012664593..2b9865ca3f0 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,139 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-19 Maciej W. Rozycki + * readelf.c (process_object): Free dynamic_section after use. + + 2011-01-18 H.J. Lu + PR binutils/12408 + * readelf.c (process_archive): Free and reset dump_sects + after processing each archive member. + + 2011-01-11 Andreas Schwab + * readelf.c (print_symbol): Handle symbol characters as unsigned. + Whitespace fixes. + + 2011-01-06 Vladimir Siminov + * bucomm.c (get_file_size): Check for negative sizes and issue a + warning message if encountered. + + 2011-01-01 H.J. Lu + * version.c (print_version): Update copyright to 2011. + + 2010-12-15 Kai Tietz + * dwarf.c (display_gdb_index): Fix printf types for + used formatters. + + 2010-12-03 Doug Evans + * dwarf.c: #include "bfd_stdint.h". + (do_gdb_index): New global. + (display_gdb_index): New function. + (dwarf_select_sections_by_names) Add "gdb_index". + (dwarf_select_sections_all): Set do_gdb_index. + (debug_displays): Add .gdb_index. + * dwarf.h (do_gdb_index): Declare. + * objdump.c (usage): Add gdb_index. + * readelf.c (usage): Add gdb_index. + (process_section_headers): Process ".gdb_index". + * doc/binutils.texi (readelf): Document gdb_index dump. + (objdump): Ditto. + + 2010-11-26 Alan Modra + * dwarf.c (decode_location_expression, display_debug_frames): Move + code handling DW_EH_PE_pcrel into.. + (get_encoded_value): ..here. + + 2010-11-21 H.J. Lu + PR binutils/12235 + * elfcomm.c: New. + * elfcomm.h: Likewise. + * Makefile.am (HFILES): Add elfcomm.h. + (CFILES): Add elfcomm.c. + (ELFLIBS): New. + (readelf_SOURCES): Add $(ELFLIBS). + (elfedit_SOURCES): Likewise. + (objdump_SOURCES): Likewise. + * Makefile.in: Regenerated. + * dwarf.c: Include "elfcomm.h". + (byte_get): Removed. + (byte_get_little_endian): Likewise. + (byte_get_big_endian): Likewise. + (byte_get_signed): Likewise. + (error): Likewise. + (warn): Likewise. + * dwarf.h (dwarf_vma): Defined with HOST_WIDEST_INT. + (dwarf_size_type): Likewise. + (byte_get): Removed. + (byte_get_signed): Likewise. + (byte_get_little_endian): Likewise. + (byte_get_big_endian): Likewise. + (error): Likewise. + (warn): Likewise. + * elfedit.c: Include "elfcomm.h". Don't include "aout/ar.h". + Call error () instead of non_fatal (). + (streq): Removed. + (strneq): Likewise. + (const_strneq): Likewise. + (non_fatal): Likewise. + (BYTE_GET): Likewise. + (BYTE_PUT): Likewise. + (byte_get): Likewise. + (byte_put): Likewise. + (byte_get_little_endian): Likewise. + (byte_get_big_endian): Likewise. + (byte_put_little_endian): Likewise. + (byte_put_big_endian): Likewise. + (adjust_relative_path): Likewise. + (archive_info): Likewise. + (setup_archive): Likewise. + (release_archive): Likewise. + (setup_nested_archive): Likewise. + (get_archive_member_name): Likewise. + (get_archive_member_name_at): Likewise. + (make_qualified_name): Likewise. + * objdump.c: Include "elfcomm.h". + * readelf.c: Include "elfcomm.h". Don't include "aout/ar.h". + (BYTE_GET): Removed. + (BYTE_GET_SIGNED): Removed. + (streq): Likewise. + (strneq): Likewise. + (const_strneq): Likewise. + (byte_put): Likewise. + (byte_put_little_endian): Likewise. + (byte_put_big_endian): Likewise. + (adjust_relative_path): Likewise. + (archive_info): Likewise. + (setup_archive): Likewise. + (release_archive): Likewise. + (setup_nested_archive): Likewise. + (get_archive_member_name): Likewise. + (get_archive_member_name_at): Likewise. + (make_qualified_name): Likewise. + + 2010-11-18 Alan Modra + PR binutils/11742 + * readelf.c (get_archive_member_name): Formatting. Properly + handle full size ar_name. + + 2010-11-17 Alan Modra + * ar.c (print_contents): Don't internationalize strings without words. + * dwarf.c (process_extended_line_op): Likewise. + (process_debug_info): Likwise. + (display_debug_lines_raw): Likewise. + (display_debug_lines_decoded): Likewise. + (display_debug_abbrev): Likewise. + * readelf.c (process_file_header): Likewise. + (GET_OP): Likewise. + (decode_arm_unwind): Likewise. + (process_mips_specific): Likewise. + * resrc.c (run_cmd): Likewise. + (rcparse_warning): Likewise. + * objdump.c (dump_headers): Don't print "Pg". + + 2010-11-08 Alan Modra + * objcopy.c (copy_main): No need to rename sections when compressing + or decompressing. + 2010-12-21 Alan Modra * po/ja.po: Update. diff --git a/binutils/Makefile.am b/binutils/Makefile.am index 0978538f29d..65460878b05 100644 --- a/binutils/Makefile.am +++ b/binutils/Makefile.am @@ -84,7 +84,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ HFILES = \ arsup.h binemul.h bucomm.h budbg.h \ - coffgrok.h debug.h dlltool.h dwarf.h nlmconv.h \ + coffgrok.h debug.h dlltool.h dwarf.h elfcomm.h nlmconv.h \ sysdep.h unwind-ia64.h windres.h winduni.h windint.h \ windmc.h @@ -95,7 +95,7 @@ CFILES = \ addr2line.c ar.c arsup.c bin2c.c binemul.c bucomm.c \ coffdump.c coffgrok.c cxxfilt.c \ dwarf.c debug.c dlltool.c dllwrap.c \ - emul_aix.c emul_vanilla.c filemode.c \ + elfcomm.c emul_aix.c emul_vanilla.c filemode.c \ ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ nlmconv.c nm.c not-ranlib.c not-strip.c \ objcopy.c objdump.c prdbg.c \ @@ -116,6 +116,9 @@ WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c # Code shared by all the binutils. BULIBS = bucomm.c version.c filemode.c +# Code shared by the ELF related programs. +ELFLIBS = elfcomm.c + BFDLIB = ../bfd/libbfd.la OPCODES = ../opcodes/libopcodes.la @@ -192,17 +195,17 @@ objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) strings_SOURCES = strings.c $(BULIBS) -readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c +readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS) readelf_LDADD = $(LIBINTL) $(LIBIBERTY) -elfedit_SOURCES = elfedit.c version.c +elfedit_SOURCES = elfedit.c version.c $(ELFLIBS) elfedit_LDADD = $(LIBINTL) $(LIBIBERTY) strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) nm_new_SOURCES = nm.c $(BULIBS) -objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS) +objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS) $(ELFLIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) objdump.@OBJEXT@:objdump.c diff --git a/binutils/Makefile.in b/binutils/Makefile.in index fddc931e66a..8e3d7f2faf8 100644 --- a/binutils/Makefile.in +++ b/binutils/Makefile.in @@ -121,7 +121,9 @@ am_dlltool_OBJECTS = dlltool.$(OBJEXT) defparse.$(OBJEXT) \ dlltool_OBJECTS = $(am_dlltool_OBJECTS) am_dllwrap_OBJECTS = dllwrap.$(OBJEXT) version.$(OBJEXT) dllwrap_OBJECTS = $(am_dllwrap_OBJECTS) -am_elfedit_OBJECTS = elfedit.$(OBJEXT) version.$(OBJEXT) +am__objects_2 = elfcomm.$(OBJEXT) +am_elfedit_OBJECTS = elfedit.$(OBJEXT) version.$(OBJEXT) \ + $(am__objects_2) elfedit_OBJECTS = $(am_elfedit_OBJECTS) am_nlmconv_OBJECTS = nlmconv.$(OBJEXT) nlmheader.$(OBJEXT) \ $(am__objects_1) @@ -130,22 +132,22 @@ nlmconv_LDADD = $(LDADD) am_nm_new_OBJECTS = nm.$(OBJEXT) $(am__objects_1) nm_new_OBJECTS = $(am_nm_new_OBJECTS) nm_new_LDADD = $(LDADD) -am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \ +am__objects_3 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \ ieee.$(OBJEXT) rdcoff.$(OBJEXT) -am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT) +am__objects_4 = $(am__objects_3) wrstabs.$(OBJEXT) am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \ - rename.$(OBJEXT) $(am__objects_3) $(am__objects_1) + rename.$(OBJEXT) $(am__objects_4) $(am__objects_1) objcopy_OBJECTS = $(am_objcopy_OBJECTS) objcopy_LDADD = $(LDADD) am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) prdbg.$(OBJEXT) \ - $(am__objects_2) $(am__objects_1) + $(am__objects_3) $(am__objects_1) $(am__objects_2) objdump_OBJECTS = $(am_objdump_OBJECTS) am_ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \ arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \ binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1) ranlib_OBJECTS = $(am_ranlib_OBJECTS) am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \ - unwind-ia64.$(OBJEXT) dwarf.$(OBJEXT) + unwind-ia64.$(OBJEXT) dwarf.$(OBJEXT) $(am__objects_2) readelf_OBJECTS = $(am_readelf_OBJECTS) am_size_OBJECTS = size.$(OBJEXT) $(am__objects_1) size_OBJECTS = $(am_size_OBJECTS) @@ -158,7 +160,7 @@ am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1) strings_OBJECTS = $(am_strings_OBJECTS) strings_LDADD = $(LDADD) am_strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \ - rename.$(OBJEXT) $(am__objects_3) $(am__objects_1) + rename.$(OBJEXT) $(am__objects_4) $(am__objects_1) strip_new_OBJECTS = $(am_strip_new_OBJECTS) strip_new_LDADD = $(LDADD) am_sysdump_OBJECTS = sysdump.$(OBJEXT) $(am__objects_1) @@ -426,7 +428,7 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ HFILES = \ arsup.h binemul.h bucomm.h budbg.h \ - coffgrok.h debug.h dlltool.h dwarf.h nlmconv.h \ + coffgrok.h debug.h dlltool.h dwarf.h elfcomm.h nlmconv.h \ sysdep.h unwind-ia64.h windres.h winduni.h windint.h \ windmc.h @@ -436,7 +438,7 @@ CFILES = \ addr2line.c ar.c arsup.c bin2c.c binemul.c bucomm.c \ coffdump.c coffgrok.c cxxfilt.c \ dwarf.c debug.c dlltool.c dllwrap.c \ - emul_aix.c emul_vanilla.c filemode.c \ + elfcomm.c emul_aix.c emul_vanilla.c filemode.c \ ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \ nlmconv.c nm.c not-ranlib.c not-strip.c \ objcopy.c objdump.c prdbg.c \ @@ -456,6 +458,9 @@ WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c # Code shared by all the binutils. BULIBS = bucomm.c version.c filemode.c + +# Code shared by the ELF related programs. +ELFLIBS = elfcomm.c BFDLIB = ../bfd/libbfd.la OPCODES = ../opcodes/libopcodes.la LIBIBERTY = ../libiberty/libiberty.a @@ -505,13 +510,13 @@ LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL) size_SOURCES = size.c $(BULIBS) objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) strings_SOURCES = strings.c $(BULIBS) -readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c +readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS) readelf_LDADD = $(LIBINTL) $(LIBIBERTY) -elfedit_SOURCES = elfedit.c version.c +elfedit_SOURCES = elfedit.c version.c $(ELFLIBS) elfedit_LDADD = $(LIBINTL) $(LIBIBERTY) strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS) nm_new_SOURCES = nm.c $(BULIBS) -objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS) +objdump_SOURCES = objdump.c dwarf.c prdbg.c $(DEBUG_SRCS) $(BULIBS) $(ELFLIBS) objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) cxxfilt_SOURCES = cxxfilt.c $(BULIBS) ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \ @@ -771,6 +776,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlltool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dllwrap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dwarf.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfcomm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfedit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emul_$(EMULATION).Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emul_aix.Po@am__quote@ diff --git a/binutils/ar.c b/binutils/ar.c index 5fe43bc4c27..a08a991290a 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -820,8 +820,7 @@ print_contents (bfd *abfd) fatal (_("internal stat error on %s"), bfd_get_filename (abfd)); if (verbose) - /* xgettext:c-format */ - printf (_("\n<%s>\n\n"), bfd_get_filename (abfd)); + printf ("\n<%s>\n\n", bfd_get_filename (abfd)); bfd_seek (abfd, (file_ptr) 0, SEEK_SET); diff --git a/binutils/bucomm.c b/binutils/bucomm.c index b30c2c519bf..77afc1084a8 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -1,6 +1,6 @@ /* bucomm.c -- Bin Utils COMmon code. Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002, - 2003, 2005, 2006, 2007, 2008, 2009, 2010 + 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -577,6 +577,9 @@ get_file_size (const char * file_name) } else if (! S_ISREG (statbuf.st_mode)) non_fatal (_("Warning: '%s' is not an ordinary file"), file_name); + else if (statbuf.st_size < 0) + non_fatal (_("Warning: '%s' has negative size, probably it is too large"), + file_name); else return statbuf.st_size; diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 9b9056f4442..d3285a5ead8 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -1746,7 +1746,7 @@ objdump [@option{-a}|@option{--archive-headers}] [@option{-R}|@option{--dynamic-reloc}] [@option{-s}|@option{--full-contents}] [@option{-W[lLiaprmfFsoRt]}| - @option{--dwarf}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges]] + @option{--dwarf}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]] [@option{-G}|@option{--stabs}] [@option{-t}|@option{--syms}] [@option{-T}|@option{--dynamic-syms}] @@ -2119,7 +2119,7 @@ Display @var{width} bytes on a single line when disassembling instructions. @item -W[lLiaprmfFsoRt] -@itemx --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges] +@itemx --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index] @cindex DWARF @cindex debug symbols Displays the contents of the debug sections in the file, if any are @@ -2127,7 +2127,7 @@ present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. Note that there is no single letter option to display the content of -trace sections. +trace sections or .gdb_index. @item -G @itemx --stabs @@ -3949,7 +3949,7 @@ readelf [@option{-a}|@option{--all}] [@option{-R} |@option{--relocated-dump=}] [@option{-c}|@option{--archive-index}] [@option{-w[lLiaprmfFsoRt]}| - @option{--debug-dump}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges]] + @option{--debug-dump}[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]] [@option{-I}|@option{--histogram}] [@option{-v}|@option{--version}] [@option{-W}|@option{--wide}] @@ -4101,13 +4101,13 @@ of binary archives. Performs the same function as the @option{t} command to @command{ar}, but without using the BFD library. @xref{ar}. @item -w[lLiaprmfFsoRt] -@itemx --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges] +@itemx --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index] Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. Note that there is no single letter option to display the content of -trace sections. +trace sections or .gdb_index. Note: the @option{=decodedline} option will display the interpreted contents of a .debug_line section whereas the @option{=rawline} option diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 60aa7d159d1..6d1b65ba642 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -22,7 +22,9 @@ #include "sysdep.h" #include "libiberty.h" #include "bfd.h" +#include "bfd_stdint.h" #include "bucomm.h" +#include "elfcomm.h" #include "elf/common.h" #include "dwarf2.h" #include "dwarf.h" @@ -55,6 +57,7 @@ int do_debug_frames_interp; int do_debug_macinfo; int do_debug_str; int do_debug_loc; +int do_gdb_index; int do_trace_info; int do_trace_abbrevs; int do_trace_aranges; @@ -64,125 +67,6 @@ int do_wide; #define FLAG_DEBUG_LINES_RAW 1 #define FLAG_DEBUG_LINES_DECODED 2 -dwarf_vma (*byte_get) (unsigned char *, int); - -dwarf_vma -byte_get_little_endian (unsigned char *field, int size) -{ - switch (size) - { - case 1: - return *field; - - case 2: - return ((unsigned int) (field[0])) - | (((unsigned int) (field[1])) << 8); - - case 3: - return ((unsigned long) (field[0])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[2])) << 16); - - case 4: - return ((unsigned long) (field[0])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[2])) << 16) - | (((unsigned long) (field[3])) << 24); - - case 8: - if (sizeof (dwarf_vma) == 8) - return ((dwarf_vma) (field[0])) - | (((dwarf_vma) (field[1])) << 8) - | (((dwarf_vma) (field[2])) << 16) - | (((dwarf_vma) (field[3])) << 24) - | (((dwarf_vma) (field[4])) << 32) - | (((dwarf_vma) (field[5])) << 40) - | (((dwarf_vma) (field[6])) << 48) - | (((dwarf_vma) (field[7])) << 56); - else if (sizeof (dwarf_vma) == 4) - /* We want to extract data from an 8 byte wide field and - place it into a 4 byte wide field. Since this is a little - endian source we can just use the 4 byte extraction code. */ - return ((unsigned long) (field[0])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[2])) << 16) - | (((unsigned long) (field[3])) << 24); - - default: - error (_("Unhandled data length: %d\n"), size); - abort (); - } -} - -dwarf_vma -byte_get_big_endian (unsigned char *field, int size) -{ - switch (size) - { - case 1: - return *field; - - case 2: - return ((unsigned int) (field[1])) | (((int) (field[0])) << 8); - - case 3: - return ((unsigned long) (field[2])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[0])) << 16); - - case 4: - return ((unsigned long) (field[3])) - | (((unsigned long) (field[2])) << 8) - | (((unsigned long) (field[1])) << 16) - | (((unsigned long) (field[0])) << 24); - - case 8: - if (sizeof (dwarf_vma) == 8) - return ((dwarf_vma) (field[7])) - | (((dwarf_vma) (field[6])) << 8) - | (((dwarf_vma) (field[5])) << 16) - | (((dwarf_vma) (field[4])) << 24) - | (((dwarf_vma) (field[3])) << 32) - | (((dwarf_vma) (field[2])) << 40) - | (((dwarf_vma) (field[1])) << 48) - | (((dwarf_vma) (field[0])) << 56); - else if (sizeof (dwarf_vma) == 4) - { - /* Although we are extracing data from an 8 byte wide field, - we are returning only 4 bytes of data. */ - field += 4; - return ((unsigned long) (field[3])) - | (((unsigned long) (field[2])) << 8) - | (((unsigned long) (field[1])) << 16) - | (((unsigned long) (field[0])) << 24); - } - - default: - error (_("Unhandled data length: %d\n"), size); - abort (); - } -} - -dwarf_vma -byte_get_signed (unsigned char *field, int size) -{ - dwarf_vma x = byte_get (field, size); - - switch (size) - { - case 1: - return (x ^ 0x80) - 0x80; - case 2: - return (x ^ 0x8000) - 0x8000; - case 4: - return (x ^ 0x80000000) - 0x80000000; - case 8: - return x; - default: - abort (); - } -} - static int size_of_encoded_value (int encoding) { @@ -197,14 +81,21 @@ size_of_encoded_value (int encoding) } static dwarf_vma -get_encoded_value (unsigned char *data, int encoding) +get_encoded_value (unsigned char *data, + int encoding, + struct dwarf_section *section) { int size = size_of_encoded_value (encoding); + dwarf_vma val; if (encoding & DW_EH_PE_signed) - return byte_get_signed (data, size); + val = byte_get_signed (data, size); else - return byte_get (data, size); + val = byte_get (data, size); + + if ((encoding & 0x70) == DW_EH_PE_pcrel) + val += section->address + (data - section->start); + return val; } /* Print a dwarf_vma value (typically an address, offset or length) in @@ -336,15 +227,15 @@ process_extended_line_op (unsigned char *data, int is_stmt) printf (_(" define new File Table entry\n")); printf (_(" Entry\tDir\tTime\tSize\tName\n")); - printf (_(" %d\t"), ++state_machine_regs.last_file_entry); + printf (" %d\t", ++state_machine_regs.last_file_entry); name = data; data += strlen ((char *) data) + 1; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); - printf (_("%s\n\n"), name); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); + printf ("%s\n\n", name); break; case DW_LNE_set_discriminator: @@ -1092,9 +983,7 @@ decode_location_expression (unsigned char * data, dwarf_vma addr; encoding = *data++; - addr = get_encoded_value (data, encoding); - if ((encoding & 0x70) == DW_EH_PE_pcrel) - addr += section->address + (data - section->start); + addr = get_encoded_value (data, encoding, section); data += size_of_encoded_value (encoding); printf ("DW_OP_GNU_encoded_addr: fmt:%02x addr:", encoding); @@ -2203,7 +2092,7 @@ process_debug_info (struct dwarf_section *section, } if (!do_loc) - printf (_(" (%s)\n"), get_TAG_name (entry->tag)); + printf (" (%s)\n", get_TAG_name (entry->tag)); switch (entry->tag) { @@ -2413,7 +2302,7 @@ display_debug_lines_raw (struct dwarf_section *section, while (*data != 0) { - printf (_(" %s\n"), data); + printf (" %s\n", data); data += strlen ((char *) data) + 1; } @@ -2435,18 +2324,18 @@ display_debug_lines_raw (struct dwarf_section *section, unsigned char *name; unsigned int bytes_read; - printf (_(" %d\t"), ++state_machine_regs.last_file_entry); + printf (" %d\t", ++state_machine_regs.last_file_entry); name = data; data += strlen ((char *) data) + 1; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); + printf ("%lu\t", read_leb128 (data, & bytes_read, 0)); data += bytes_read; - printf (_("%s\n"), name); + printf ("%s\n", name); } } @@ -2824,14 +2713,11 @@ display_debug_lines_decoded (struct dwarf_section *section, else { if (do_wide || strlen ((char *) directory_table[0]) < 76) - { - printf (_("CU: %s/%s:\n"), directory_table[0], - file_table[0].name); - } + printf (_("CU: %s/%s:\n"), directory_table[0], + file_table[0].name); else - { - printf (_("%s:\n"), file_table[0].name); - } + printf ("%s:\n", file_table[0].name); + printf (_("File name Line number Starting address\n")); } } @@ -2915,7 +2801,7 @@ display_debug_lines_decoded (struct dwarf_section *section, op_code_data += bytes_read; read_leb128 (op_code_data, & bytes_read, 0); - printf (_("%s:\n"), directory_table[dir_index]); + printf ("%s:\n", directory_table[dir_index]); break; } default: @@ -2961,13 +2847,13 @@ display_debug_lines_decoded (struct dwarf_section *section, if (file_table[state_machine_regs.file - 1].directory_index == 0) { /* If directory index is 0, that means current directory. */ - printf (_("\n./%s:[++]\n"), + printf ("\n./%s:[++]\n", file_table[state_machine_regs.file - 1].name); } else { /* The directory index starts counting at 1. */ - printf (_("\n%s/%s:\n"), + printf ("\n%s/%s:\n", directory_table[file_table[state_machine_regs.file - 1].directory_index - 1], file_table[state_machine_regs.file - 1].name); } @@ -3067,11 +2953,11 @@ display_debug_lines_decoded (struct dwarf_section *section, if (!do_wide || (fileNameLength <= MAX_FILENAME_LENGTH)) { if (linfo.li_max_ops_per_insn == 1) - printf (_("%-35s %11d %#18lx\n"), newFileName, + printf ("%-35s %11d %#18lx\n", newFileName, state_machine_regs.line, state_machine_regs.address); else - printf (_("%-35s %11d %#18lx[%d]\n"), newFileName, + printf ("%-35s %11d %#18lx[%d]\n", newFileName, state_machine_regs.line, state_machine_regs.address, state_machine_regs.op_index); @@ -3079,11 +2965,11 @@ display_debug_lines_decoded (struct dwarf_section *section, else { if (linfo.li_max_ops_per_insn == 1) - printf (_("%s %11d %#18lx\n"), newFileName, + printf ("%s %11d %#18lx\n", newFileName, state_machine_regs.line, state_machine_regs.address); else - printf (_("%s %11d %#18lx[%d]\n"), newFileName, + printf ("%s %11d %#18lx[%d]\n", newFileName, state_machine_regs.line, state_machine_regs.address, state_machine_regs.op_index); @@ -3340,13 +3226,13 @@ display_debug_abbrev (struct dwarf_section *section, { abbrev_attr *attr; - printf (_(" %ld %s [%s]\n"), + printf (" %ld %s [%s]\n", entry->entry, get_TAG_name (entry->tag), entry->children ? _("has children") : _("no children")); for (attr = entry->first_attr; attr; attr = attr->next) - printf (_(" %-18s %s\n"), + printf (" %-18s %s\n", get_AT_name (attr->attribute), get_FORM_name (attr->form)); } @@ -4403,9 +4289,7 @@ display_debug_frames (struct dwarf_section *section, segment_selector = byte_get (start, fc->segment_size); start += fc->segment_size; } - fc->pc_begin = get_encoded_value (start, fc->fde_encoding); - if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel) - fc->pc_begin += section->address + (start - section_start); + fc->pc_begin = get_encoded_value (start, fc->fde_encoding, section); start += encoded_ptr_size; fc->pc_range = byte_get (start, encoded_ptr_size); start += encoded_ptr_size; @@ -4623,9 +4507,7 @@ display_debug_frames (struct dwarf_section *section, break; case DW_CFA_set_loc: - vma = get_encoded_value (start, fc->fde_encoding); - if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel) - vma += section->address + (start - section_start); + vma = get_encoded_value (start, fc->fde_encoding, section); start += encoded_ptr_size; if (do_debug_frames_interp) frame_display_row (fc, &need_col_headers, &max_regs); @@ -4982,6 +4864,135 @@ display_debug_frames (struct dwarf_section *section, #undef LEB #undef SLEB +static int +display_gdb_index (struct dwarf_section *section, + void *file ATTRIBUTE_UNUSED) +{ + unsigned char *start = section->start; + uint32_t version; + uint32_t cu_list_offset, tu_list_offset; + uint32_t address_table_offset, symbol_table_offset, constant_pool_offset; + unsigned int cu_list_elements, tu_list_elements; + unsigned int address_table_size, symbol_table_slots; + unsigned char *cu_list, *tu_list; + unsigned char *address_table, *symbol_table, *constant_pool; + unsigned int i; + + /* The documentation for the format of this file is in gdb/dwarf2read.c. */ + + printf (_("Contents of the %s section:\n"), section->name); + + if (section->size < 6 * sizeof (uint32_t)) + { + warn (_("Truncated header in the %s section.\n"), section->name); + return 0; + } + + version = byte_get_little_endian (start, 4); + printf (_("Version %ld\n"), (long) version); + + /* Prior versions are obsolete, and future versions may not be + backwards compatible. */ + if (version != 3) + { + warn (_("Unsupported version %lu.\n"), (unsigned long) version); + return 0; + } + + cu_list_offset = byte_get_little_endian (start + 4, 4); + tu_list_offset = byte_get_little_endian (start + 8, 4); + address_table_offset = byte_get_little_endian (start + 12, 4); + symbol_table_offset = byte_get_little_endian (start + 16, 4); + constant_pool_offset = byte_get_little_endian (start + 20, 4); + + if (cu_list_offset > section->size + || tu_list_offset > section->size + || address_table_offset > section->size + || symbol_table_offset > section->size + || constant_pool_offset > section->size) + { + warn (_("Corrupt header in the %s section.\n"), section->name); + return 0; + } + + cu_list_elements = (tu_list_offset - cu_list_offset) / 8; + tu_list_elements = (address_table_offset - tu_list_offset) / 8; + address_table_size = symbol_table_offset - address_table_offset; + symbol_table_slots = (constant_pool_offset - symbol_table_offset) / 8; + + cu_list = start + cu_list_offset; + tu_list = start + tu_list_offset; + address_table = start + address_table_offset; + symbol_table = start + symbol_table_offset; + constant_pool = start + constant_pool_offset; + + printf (_("\nCU table:\n")); + for (i = 0; i < cu_list_elements; i += 2) + { + uint64_t cu_offset = byte_get_little_endian (cu_list + i * 8, 8); + uint64_t cu_length = byte_get_little_endian (cu_list + i * 8 + 8, 8); + + printf (_("[%3u] 0x%lx - 0x%lx\n"), i / 2, + (unsigned long) cu_offset, + (unsigned long) (cu_offset + cu_length - 1)); + } + + printf (_("\nTU table:\n")); + for (i = 0; i < tu_list_elements; i += 3) + { + uint64_t tu_offset = byte_get_little_endian (tu_list + i * 8, 8); + uint64_t type_offset = byte_get_little_endian (tu_list + i * 8 + 8, 8); + uint64_t signature = byte_get_little_endian (tu_list + i * 8 + 16, 8); + + printf (_("[%3u] 0x%lx 0x%lx "), i / 3, + (unsigned long) tu_offset, + (unsigned long) type_offset); + print_dwarf_vma (signature, 8); + printf ("\n"); + } + + printf (_("\nAddress table:\n")); + for (i = 0; i < address_table_size; i += 2 * 8 + 4) + { + uint64_t low = byte_get_little_endian (address_table + i, 8); + uint64_t high = byte_get_little_endian (address_table + i + 8, 8); + uint32_t cu_index = byte_get_little_endian (address_table + i + 16, 4); + + print_dwarf_vma (low, 8); + print_dwarf_vma (high, 8); + printf (_("%lu\n"), (unsigned long) cu_index); + } + + printf (_("\nSymbol table:\n")); + for (i = 0; i < symbol_table_slots; ++i) + { + uint32_t name_offset = byte_get_little_endian (symbol_table + i * 8, 4); + uint32_t cu_vector_offset = byte_get_little_endian (symbol_table + i * 8 + 4, 4); + uint32_t num_cus, cu; + + if (name_offset != 0 + || cu_vector_offset != 0) + { + unsigned int j; + + printf ("[%3u] %s:", i, constant_pool + name_offset); + num_cus = byte_get_little_endian (constant_pool + cu_vector_offset, 4); + for (j = 0; j < num_cus; ++j) + { + cu = byte_get_little_endian (constant_pool + cu_vector_offset + 4 + j * 4, 4); + /* Convert to TU number if it's for a type unit. */ + if (cu >= cu_list_elements) + printf (" T%lu", (unsigned long) (cu - cu_list_elements)); + else + printf (" %lu", (unsigned long) cu); + } + printf ("\n"); + } + } + + return 1; +} + static int display_debug_not_supported (struct dwarf_section *section, void *file ATTRIBUTE_UNUSED) @@ -5022,28 +5033,6 @@ xcrealloc (void *ptr, size_t nmemb, size_t size) return xrealloc (ptr, nmemb * size); } -void -error (const char *message, ...) -{ - va_list args; - - va_start (args, message); - fprintf (stderr, _("%s: Error: "), program_name); - vfprintf (stderr, message, args); - va_end (args); -} - -void -warn (const char *message, ...) -{ - va_list args; - - va_start (args, message); - fprintf (stderr, _("%s: Warning: "), program_name); - vfprintf (stderr, message, args); - va_end (args); -} - void free_debug_memory (void) { @@ -5107,6 +5096,8 @@ dwarf_select_sections_by_names (const char *names) with earlier versions of readelf. */ { "ranges", & do_debug_aranges, 1 }, { "str", & do_debug_str, 1 }, + /* The special .gdb_index section. */ + { "gdb_index", & do_gdb_index, 1 }, /* These trace_* sections are used by Itanium VMS. */ { "trace_abbrev", & do_trace_abbrevs, 1 }, { "trace_aranges", & do_trace_aranges, 1 }, @@ -5231,6 +5222,7 @@ dwarf_select_sections_all (void) do_debug_macinfo = 1; do_debug_str = 1; do_debug_loc = 1; + do_gdb_index = 1; do_trace_info = 1; do_trace_abbrevs = 1; do_trace_aranges = 1; @@ -5270,6 +5262,8 @@ struct dwarf_section_display debug_displays[] = display_debug_types, &do_debug_info, 1 }, { { ".debug_weaknames", ".zdebug_weaknames", NULL, NULL, 0, 0 }, display_debug_not_supported, NULL, 0 }, + { { ".gdb_index", "", NULL, NULL, 0, 0 }, + display_gdb_index, &do_gdb_index, 0 }, { { ".trace_info", "", NULL, NULL, 0, 0 }, display_trace_info, &do_trace_info, 1 }, { { ".trace_abbrev", "", NULL, NULL, 0, 0 }, diff --git a/binutils/dwarf.h b/binutils/dwarf.h index 1c47c5efa55..22ff496ca9a 100644 --- a/binutils/dwarf.h +++ b/binutils/dwarf.h @@ -19,15 +19,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2) -/* We can't use any bfd types here since readelf may define BFD64 and - objdump may not. */ -typedef unsigned long long dwarf_vma; -typedef unsigned long long dwarf_size_type; -#else -typedef unsigned long dwarf_vma; -typedef unsigned long dwarf_size_type; -#endif +typedef unsigned HOST_WIDEST_INT dwarf_vma; +typedef unsigned HOST_WIDEST_INT dwarf_size_type; struct dwarf_section { @@ -100,11 +93,6 @@ typedef struct } debug_info; -extern dwarf_vma (*byte_get) (unsigned char *, int); -extern dwarf_vma byte_get_signed (unsigned char *, int); -extern dwarf_vma byte_get_little_endian (unsigned char *, int); -extern dwarf_vma byte_get_big_endian (unsigned char *, int); - extern int eh_addr_size; extern int do_debug_info; @@ -119,6 +107,7 @@ extern int do_debug_frames_interp; extern int do_debug_macinfo; extern int do_debug_str; extern int do_debug_loc; +extern int do_gdb_index; extern int do_trace_info; extern int do_trace_abbrevs; extern int do_trace_aranges; @@ -142,8 +131,5 @@ void *cmalloc (size_t, size_t); void *xcmalloc (size_t, size_t); void *xcrealloc (void *, size_t, size_t); -void error (const char *, ...) ATTRIBUTE_PRINTF_1; -void warn (const char *, ...) ATTRIBUTE_PRINTF_1; - unsigned long int read_leb128 (unsigned char *data, unsigned int *length_return, int sign); diff --git a/binutils/elfedit.c b/binutils/elfedit.c index c9a4b5ab689..1805ec1b5e9 100644 --- a/binutils/elfedit.c +++ b/binutils/elfedit.c @@ -33,15 +33,13 @@ #endif #include "bfd.h" +#include "elfcomm.h" #include "bucomm.h" #include "elf/common.h" #include "elf/external.h" #include "elf/internal.h" - -#include "aout/ar.h" - #include "getopt.h" #include "libiberty.h" #include "safe-ctype.h" @@ -61,174 +59,6 @@ static int input_elf_osabi = -1; static int output_elf_osabi = -1; static int input_elf_class = -1; -#define streq(a,b) (strcmp ((a), (b)) == 0) -#define strneq(a,b,n) (strncmp ((a), (b), (n)) == 0) -#define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0) - -void -non_fatal (const char *message, ...) -{ - va_list args; - - va_start (args, message); - fprintf (stderr, _("%s: Error: "), program_name); - vfprintf (stderr, message, args); - va_end (args); -} - -#define BYTE_GET(field) byte_get (field, sizeof (field)) -#define BYTE_PUT(field, val) byte_put (field, val, sizeof (field)) - -static bfd_vma (*byte_get) (unsigned char *, int); -static void (*byte_put) (unsigned char *, bfd_vma, int); - -static bfd_vma -byte_get_little_endian (unsigned char *field, int size) -{ - switch (size) - { - case 1: - return *field; - - case 2: - return ((unsigned int) (field[0])) - | (((unsigned int) (field[1])) << 8); - - case 4: - return ((unsigned long) (field[0])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[2])) << 16) - | (((unsigned long) (field[3])) << 24); - - case 8: - if (sizeof (bfd_vma) == 8) - return ((bfd_vma) (field[0])) - | (((bfd_vma) (field[1])) << 8) - | (((bfd_vma) (field[2])) << 16) - | (((bfd_vma) (field[3])) << 24) - | (((bfd_vma) (field[4])) << 32) - | (((bfd_vma) (field[5])) << 40) - | (((bfd_vma) (field[6])) << 48) - | (((bfd_vma) (field[7])) << 56); - else if (sizeof (bfd_vma) == 4) - /* We want to extract data from an 8 byte wide field and - place it into a 4 byte wide field. Since this is a little - endian source we can just use the 4 byte extraction code. */ - return ((unsigned long) (field[0])) - | (((unsigned long) (field[1])) << 8) - | (((unsigned long) (field[2])) << 16) - | (((unsigned long) (field[3])) << 24); - - default: - non_fatal (_("Unhandled data length: %d\n"), size); - abort (); - } -} - -static bfd_vma -byte_get_big_endian (unsigned char *field, int size) -{ - switch (size) - { - case 1: - return *field; - - case 2: - return ((unsigned int) (field[1])) | (((int) (field[0])) << 8); - - case 4: - return ((unsigned long) (field[3])) - | (((unsigned long) (field[2])) << 8) - | (((unsigned long) (field[1])) << 16) - | (((unsigned long) (field[0])) << 24); - - case 8: - if (sizeof (bfd_vma) == 8) - return ((bfd_vma) (field[7])) - | (((bfd_vma) (field[6])) << 8) - | (((bfd_vma) (field[5])) << 16) - | (((bfd_vma) (field[4])) << 24) - | (((bfd_vma) (field[3])) << 32) - | (((bfd_vma) (field[2])) << 40) - | (((bfd_vma) (field[1])) << 48) - | (((bfd_vma) (field[0])) << 56); - else if (sizeof (bfd_vma) == 4) - { - /* Although we are extracing data from an 8 byte wide field, - we are returning only 4 bytes of data. */ - field += 4; - return ((unsigned long) (field[3])) - | (((unsigned long) (field[2])) << 8) - | (((unsigned long) (field[1])) << 16) - | (((unsigned long) (field[0])) << 24); - } - - default: - non_fatal (_("Unhandled data length: %d\n"), size); - abort (); - } -} - -static void -byte_put_little_endian (unsigned char * field, bfd_vma value, int size) -{ - switch (size) - { - case 8: - field[7] = (((value >> 24) >> 24) >> 8) & 0xff; - field[6] = ((value >> 24) >> 24) & 0xff; - field[5] = ((value >> 24) >> 16) & 0xff; - field[4] = ((value >> 24) >> 8) & 0xff; - /* Fall through. */ - case 4: - field[3] = (value >> 24) & 0xff; - field[2] = (value >> 16) & 0xff; - /* Fall through. */ - case 2: - field[1] = (value >> 8) & 0xff; - /* Fall through. */ - case 1: - field[0] = value & 0xff; - break; - - default: - non_fatal (_("Unhandled data length: %d\n"), size); - abort (); - } -} - -static void -byte_put_big_endian (unsigned char * field, bfd_vma value, int size) -{ - switch (size) - { - case 8: - field[7] = value & 0xff; - field[6] = (value >> 8) & 0xff; - field[5] = (value >> 16) & 0xff; - field[4] = (value >> 24) & 0xff; - value >>= 16; - value >>= 16; - /* Fall through. */ - case 4: - field[3] = value & 0xff; - field[2] = (value >> 8) & 0xff; - value >>= 16; - /* Fall through. */ - case 2: - field[1] = value & 0xff; - value >>= 8; - /* Fall through. */ - case 1: - field[0] = value & 0xff; - break; - - default: - non_fatal (_("Unhandled data length: %d\n"), size); - abort (); - } -} - static int update_elf_header (const char *file_name, FILE *file) { @@ -239,7 +69,7 @@ update_elf_header (const char *file_name, FILE *file) || elf_header.e_ident[EI_MAG2] != ELFMAG2 || elf_header.e_ident[EI_MAG3] != ELFMAG3) { - non_fatal + error (_("%s: Not an ELF file - wrong magic bytes at the start\n"), file_name); return 0; @@ -247,7 +77,7 @@ update_elf_header (const char *file_name, FILE *file) if (elf_header.e_ident[EI_VERSION] != EV_CURRENT) { - non_fatal + error (_("%s: Unsupported EI_VERSION: %d is not %d\n"), file_name, elf_header.e_ident[EI_VERSION], EV_CURRENT); @@ -263,7 +93,7 @@ update_elf_header (const char *file_name, FILE *file) /* Skip if class doesn't match. */ if (input_elf_class != -1 && class != input_elf_class) { - non_fatal + error (_("%s: Unmatched EI_CLASS: %d is not %d\n"), file_name, class, input_elf_class); return 0; @@ -274,7 +104,7 @@ update_elf_header (const char *file_name, FILE *file) /* Skip if e_machine doesn't match. */ if (input_elf_machine != -1 && machine != input_elf_machine) { - non_fatal + error (_("%s: Unmatched e_machine: %d is not %d\n"), file_name, machine, input_elf_machine); return 0; @@ -285,7 +115,7 @@ update_elf_header (const char *file_name, FILE *file) /* Skip if e_type doesn't match. */ if (input_elf_type != -1 && type != input_elf_type) { - non_fatal + error (_("%s: Unmatched e_type: %d is not %d\n"), file_name, type, input_elf_type); return 0; @@ -296,7 +126,7 @@ update_elf_header (const char *file_name, FILE *file) /* Skip if OSABI doesn't match. */ if (input_elf_osabi != -1 && osabi != input_elf_osabi) { - non_fatal + error (_("%s: Unmatched EI_OSABI: %d is not %d\n"), file_name, osabi, input_elf_osabi); return 0; @@ -330,7 +160,7 @@ update_elf_header (const char *file_name, FILE *file) } if (status != 1) - non_fatal (_("%s: Failed to update ELF header: %s\n"), + error (_("%s: Failed to update ELF header: %s\n"), file_name, strerror (errno)); return status; @@ -363,7 +193,7 @@ get_file_header (FILE * file) switch (elf_header.e_ident[EI_CLASS]) { default: - non_fatal (_("Unsupported EI_CLASS: %d\n"), + error (_("Unsupported EI_CLASS: %d\n"), elf_header.e_ident[EI_CLASS]); return 0; @@ -396,7 +226,7 @@ get_file_header (FILE * file) overwriting things. */ if (sizeof (bfd_vma) < 8) { - non_fatal (_("This executable has been built without support for a\n\ + error (_("This executable has been built without support for a\n\ 64 bit data type and so it cannot process 64 bit ELF files.\n")); return 0; } @@ -437,14 +267,14 @@ process_object (const char *file_name, FILE *file) if (! get_file_header (file)) { - non_fatal (_("%s: Failed to read ELF header\n"), file_name); + error (_("%s: Failed to read ELF header\n"), file_name); return 1; } /* Go to the position of the ELF header. */ if (fseek (file, offset, SEEK_SET) != 0) { - non_fatal (_("%s: Failed to seek to ELF header\n"), file_name); + error (_("%s: Failed to seek to ELF header\n"), file_name); } if (! update_elf_header (file_name, file)) @@ -453,341 +283,6 @@ process_object (const char *file_name, FILE *file) return 0; } -/* Return the path name for a proxy entry in a thin archive, adjusted relative - to the path name of the thin archive itself if necessary. Always returns - a pointer to malloc'ed memory. */ - -static char * -adjust_relative_path (const char *file_name, char * name, int name_len) -{ - char * member_file_name; - const char * base_name = lbasename (file_name); - - /* This is a proxy entry for a thin archive member. - If the extended name table contains an absolute path - name, or if the archive is in the current directory, - use the path name as given. Otherwise, we need to - find the member relative to the directory where the - archive is located. */ - if (IS_ABSOLUTE_PATH (name) || base_name == file_name) - { - member_file_name = malloc (name_len + 1); - if (member_file_name == NULL) - { - non_fatal (_("Out of memory\n")); - return NULL; - } - memcpy (member_file_name, name, name_len); - member_file_name[name_len] = '\0'; - } - else - { - /* Concatenate the path components of the archive file name - to the relative path name from the extended name table. */ - size_t prefix_len = base_name - file_name; - member_file_name = malloc (prefix_len + name_len + 1); - if (member_file_name == NULL) - { - non_fatal (_("Out of memory\n")); - return NULL; - } - memcpy (member_file_name, file_name, prefix_len); - memcpy (member_file_name + prefix_len, name, name_len); - member_file_name[prefix_len + name_len] = '\0'; - } - return member_file_name; -} - -/* Structure to hold information about an archive file. */ - -struct archive_info -{ - char * file_name; /* Archive file name. */ - FILE * file; /* Open file descriptor. */ - unsigned long index_num; /* Number of symbols in table. */ - unsigned long * index_array; /* The array of member offsets. */ - char * sym_table; /* The symbol table. */ - unsigned long sym_size; /* Size of the symbol table. */ - char * longnames; /* The long file names table. */ - unsigned long longnames_size; /* Size of the long file names table. */ - unsigned long nested_member_origin; /* Origin in the nested archive of the current member. */ - unsigned long next_arhdr_offset; /* Offset of the next archive header. */ - bfd_boolean is_thin_archive; /* TRUE if this is a thin archive. */ - struct ar_hdr arhdr; /* Current archive header. */ -}; - -/* Read the symbol table and long-name table from an archive. */ - -static int -setup_archive (struct archive_info * arch, const char * file_name, - FILE * file, bfd_boolean is_thin_archive) -{ - size_t got; - unsigned long size; - - arch->file_name = strdup (file_name); - arch->file = file; - arch->index_num = 0; - arch->index_array = NULL; - arch->sym_table = NULL; - arch->sym_size = 0; - arch->longnames = NULL; - arch->longnames_size = 0; - arch->nested_member_origin = 0; - arch->is_thin_archive = is_thin_archive; - arch->next_arhdr_offset = SARMAG; - - /* Read the first archive member header. */ - if (fseek (file, SARMAG, SEEK_SET) != 0) - { - non_fatal (_("%s: failed to seek to first archive header\n"), - file_name); - return 1; - } - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file); - if (got != sizeof arch->arhdr) - { - if (got == 0) - return 0; - - non_fatal (_("%s: failed to read archive header\n"), file_name); - return 1; - } - - /* See if this is the archive symbol table. */ - if (const_strneq (arch->arhdr.ar_name, "/ ") - || const_strneq (arch->arhdr.ar_name, "/SYM64/ ")) - { - size = strtoul (arch->arhdr.ar_size, NULL, 10); - size = size + (size & 1); - - arch->next_arhdr_offset += sizeof arch->arhdr + size; - - if (fseek (file, size, SEEK_CUR) != 0) - { - non_fatal (_("%s: failed to skip archive symbol table\n"), - file_name); - return 1; - } - - /* Read the next archive header. */ - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file); - if (got != sizeof arch->arhdr) - { - if (got == 0) - return 0; - non_fatal (_("%s: failed to read archive header following archive index\n"), - file_name); - return 1; - } - } - - if (const_strneq (arch->arhdr.ar_name, "// ")) - { - /* This is the archive string table holding long member names. */ - arch->longnames_size = strtoul (arch->arhdr.ar_size, NULL, 10); - arch->next_arhdr_offset += sizeof arch->arhdr + arch->longnames_size; - - arch->longnames = malloc (arch->longnames_size); - if (arch->longnames == NULL) - { - non_fatal (_("Out of memory reading long symbol names in archive\n")); - return 1; - } - - if (fread (arch->longnames, arch->longnames_size, 1, file) != 1) - { - free (arch->longnames); - arch->longnames = NULL; - non_fatal (_("%s: failed to read long symbol name string table\n") - , file_name); - return 1; - } - - if ((arch->longnames_size & 1) != 0) - getc (file); - } - - return 0; -} - -/* Release the memory used for the archive information. */ - -static void -release_archive (struct archive_info * arch) -{ - if (arch->file_name != NULL) - free (arch->file_name); - if (arch->index_array != NULL) - free (arch->index_array); - if (arch->sym_table != NULL) - free (arch->sym_table); - if (arch->longnames != NULL) - free (arch->longnames); -} - -/* Open and setup a nested archive, if not already open. */ - -static int -setup_nested_archive (struct archive_info * nested_arch, char * member_file_name) -{ - FILE * member_file; - - /* Have we already setup this archive? */ - if (nested_arch->file_name != NULL - && streq (nested_arch->file_name, member_file_name)) - return 0; - - /* Close previous file and discard cached information. */ - if (nested_arch->file != NULL) - fclose (nested_arch->file); - release_archive (nested_arch); - - member_file = fopen (member_file_name, "r+b"); - if (member_file == NULL) - return 1; - return setup_archive (nested_arch, member_file_name, member_file, - FALSE); -} - -static char * -get_archive_member_name_at (struct archive_info * arch, - unsigned long offset, - struct archive_info * nested_arch); - -/* Get the name of an archive member from the current archive header. - For simple names, this will modify the ar_name field of the current - archive header. For long names, it will return a pointer to the - longnames table. For nested archives, it will open the nested archive - and get the name recursively. NESTED_ARCH is a single-entry cache so - we don't keep rereading the same information from a nested archive. */ - -static char * -get_archive_member_name (struct archive_info * arch, - struct archive_info * nested_arch) -{ - unsigned long j, k; - - if (arch->arhdr.ar_name[0] == '/') - { - /* We have a long name. */ - char * endp; - char * member_file_name; - char * member_name; - - arch->nested_member_origin = 0; - k = j = strtoul (arch->arhdr.ar_name + 1, &endp, 10); - if (arch->is_thin_archive && endp != NULL && * endp == ':') - arch->nested_member_origin = strtoul (endp + 1, NULL, 10); - - while ((j < arch->longnames_size) - && (arch->longnames[j] != '\n') - && (arch->longnames[j] != '\0')) - j++; - if (arch->longnames[j-1] == '/') - j--; - arch->longnames[j] = '\0'; - - if (!arch->is_thin_archive || arch->nested_member_origin == 0) - return arch->longnames + k; - - /* This is a proxy for a member of a nested archive. - Find the name of the member in that archive. */ - member_file_name = adjust_relative_path (arch->file_name, - arch->longnames + k, - j - k); - if (member_file_name != NULL - && setup_nested_archive (nested_arch, member_file_name) == 0 - && (member_name = get_archive_member_name_at (nested_arch, - arch->nested_member_origin, - NULL)) != NULL) - { - free (member_file_name); - return member_name; - } - free (member_file_name); - - /* Last resort: just return the name of the nested archive. */ - return arch->longnames + k; - } - - /* We have a normal (short) name. */ - j = 0; - while ((arch->arhdr.ar_name[j] != '/') && (j < 16)) - j++; - arch->arhdr.ar_name[j] = '\0'; - return arch->arhdr.ar_name; -} - -/* Get the name of an archive member at a given OFFSET within an - archive ARCH. */ - -static char * -get_archive_member_name_at (struct archive_info * arch, - unsigned long offset, - struct archive_info * nested_arch) -{ - size_t got; - - if (fseek (arch->file, offset, SEEK_SET) != 0) - { - non_fatal (_("%s: failed to seek to next file name\n"), - arch->file_name); - return NULL; - } - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, arch->file); - if (got != sizeof arch->arhdr) - { - non_fatal (_("%s: failed to read archive header\n"), - arch->file_name); - return NULL; - } - if (memcmp (arch->arhdr.ar_fmag, ARFMAG, 2) != 0) - { - non_fatal (_("%s: did not find a valid archive header\n"), - arch->file_name); - return NULL; - } - - return get_archive_member_name (arch, nested_arch); -} - -/* Construct a string showing the name of the archive member, qualified - with the name of the containing archive file. For thin archives, we - use square brackets to denote the indirection. For nested archives, - we show the qualified name of the external member inside the square - brackets (e.g., "thin.a[normal.a(foo.o)]"). */ - -static char * -make_qualified_name (struct archive_info * arch, - struct archive_info * nested_arch, - char * member_name) -{ - size_t len; - char * name; - - len = strlen (arch->file_name) + strlen (member_name) + 3; - if (arch->is_thin_archive && arch->nested_member_origin != 0) - len += strlen (nested_arch->file_name) + 2; - - name = malloc (len); - if (name == NULL) - { - non_fatal (_("Out of memory\n")); - return NULL; - } - - if (arch->is_thin_archive && arch->nested_member_origin != 0) - snprintf (name, len, "%s[%s(%s)]", arch->file_name, - nested_arch->file_name, member_name); - else if (arch->is_thin_archive) - snprintf (name, len, "%s[%s]", arch->file_name, member_name); - else - snprintf (name, len, "%s(%s)", arch->file_name, member_name); - - return name; -} - /* Process an ELF archive. On entry the file is positioned just after the ARMAG string. */ @@ -816,7 +311,7 @@ process_archive (const char * file_name, FILE * file, nested_arch.sym_table = NULL; nested_arch.longnames = NULL; - if (setup_archive (&arch, file_name, file, is_thin_archive) != 0) + if (setup_archive (&arch, file_name, file, is_thin_archive, FALSE) != 0) { ret = 1; goto out; @@ -833,7 +328,7 @@ process_archive (const char * file_name, FILE * file, /* Read the next archive header. */ if (fseek (file, arch.next_arhdr_offset, SEEK_SET) != 0) { - non_fatal (_("%s: failed to seek to next archive header\n"), + error (_("%s: failed to seek to next archive header\n"), file_name); return 1; } @@ -842,14 +337,14 @@ process_archive (const char * file_name, FILE * file, { if (got == 0) break; - non_fatal (_("%s: failed to read archive header\n"), + error (_("%s: failed to read archive header\n"), file_name); ret = 1; break; } if (memcmp (arch.arhdr.ar_fmag, ARFMAG, 2) != 0) { - non_fatal (_("%s: did not find a valid archive header\n"), + error (_("%s: did not find a valid archive header\n"), arch.file_name); ret = 1; break; @@ -864,7 +359,7 @@ process_archive (const char * file_name, FILE * file, name = get_archive_member_name (&arch, &nested_arch); if (name == NULL) { - non_fatal (_("%s: bad archive file name\n"), file_name); + error (_("%s: bad archive file name\n"), file_name); ret = 1; break; } @@ -873,7 +368,7 @@ process_archive (const char * file_name, FILE * file, qualified_name = make_qualified_name (&arch, &nested_arch, name); if (qualified_name == NULL) { - non_fatal (_("%s: bad archive file name\n"), file_name); + error (_("%s: bad archive file name\n"), file_name); ret = 1; break; } @@ -893,7 +388,7 @@ process_archive (const char * file_name, FILE * file, member_file = fopen (member_file_name, "r+b"); if (member_file == NULL) { - non_fatal (_("Input file '%s' is not readable\n"), + error (_("Input file '%s' is not readable\n"), member_file_name); free (member_file_name); ret = 1; @@ -917,7 +412,7 @@ process_archive (const char * file_name, FILE * file, if (fseek (nested_arch.file, archive_file_offset, SEEK_SET) != 0) { - non_fatal (_("%s: failed to seek to archive member\n"), + error (_("%s: failed to seek to archive member\n"), nested_arch.file_name); ret = 1; break; @@ -956,16 +451,16 @@ check_file (const char *file_name, struct stat *statbuf_p) if (stat (file_name, statbuf_p) < 0) { if (errno == ENOENT) - non_fatal (_("'%s': No such file\n"), file_name); + error (_("'%s': No such file\n"), file_name); else - non_fatal (_("Could not locate '%s'. System error message: %s\n"), + error (_("Could not locate '%s'. System error message: %s\n"), file_name, strerror (errno)); return 1; } if (! S_ISREG (statbuf_p->st_mode)) { - non_fatal (_("'%s' is not an ordinary file\n"), file_name); + error (_("'%s' is not an ordinary file\n"), file_name); return 1; } @@ -985,13 +480,13 @@ process_file (const char *file_name) file = fopen (file_name, "r+b"); if (file == NULL) { - non_fatal (_("Input file '%s' is not readable\n"), file_name); + error (_("Input file '%s' is not readable\n"), file_name); return 1; } if (fread (armag, SARMAG, 1, file) != 1) { - non_fatal (_("%s: Failed to read file's magic number\n"), + error (_("%s: Failed to read file's magic number\n"), file_name); fclose (file); return 1; @@ -1049,7 +544,7 @@ elf_osabi (const char *osabi) if (strcasecmp (osabi, osabis[i].name) == 0) return osabis[i].osabi; - non_fatal (_("Unknown OSABI: %s\n"), osabi); + error (_("Unknown OSABI: %s\n"), osabi); return -1; } @@ -1068,7 +563,7 @@ elf_machine (const char *mach) if (strcasecmp (mach, "none") == 0) return EM_NONE; - non_fatal (_("Unknown machine type: %s\n"), mach); + error (_("Unknown machine type: %s\n"), mach); return -1; } @@ -1086,7 +581,7 @@ elf_class (int mach) case EM_NONE: return ELFCLASSNONE; default: - non_fatal (_("Unknown machine type: %d\n"), mach); + error (_("Unknown machine type: %d\n"), mach); return -1; } } @@ -1105,7 +600,7 @@ elf_type (const char *type) if (strcasecmp (type, "none") == 0) return ET_NONE; - non_fatal (_("Unknown type: %s\n"), type); + error (_("Unknown type: %s\n"), type); return -1; } diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 2077fca481b..ac176df5896 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3196,7 +3196,6 @@ copy_main (int argc, char *argv[]) struct section_list *p; struct stat statbuf; const bfd_arch_info_type *input_arch = NULL; - struct dwarf_debug_section *d; while ((c = getopt_long (argc, argv, "b:B:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXHhVvW:w", copy_options, (int *) 0)) != EOF) @@ -3912,22 +3911,6 @@ copy_main (int argc, char *argv[]) fatal (_("warning: could not create temporary file whilst copying '%s', (error: %s)"), input_filename, strerror (errno)); - switch (do_debug_sections) - { - case compress: - for (d = dwarf_debug_sections; d->uncompressed_name; d++) - add_section_rename (d->uncompressed_name, d->compressed_name, - (flagword) -1); - break; - case decompress: - for (d = dwarf_debug_sections; d->uncompressed_name; d++) - add_section_rename (d->compressed_name, d->uncompressed_name, - (flagword) -1); - break; - default: - break; - } - copy_file (input_filename, tmpname, input_target, output_target, input_arch); if (status == 0) { diff --git a/binutils/objdump.c b/binutils/objdump.c index c672f15c660..0be662f1478 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -55,6 +55,7 @@ #include "elf-bfd.h" #include "progress.h" #include "bucomm.h" +#include "elfcomm.h" #include "dwarf.h" #include "getopt.h" #include "safe-ctype.h" @@ -206,7 +207,7 @@ usage (FILE *stream, int status) -W[lLiaprmfFsoRt] or\n\ --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n\ =frames-interp,=str,=loc,=Ranges,=pubtypes,\n\ - =trace_info,=trace_abbrev,=trace_aranges]\n\ + =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n\ Display DWARF info in the file\n\ -t, --syms Display the contents of the symbol table(s)\n\ -T, --dynamic-syms Display the contents of the dynamic symbol table\n\ @@ -511,8 +512,6 @@ dump_headers (bfd *abfd) if (wide_output) printf (_(" Flags")); - if (abfd->flags & HAS_LOAD_PAGE) - printf (_(" Pg")); printf ("\n"); bfd_map_over_sections (abfd, dump_section_header, NULL); diff --git a/binutils/po/POTFILES.in b/binutils/po/POTFILES.in index 7d092422f53..7dc62a54a40 100644 --- a/binutils/po/POTFILES.in +++ b/binutils/po/POTFILES.in @@ -20,6 +20,8 @@ dlltool.h dllwrap.c dwarf.c dwarf.h +elfcomm.c +elfcomm.h elfedit.c emul_aix.c emul_vanilla.c diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot index 61db1cb6879..c5071f98f5c 100644 --- a/binutils/po/binutils.pot +++ b/binutils/po/binutils.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2010-11-05 11:33+0100\n" +"POT-Creation-Date: 2011-02-01 22:23+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,7 @@ msgid "" msgstr "" #: addr2line.c:100 ar.c:293 coffdump.c:469 dlltool.c:3926 dllwrap.c:524 -#: elfedit.c:1155 nlmconv.c:1113 objcopy.c:576 objcopy.c:611 readelf.c:3219 +#: elfedit.c:650 nlmconv.c:1113 objcopy.c:576 objcopy.c:611 readelf.c:3144 #: size.c:99 srconv.c:1742 strings.c:663 sysdump.c:653 windmc.c:228 #: windres.c:694 #, c-format @@ -80,7 +80,7 @@ msgstr "" msgid "%s: cannot find section %s" msgstr "" -#: addr2line.c:406 nm.c:1563 objdump.c:3301 +#: addr2line.c:406 nm.c:1563 objdump.c:3300 #, c-format msgid "unknown demangling style `%s'" msgstr "" @@ -330,35 +330,27 @@ msgstr "" msgid "creating %s" msgstr "" -#: ar.c:820 ar.c:875 ar.c:1203 objcopy.c:2052 +#: ar.c:820 ar.c:874 ar.c:1202 objcopy.c:2052 #, c-format msgid "internal stat error on %s" msgstr "" -#: ar.c:824 -#, c-format -msgid "" -"\n" -"<%s>\n" -"\n" -msgstr "" - -#: ar.c:840 ar.c:908 +#: ar.c:839 ar.c:907 #, c-format msgid "%s is not a valid archive" msgstr "" -#: ar.c:1108 +#: ar.c:1107 #, c-format msgid "No member named `%s'\n" msgstr "" -#: ar.c:1158 +#: ar.c:1157 #, c-format msgid "no entry %s in archive %s!" msgstr "" -#: ar.c:1297 +#: ar.c:1296 #, c-format msgid "%s: no archive map to update" msgstr "" @@ -418,16 +410,6 @@ msgstr "" msgid "%s: no open archive\n" msgstr "" -#: bin2c.c:59 -#, c-format -msgid "Usage: %s < input_file > output_file\n" -msgstr "" - -#: bin2c.c:60 -#, c-format -msgid "Prints bytes from stdin in hex format.\n" -msgstr "" - #: binemul.c:38 #, c-format msgid " No emulation specific options\n" @@ -494,6 +476,11 @@ msgstr "" msgid "Warning: '%s' is not an ordinary file" msgstr "" +#: bucomm.c:581 +#, c-format +msgid "Warning: '%s' has negative size, probably it is too large" +msgstr "" + #: coffdump.c:106 #, c-format msgid "#lines %d " @@ -523,7 +510,7 @@ msgstr "" msgid "no input file specified" msgstr "" -#: cxxfilt.c:119 nm.c:269 objdump.c:256 +#: cxxfilt.c:119 nm.c:269 objdump.c:257 #, c-format msgid "Report bugs to %s.\n" msgstr "" @@ -1338,61 +1325,38 @@ msgstr "" msgid "DRIVER options : %s\n" msgstr "" -#: dwarf.c:112 dwarf.c:161 elfedit.c:123 elfedit.c:167 elfedit.c:195 -#: elfedit.c:227 readelf.c:368 readelf.c:536 -#, c-format -msgid "Unhandled data length: %d\n" -msgstr "" - -#: dwarf.c:312 dwarf.c:2890 +#: dwarf.c:203 dwarf.c:2776 msgid "badly formed extended line op encountered!\n" msgstr "" -#: dwarf.c:319 +#: dwarf.c:210 #, c-format msgid " Extended opcode %d: " msgstr "" -#: dwarf.c:324 +#: dwarf.c:215 #, c-format msgid "" "End of Sequence\n" "\n" msgstr "" -#: dwarf.c:330 +#: dwarf.c:221 #, c-format msgid "set Address to 0x%lx\n" msgstr "" -#: dwarf.c:336 +#: dwarf.c:227 #, c-format msgid " define new File Table entry\n" msgstr "" -#: dwarf.c:337 dwarf.c:2431 +#: dwarf.c:228 dwarf.c:2320 #, c-format msgid " Entry\tDir\tTime\tSize\tName\n" msgstr "" -#: dwarf.c:339 -#, c-format -msgid " %d\t" -msgstr "" - -#: dwarf.c:342 dwarf.c:344 dwarf.c:346 dwarf.c:2443 dwarf.c:2445 dwarf.c:2447 -#, c-format -msgid "%lu\t" -msgstr "" - -#: dwarf.c:347 -#, c-format -msgid "" -"%s\n" -"\n" -msgstr "" - -#: dwarf.c:351 +#: dwarf.c:242 #, c-format msgid "set Discriminator to %lu\n" msgstr "" @@ -1401,627 +1365,556 @@ msgstr "" #. the limited range of the unsigned char data type used #. for op_code. #. && op_code <= DW_LNE_hi_user -#: dwarf.c:393 +#: dwarf.c:284 #, c-format msgid "user defined: length %d\n" msgstr "" -#: dwarf.c:395 dwarf.c:2922 +#: dwarf.c:286 dwarf.c:2808 #, c-format msgid "UNKNOWN: length %d\n" msgstr "" -#: dwarf.c:408 +#: dwarf.c:299 msgid "" msgstr "" -#: dwarf.c:414 +#: dwarf.c:305 #, c-format msgid "DW_FORM_strp offset too big: %lx\n" msgstr "" -#: dwarf.c:415 +#: dwarf.c:306 msgid "" msgstr "" -#: dwarf.c:654 +#: dwarf.c:545 #, c-format msgid "Unknown TAG value: %lx" msgstr "" -#: dwarf.c:695 +#: dwarf.c:586 #, c-format msgid "Unknown FORM value: %lx" msgstr "" -#: dwarf.c:704 +#: dwarf.c:595 #, c-format msgid " %lu byte block: " msgstr "" -#: dwarf.c:1037 +#: dwarf.c:928 #, c-format msgid "(DW_OP_call_ref in frame info)" msgstr "" -#: dwarf.c:1109 +#: dwarf.c:998 #, c-format msgid "(DW_OP_GNU_implicit_pointer in frame info)" msgstr "" -#: dwarf.c:1167 +#: dwarf.c:1056 #, c-format msgid "(User defined location op)" msgstr "" -#: dwarf.c:1169 +#: dwarf.c:1058 #, c-format msgid "(Unknown location op)" msgstr "" -#: dwarf.c:1217 +#: dwarf.c:1106 msgid "Internal error: DWARF version is not 2, 3 or 4.\n" msgstr "" -#: dwarf.c:1323 +#: dwarf.c:1212 msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n" msgstr "" -#: dwarf.c:1373 +#: dwarf.c:1262 #, c-format msgid " (indirect string, offset: 0x%lx): %s" msgstr "" -#: dwarf.c:1397 +#: dwarf.c:1286 #, c-format msgid "Unrecognized form: %lu\n" msgstr "" -#: dwarf.c:1485 +#: dwarf.c:1374 #, c-format msgid "(not inlined)" msgstr "" -#: dwarf.c:1488 +#: dwarf.c:1377 #, c-format msgid "(inlined)" msgstr "" -#: dwarf.c:1491 +#: dwarf.c:1380 #, c-format msgid "(declared as inline but ignored)" msgstr "" -#: dwarf.c:1494 +#: dwarf.c:1383 #, c-format msgid "(declared as inline and inlined)" msgstr "" -#: dwarf.c:1497 +#: dwarf.c:1386 #, c-format msgid " (Unknown inline attribute value: %lx)" msgstr "" -#: dwarf.c:1662 +#: dwarf.c:1551 #, c-format msgid "(location list)" msgstr "" -#: dwarf.c:1683 dwarf.c:3563 +#: dwarf.c:1572 dwarf.c:3449 #, c-format msgid " [without DW_AT_frame_base]" msgstr "" -#: dwarf.c:1698 +#: dwarf.c:1587 #, c-format msgid "" "Offset %lx used as value for DW_AT_import attribute of DIE at offset %lx is " "too big.\n" msgstr "" -#: dwarf.c:1889 +#: dwarf.c:1778 #, c-format msgid "Unknown AT value: %lx" msgstr "" -#: dwarf.c:1960 +#: dwarf.c:1849 #, c-format msgid "Reserved length value (%lx) found in section %s\n" msgstr "" -#: dwarf.c:1971 +#: dwarf.c:1860 #, c-format msgid "Corrupt unit length (%lx) found in section %s\n" msgstr "" -#: dwarf.c:1978 +#: dwarf.c:1867 #, c-format msgid "No comp units in %s section ?" msgstr "" -#: dwarf.c:1987 +#: dwarf.c:1876 #, c-format msgid "Not enough memory for a debug info array of %u entries" msgstr "" -#: dwarf.c:1995 dwarf.c:3158 dwarf.c:3252 dwarf.c:3326 dwarf.c:3443 -#: dwarf.c:3598 dwarf.c:3667 dwarf.c:3862 +#: dwarf.c:1884 dwarf.c:3044 dwarf.c:3138 dwarf.c:3212 dwarf.c:3329 +#: dwarf.c:3484 dwarf.c:3553 dwarf.c:3748 #, c-format msgid "" "Contents of the %s section:\n" "\n" msgstr "" -#: dwarf.c:2003 +#: dwarf.c:1892 #, c-format msgid "Unable to locate %s section!\n" msgstr "" -#: dwarf.c:2084 +#: dwarf.c:1973 #, c-format msgid " Compilation Unit @ offset 0x%lx:\n" msgstr "" -#: dwarf.c:2085 +#: dwarf.c:1974 #, c-format msgid " Length: 0x%lx (%s)\n" msgstr "" -#: dwarf.c:2087 +#: dwarf.c:1976 #, c-format msgid " Version: %d\n" msgstr "" -#: dwarf.c:2088 +#: dwarf.c:1977 #, c-format msgid " Abbrev Offset: %ld\n" msgstr "" -#: dwarf.c:2089 +#: dwarf.c:1978 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: dwarf.c:2093 +#: dwarf.c:1982 #, c-format msgid " Signature: " msgstr "" -#: dwarf.c:2097 +#: dwarf.c:1986 #, c-format msgid " Type Offset: 0x%lx\n" msgstr "" -#: dwarf.c:2104 +#: dwarf.c:1993 #, c-format msgid "" "Debug info is corrupted, length of CU at %lx extends beyond end of section " "(length = %lx)\n" msgstr "" -#: dwarf.c:2115 +#: dwarf.c:2004 #, c-format msgid "CU at offset %lx contains corrupt or unsupported version number: %d.\n" msgstr "" -#: dwarf.c:2125 +#: dwarf.c:2014 #, c-format msgid "" "Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section " "size (%lx)\n" msgstr "" -#: dwarf.c:2172 +#: dwarf.c:2061 #, c-format msgid "" "Bogus end-of-siblings marker detected at offset %lx in .debug_info section\n" msgstr "" -#: dwarf.c:2176 +#: dwarf.c:2065 msgid "Further warnings about bogus end-of-sibling markers suppressed\n" msgstr "" -#: dwarf.c:2183 +#: dwarf.c:2072 #, c-format msgid " <%d><%lx>: Abbrev Number: %lu" msgstr "" -#: dwarf.c:2200 +#: dwarf.c:2089 #, c-format msgid "" "DIE at offset %lx refers to abbreviation number %lu which does not exist\n" msgstr "" -#: dwarf.c:2206 -#, c-format -msgid " (%s)\n" -msgstr "" - -#: dwarf.c:2298 +#: dwarf.c:2187 #, c-format msgid "" "Raw dump of debug contents of section %s:\n" "\n" msgstr "" -#: dwarf.c:2336 +#: dwarf.c:2225 #, c-format msgid "" "The information in section %s appears to be corrupt - the section is too " "small\n" msgstr "" -#: dwarf.c:2348 dwarf.c:2701 +#: dwarf.c:2237 dwarf.c:2590 msgid "Only DWARF version 2, 3 and 4 line info is currently supported.\n" msgstr "" -#: dwarf.c:2362 dwarf.c:2716 +#: dwarf.c:2251 dwarf.c:2605 msgid "Invalid maximum operations per insn.\n" msgstr "" -#: dwarf.c:2381 +#: dwarf.c:2270 #, c-format msgid " Offset: 0x%lx\n" msgstr "" -#: dwarf.c:2382 +#: dwarf.c:2271 #, c-format msgid " Length: %ld\n" msgstr "" -#: dwarf.c:2383 +#: dwarf.c:2272 #, c-format msgid " DWARF Version: %d\n" msgstr "" -#: dwarf.c:2384 +#: dwarf.c:2273 #, c-format msgid " Prologue Length: %d\n" msgstr "" -#: dwarf.c:2385 +#: dwarf.c:2274 #, c-format msgid " Minimum Instruction Length: %d\n" msgstr "" -#: dwarf.c:2387 +#: dwarf.c:2276 #, c-format msgid " Maximum Ops per Instruction: %d\n" msgstr "" -#: dwarf.c:2388 +#: dwarf.c:2277 #, c-format msgid " Initial value of 'is_stmt': %d\n" msgstr "" -#: dwarf.c:2389 +#: dwarf.c:2278 #, c-format msgid " Line Base: %d\n" msgstr "" -#: dwarf.c:2390 +#: dwarf.c:2279 #, c-format msgid " Line Range: %d\n" msgstr "" -#: dwarf.c:2391 +#: dwarf.c:2280 #, c-format msgid " Opcode Base: %d\n" msgstr "" -#: dwarf.c:2400 +#: dwarf.c:2289 #, c-format msgid "" "\n" " Opcodes:\n" msgstr "" -#: dwarf.c:2403 +#: dwarf.c:2292 #, c-format msgid " Opcode %d has %d args\n" msgstr "" -#: dwarf.c:2409 +#: dwarf.c:2298 #, c-format msgid "" "\n" " The Directory Table is empty.\n" msgstr "" -#: dwarf.c:2412 +#: dwarf.c:2301 #, c-format msgid "" "\n" " The Directory Table:\n" msgstr "" -#: dwarf.c:2416 -#, c-format -msgid " %s\n" -msgstr "" - -#: dwarf.c:2427 +#: dwarf.c:2316 #, c-format msgid "" "\n" " The File Name Table is empty.\n" msgstr "" -#: dwarf.c:2430 +#: dwarf.c:2319 #, c-format msgid "" "\n" " The File Name Table:\n" msgstr "" -#: dwarf.c:2438 -#, c-format -msgid " %d\t" -msgstr "" - -#: dwarf.c:2449 -#, c-format -msgid "%s\n" -msgstr "" - #. Now display the statements. -#: dwarf.c:2457 +#: dwarf.c:2346 #, c-format msgid "" "\n" " Line Number Statements:\n" msgstr "" -#: dwarf.c:2476 +#: dwarf.c:2365 #, c-format msgid " Special opcode %d: advance Address by %lu to 0x%lx" msgstr "" -#: dwarf.c:2488 +#: dwarf.c:2377 #, c-format msgid " Special opcode %d: advance Address by %lu to 0x%lx[%d]" msgstr "" -#: dwarf.c:2494 +#: dwarf.c:2383 #, c-format msgid " and Line by %d to %d\n" msgstr "" -#: dwarf.c:2504 +#: dwarf.c:2393 #, c-format msgid " Copy\n" msgstr "" -#: dwarf.c:2514 +#: dwarf.c:2403 #, c-format msgid " Advance PC by %lu to 0x%lx\n" msgstr "" -#: dwarf.c:2526 +#: dwarf.c:2415 #, c-format msgid " Advance PC by %lu to 0x%lx[%d]\n" msgstr "" -#: dwarf.c:2536 +#: dwarf.c:2425 #, c-format msgid " Advance Line by %d to %d\n" msgstr "" -#: dwarf.c:2543 +#: dwarf.c:2432 #, c-format msgid " Set File Name to entry %d in the File Name Table\n" msgstr "" -#: dwarf.c:2551 +#: dwarf.c:2440 #, c-format msgid " Set column to %lu\n" msgstr "" -#: dwarf.c:2558 +#: dwarf.c:2447 #, c-format msgid " Set is_stmt to %d\n" msgstr "" -#: dwarf.c:2563 +#: dwarf.c:2452 #, c-format msgid " Set basic block\n" msgstr "" -#: dwarf.c:2573 +#: dwarf.c:2462 #, c-format msgid " Advance PC by constant %lu to 0x%lx\n" msgstr "" -#: dwarf.c:2585 +#: dwarf.c:2474 #, c-format msgid " Advance PC by constant %lu to 0x%lx[%d]\n" msgstr "" -#: dwarf.c:2596 +#: dwarf.c:2485 #, c-format msgid " Advance PC by fixed size amount %lu to 0x%lx\n" msgstr "" -#: dwarf.c:2601 +#: dwarf.c:2490 #, c-format msgid " Set prologue_end to true\n" msgstr "" -#: dwarf.c:2605 +#: dwarf.c:2494 #, c-format msgid " Set epilogue_begin to true\n" msgstr "" -#: dwarf.c:2611 dwarf.c:3027 +#: dwarf.c:2500 dwarf.c:2913 #, c-format msgid " Set ISA to %lu\n" msgstr "" -#: dwarf.c:2615 dwarf.c:3031 +#: dwarf.c:2504 dwarf.c:2917 #, c-format msgid " Unknown opcode %d with operands: " msgstr "" -#: dwarf.c:2648 +#: dwarf.c:2537 #, c-format msgid "" "Decoded dump of debug contents of section %s:\n" "\n" msgstr "" -#: dwarf.c:2689 +#: dwarf.c:2578 msgid "The line info appears to be corrupt - the section is too small\n" msgstr "" -#: dwarf.c:2821 +#: dwarf.c:2710 #, c-format msgid "CU: %s:\n" msgstr "" -#: dwarf.c:2822 dwarf.c:2835 +#: dwarf.c:2711 dwarf.c:2721 #, c-format msgid "File name Line number Starting address\n" msgstr "" -#: dwarf.c:2828 +#: dwarf.c:2716 #, c-format msgid "CU: %s/%s:\n" msgstr "" -#: dwarf.c:2833 dwarf.c:2918 -#, c-format -msgid "%s:\n" -msgstr "" - -#. If directory index is 0, that means current directory. -#: dwarf.c:2964 -#, c-format -msgid "" -"\n" -"./%s:[++]\n" -msgstr "" - -#. The directory index starts counting at 1. -#: dwarf.c:2970 -#, c-format -msgid "" -"\n" -"%s/%s:\n" -msgstr "" - -#: dwarf.c:3070 -#, c-format -msgid "%-35s %11d %#18lx\n" -msgstr "" - -#: dwarf.c:3074 -#, c-format -msgid "%-35s %11d %#18lx[%d]\n" -msgstr "" - -#: dwarf.c:3082 -#, c-format -msgid "%s %11d %#18lx\n" -msgstr "" - -#: dwarf.c:3086 -#, c-format -msgid "%s %11d %#18lx[%d]\n" -msgstr "" - -#: dwarf.c:3192 dwarf.c:3712 +#: dwarf.c:3078 dwarf.c:3598 #, c-format msgid "" ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n" msgstr "" -#: dwarf.c:3206 +#: dwarf.c:3092 msgid "Only DWARF 2 and 3 pubnames are currently supported\n" msgstr "" -#: dwarf.c:3213 +#: dwarf.c:3099 #, c-format msgid " Length: %ld\n" msgstr "" -#: dwarf.c:3215 +#: dwarf.c:3101 #, c-format msgid " Version: %d\n" msgstr "" -#: dwarf.c:3217 +#: dwarf.c:3103 #, c-format msgid " Offset into .debug_info section: 0x%lx\n" msgstr "" -#: dwarf.c:3219 +#: dwarf.c:3105 #, c-format msgid " Size of area in .debug_info section: %ld\n" msgstr "" -#: dwarf.c:3222 +#: dwarf.c:3108 #, c-format msgid "" "\n" " Offset\tName\n" msgstr "" -#: dwarf.c:3273 +#: dwarf.c:3159 #, c-format msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n" msgstr "" -#: dwarf.c:3279 +#: dwarf.c:3165 #, c-format msgid " DW_MACINFO_end_file\n" msgstr "" -#: dwarf.c:3287 +#: dwarf.c:3173 #, c-format msgid " DW_MACINFO_define - lineno : %d macro : %s\n" msgstr "" -#: dwarf.c:3296 +#: dwarf.c:3182 #, c-format msgid " DW_MACINFO_undef - lineno : %d macro : %s\n" msgstr "" -#: dwarf.c:3308 +#: dwarf.c:3194 #, c-format msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n" msgstr "" -#: dwarf.c:3337 +#: dwarf.c:3223 #, c-format msgid " Number TAG\n" msgstr "" -#: dwarf.c:3343 -#, c-format -msgid " %ld %s [%s]\n" -msgstr "" - -#: dwarf.c:3346 +#: dwarf.c:3232 msgid "has children" msgstr "" -#: dwarf.c:3346 +#: dwarf.c:3232 msgid "no children" msgstr "" -#: dwarf.c:3349 -#, c-format -msgid " %-18s %s\n" -msgstr "" - -#: dwarf.c:3382 dwarf.c:3594 dwarf.c:3819 +#: dwarf.c:3268 dwarf.c:3480 dwarf.c:3705 #, c-format msgid "" "\n" "The %s section is empty.\n" msgstr "" -#: dwarf.c:3388 dwarf.c:3825 +#: dwarf.c:3274 dwarf.c:3711 #, c-format msgid "" "Unable to load/parse the .debug_info section, so cannot interpret the %s " @@ -2029,366 +1922,477 @@ msgid "" msgstr "" #. FIXME: Should we handle this case? -#: dwarf.c:3432 +#: dwarf.c:3318 msgid "Location lists in .debug_info section aren't in ascending order!\n" msgstr "" -#: dwarf.c:3435 +#: dwarf.c:3321 msgid "No location lists in .debug_info section!\n" msgstr "" -#: dwarf.c:3440 +#: dwarf.c:3326 #, c-format msgid "Location lists in %s section start at 0x%lx\n" msgstr "" -#: dwarf.c:3444 +#: dwarf.c:3330 #, c-format msgid " Offset Begin End Expression\n" msgstr "" -#: dwarf.c:3479 +#: dwarf.c:3365 #, c-format msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n" msgstr "" -#: dwarf.c:3483 +#: dwarf.c:3369 #, c-format msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n" msgstr "" -#: dwarf.c:3491 +#: dwarf.c:3377 #, c-format msgid "Offset 0x%lx is bigger than .debug_loc section size.\n" msgstr "" -#: dwarf.c:3500 dwarf.c:3535 dwarf.c:3545 +#: dwarf.c:3386 dwarf.c:3421 dwarf.c:3431 #, c-format msgid "Location list starting at offset 0x%lx is not terminated.\n" msgstr "" -#: dwarf.c:3519 dwarf.c:3913 +#: dwarf.c:3405 dwarf.c:3799 #, c-format msgid "\n" msgstr "" -#: dwarf.c:3529 +#: dwarf.c:3415 #, c-format msgid "(base address)\n" msgstr "" -#: dwarf.c:3566 +#: dwarf.c:3452 msgid " (start == end)" msgstr "" -#: dwarf.c:3568 +#: dwarf.c:3454 msgid " (start > end)" msgstr "" -#: dwarf.c:3578 +#: dwarf.c:3464 #, c-format msgid "There are %ld unused bytes at the end of section %s\n" msgstr "" -#: dwarf.c:3723 +#: dwarf.c:3609 msgid "Only DWARF 2 and 3 aranges are currently supported.\n" msgstr "" -#: dwarf.c:3727 +#: dwarf.c:3613 #, c-format msgid " Length: %ld\n" msgstr "" -#: dwarf.c:3728 +#: dwarf.c:3614 #, c-format msgid " Version: %d\n" msgstr "" -#: dwarf.c:3729 +#: dwarf.c:3615 #, c-format msgid " Offset into .debug_info: 0x%lx\n" msgstr "" -#: dwarf.c:3730 +#: dwarf.c:3616 #, c-format msgid " Pointer Size: %d\n" msgstr "" -#: dwarf.c:3731 +#: dwarf.c:3617 #, c-format msgid " Segment Size: %d\n" msgstr "" -#: dwarf.c:3740 +#: dwarf.c:3626 msgid "Pointer size + Segment size is not a power of two.\n" msgstr "" -#: dwarf.c:3745 +#: dwarf.c:3631 #, c-format msgid "" "\n" " Address Length\n" msgstr "" -#: dwarf.c:3747 +#: dwarf.c:3633 #, c-format msgid "" "\n" " Address Length\n" msgstr "" -#: dwarf.c:3835 +#: dwarf.c:3721 msgid "No range lists in .debug_info section!\n" msgstr "" -#: dwarf.c:3859 +#: dwarf.c:3745 #, c-format msgid "Range lists in %s section start at 0x%lx\n" msgstr "" -#: dwarf.c:3863 +#: dwarf.c:3749 #, c-format msgid " Offset Begin End\n" msgstr "" -#: dwarf.c:3884 +#: dwarf.c:3770 #, c-format msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n" msgstr "" -#: dwarf.c:3888 +#: dwarf.c:3774 #, c-format msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n" msgstr "" -#: dwarf.c:3931 +#: dwarf.c:3817 msgid "(start == end)" msgstr "" -#: dwarf.c:3933 +#: dwarf.c:3819 msgid "(start > end)" msgstr "" -#: dwarf.c:4185 +#: dwarf.c:4071 msgid "bad register: " msgstr "" -#: dwarf.c:4188 +#. The documentation for the format of this file is in gdb/dwarf2read.c. +#: dwarf.c:4074 dwarf.c:4883 #, c-format msgid "Contents of the %s section:\n" msgstr "" -#: dwarf.c:4962 +#: dwarf.c:4844 #, c-format msgid " DW_CFA_??? (User defined call frame op: %#x)\n" msgstr "" -#: dwarf.c:4964 +#: dwarf.c:4846 #, c-format msgid "unsupported or unknown Dwarf Call Frame Instruction number: %#x\n" msgstr "" -#: dwarf.c:4989 +#: dwarf.c:4887 #, c-format -msgid "Displaying the debug contents of section %s is not yet supported.\n" +msgid "Truncated header in the %s section.\n" msgstr "" -#: dwarf.c:5031 elfedit.c:74 +#: dwarf.c:4892 #, c-format -msgid "%s: Error: " +msgid "Version %ld\n" msgstr "" -#: dwarf.c:5042 +#: dwarf.c:4898 #, c-format -msgid "%s: Warning: " +msgid "Unsupported version %lu.\n" msgstr "" -#: dwarf.c:5145 dwarf.c:5215 +#: dwarf.c:4914 #, c-format -msgid "Unrecognized debug option '%s'\n" +msgid "Corrupt header in the %s section.\n" msgstr "" -#: elfedit.c:243 +#: dwarf.c:4929 #, c-format -msgid "%s: Not an ELF file - wrong magic bytes at the start\n" +msgid "" +"\n" +"CU table:\n" msgstr "" -#: elfedit.c:251 +#: dwarf.c:4935 #, c-format -msgid "%s: Unsupported EI_VERSION: %d is not %d\n" +msgid "[%3u] 0x%lx - 0x%lx\n" msgstr "" -#: elfedit.c:267 +#: dwarf.c:4940 #, c-format -msgid "%s: Unmatched EI_CLASS: %d is not %d\n" +msgid "" +"\n" +"TU table:\n" msgstr "" -#: elfedit.c:278 +#: dwarf.c:4947 #, c-format -msgid "%s: Unmatched e_machine: %d is not %d\n" +msgid "[%3u] 0x%lx 0x%lx " msgstr "" -#: elfedit.c:289 +#: dwarf.c:4954 #, c-format -msgid "%s: Unmatched e_type: %d is not %d\n" +msgid "" +"\n" +"Address table:\n" msgstr "" -#: elfedit.c:300 +#: dwarf.c:4963 #, c-format -msgid "%s: Unmatched EI_OSABI: %d is not %d\n" +msgid "%lu\n" msgstr "" -#: elfedit.c:333 +#: dwarf.c:4966 #, c-format -msgid "%s: Failed to update ELF header: %s\n" +msgid "" +"\n" +"Symbol table:\n" msgstr "" -#: elfedit.c:366 +#: dwarf.c:5000 #, c-format -msgid "Unsupported EI_CLASS: %d\n" +msgid "Displaying the debug contents of section %s is not yet supported.\n" msgstr "" -#: elfedit.c:399 -msgid "" -"This executable has been built without support for a\n" -"64 bit data type and so it cannot process 64 bit ELF files.\n" +#: dwarf.c:5136 dwarf.c:5206 +#, c-format +msgid "Unrecognized debug option '%s'\n" msgstr "" -#: elfedit.c:440 +#: elfcomm.c:39 #, c-format -msgid "%s: Failed to read ELF header\n" +msgid "%s: Error: " msgstr "" -#: elfedit.c:447 +#: elfcomm.c:50 #, c-format -msgid "%s: Failed to seek to ELF header\n" +msgid "%s: Warning: " +msgstr "" + +#: elfcomm.c:82 elfcomm.c:117 elfcomm.c:167 elfcomm.c:216 +#, c-format +msgid "Unhandled data length: %d\n" msgstr "" -#: elfedit.c:477 elfedit.c:491 elfedit.c:776 readelf.c:3674 readelf.c:3978 -#: readelf.c:4021 readelf.c:4093 readelf.c:4171 readelf.c:4936 readelf.c:4960 -#: readelf.c:7057 readelf.c:7103 readelf.c:7304 readelf.c:8494 readelf.c:8508 -#: readelf.c:9033 readelf.c:9049 readelf.c:9092 readelf.c:9117 readelf.c:11385 -#: readelf.c:11577 readelf.c:12138 readelf.c:12515 readelf.c:12529 -#: readelf.c:12891 +#: elfcomm.c:263 elfcomm.c:277 elfcomm.c:645 readelf.c:3599 readelf.c:3903 +#: readelf.c:3946 readelf.c:4018 readelf.c:4096 readelf.c:4863 readelf.c:4887 +#: readelf.c:6984 readelf.c:7030 readelf.c:7231 readelf.c:8421 readelf.c:8435 +#: readelf.c:8960 readelf.c:8976 readelf.c:9019 readelf.c:9044 readelf.c:11312 +#: readelf.c:11504 readelf.c:12065 msgid "Out of memory\n" msgstr "" -#: elfedit.c:543 readelf.c:12581 +#: elfcomm.c:312 #, c-format msgid "%s: failed to seek to first archive header\n" msgstr "" -#: elfedit.c:553 elfedit.c:741 elfedit.c:845 readelf.c:12590 readelf.c:12858 -#: readelf.c:13026 +#: elfcomm.c:321 elfcomm.c:611 elfedit.c:340 readelf.c:12548 #, c-format msgid "%s: failed to read archive header\n" msgstr "" -#: elfedit.c:568 readelf.c:12691 +#: elfcomm.c:347 +#, c-format +msgid "%s: the archive index is empty\n" +msgstr "" + +#: elfcomm.c:355 elfcomm.c:381 +#, c-format +msgid "%s: failed to read archive index\n" +msgstr "" + +#: elfcomm.c:365 +#, c-format +msgid "" +"%s: the archive index is supposed to have %ld entries, but the size in the " +"header is too small\n" +msgstr "" + +#: elfcomm.c:373 +msgid "Out of memory whilst trying to read archive symbol index\n" +msgstr "" + +#: elfcomm.c:392 +msgid "Out of memory whilst trying to convert the archive symbol index\n" +msgstr "" + +#: elfcomm.c:405 +#, c-format +msgid "%s: the archive has an index but no symbols\n" +msgstr "" + +#: elfcomm.c:413 +msgid "Out of memory whilst trying to read archive index symbol table\n" +msgstr "" + +#: elfcomm.c:419 +#, c-format +msgid "%s: failed to read archive index symbol table\n" +msgstr "" + +#: elfcomm.c:428 #, c-format msgid "%s: failed to skip archive symbol table\n" msgstr "" -#: elfedit.c:579 readelf.c:12702 +#: elfcomm.c:440 #, c-format msgid "%s: failed to read archive header following archive index\n" msgstr "" -#: elfedit.c:594 readelf.c:12718 +#: elfcomm.c:446 +#, c-format +msgid "%s has no archive index\n" +msgstr "" + +#: elfcomm.c:457 msgid "Out of memory reading long symbol names in archive\n" msgstr "" -#: elfedit.c:602 readelf.c:12726 +#: elfcomm.c:465 #, c-format msgid "%s: failed to read long symbol name string table\n" msgstr "" -#: elfedit.c:734 readelf.c:12852 +#: elfcomm.c:605 #, c-format msgid "%s: failed to seek to next file name\n" msgstr "" -#: elfedit.c:747 elfedit.c:852 readelf.c:12863 readelf.c:13032 +#: elfcomm.c:616 elfedit.c:347 readelf.c:12554 #, c-format msgid "%s: did not find a valid archive header\n" msgstr "" -#: elfedit.c:836 readelf.c:13018 +#: elfedit.c:73 +#, c-format +msgid "%s: Not an ELF file - wrong magic bytes at the start\n" +msgstr "" + +#: elfedit.c:81 +#, c-format +msgid "%s: Unsupported EI_VERSION: %d is not %d\n" +msgstr "" + +#: elfedit.c:97 +#, c-format +msgid "%s: Unmatched EI_CLASS: %d is not %d\n" +msgstr "" + +#: elfedit.c:108 +#, c-format +msgid "%s: Unmatched e_machine: %d is not %d\n" +msgstr "" + +#: elfedit.c:119 +#, c-format +msgid "%s: Unmatched e_type: %d is not %d\n" +msgstr "" + +#: elfedit.c:130 +#, c-format +msgid "%s: Unmatched EI_OSABI: %d is not %d\n" +msgstr "" + +#: elfedit.c:163 +#, c-format +msgid "%s: Failed to update ELF header: %s\n" +msgstr "" + +#: elfedit.c:196 +#, c-format +msgid "Unsupported EI_CLASS: %d\n" +msgstr "" + +#: elfedit.c:229 +msgid "" +"This executable has been built without support for a\n" +"64 bit data type and so it cannot process 64 bit ELF files.\n" +msgstr "" + +#: elfedit.c:270 +#, c-format +msgid "%s: Failed to read ELF header\n" +msgstr "" + +#: elfedit.c:277 +#, c-format +msgid "%s: Failed to seek to ELF header\n" +msgstr "" + +#: elfedit.c:331 readelf.c:12540 #, c-format msgid "%s: failed to seek to next archive header\n" msgstr "" -#: elfedit.c:867 elfedit.c:876 readelf.c:13046 readelf.c:13055 +#: elfedit.c:362 elfedit.c:371 readelf.c:12568 readelf.c:12577 #, c-format msgid "%s: bad archive file name\n" msgstr "" -#: elfedit.c:896 elfedit.c:988 +#: elfedit.c:391 elfedit.c:483 #, c-format msgid "Input file '%s' is not readable\n" msgstr "" -#: elfedit.c:920 +#: elfedit.c:415 #, c-format msgid "%s: failed to seek to archive member\n" msgstr "" -#: elfedit.c:959 readelf.c:13134 +#: elfedit.c:454 readelf.c:12663 #, c-format msgid "'%s': No such file\n" msgstr "" -#: elfedit.c:961 readelf.c:13136 +#: elfedit.c:456 readelf.c:12665 #, c-format msgid "Could not locate '%s'. System error message: %s\n" msgstr "" -#: elfedit.c:968 readelf.c:13143 +#: elfedit.c:463 readelf.c:12672 #, c-format msgid "'%s' is not an ordinary file\n" msgstr "" -#: elfedit.c:994 readelf.c:13156 +#: elfedit.c:489 readelf.c:12685 #, c-format msgid "%s: Failed to read file's magic number\n" msgstr "" -#: elfedit.c:1052 +#: elfedit.c:547 #, c-format msgid "Unknown OSABI: %s\n" msgstr "" -#: elfedit.c:1071 +#: elfedit.c:566 #, c-format msgid "Unknown machine type: %s\n" msgstr "" -#: elfedit.c:1089 +#: elfedit.c:584 #, c-format msgid "Unknown machine type: %d\n" msgstr "" -#: elfedit.c:1108 +#: elfedit.c:603 #, c-format msgid "Unknown type: %s\n" msgstr "" -#: elfedit.c:1139 +#: elfedit.c:634 #, c-format msgid "Usage: %s elffile(s)\n" msgstr "" -#: elfedit.c:1141 +#: elfedit.c:636 #, c-format msgid " Update the ELF header of ELF files\n" msgstr "" -#: elfedit.c:1142 objcopy.c:475 objcopy.c:585 +#: elfedit.c:637 objcopy.c:475 objcopy.c:585 #, c-format msgid " The options are:\n" msgstr "" -#: elfedit.c:1143 +#: elfedit.c:638 #, c-format msgid "" " --input-mach Set input machine type to \n" @@ -2924,17 +2928,17 @@ msgstr "" msgid "%s: invalid output format" msgstr "" -#: nm.c:346 readelf.c:8259 readelf.c:8304 +#: nm.c:346 readelf.c:8186 readelf.c:8231 #, c-format msgid ": %d" msgstr "" -#: nm.c:348 readelf.c:8268 readelf.c:8322 +#: nm.c:348 readelf.c:8195 readelf.c:8249 #, c-format msgid ": %d" msgstr "" -#: nm.c:350 readelf.c:8271 readelf.c:8325 +#: nm.c:350 readelf.c:8198 readelf.c:8252 #, c-format msgid ": %d" msgstr "" @@ -3223,7 +3227,7 @@ msgstr "" msgid "cannot open '%s': %s" msgstr "" -#: objcopy.c:764 objcopy.c:3389 +#: objcopy.c:764 objcopy.c:3388 #, c-format msgid "%s: fread failed" msgstr "" @@ -3433,136 +3437,136 @@ msgstr "" msgid "unknown PE subsystem: %s" msgstr "" -#: objcopy.c:3209 +#: objcopy.c:3208 msgid "byte number must be non-negative" msgstr "" -#: objcopy.c:3215 +#: objcopy.c:3214 #, c-format msgid "architecture %s unknown" msgstr "" -#: objcopy.c:3223 +#: objcopy.c:3222 msgid "interleave must be positive" msgstr "" -#: objcopy.c:3232 +#: objcopy.c:3231 msgid "interleave width must be positive" msgstr "" -#: objcopy.c:3252 objcopy.c:3260 +#: objcopy.c:3251 objcopy.c:3259 #, c-format msgid "%s both copied and removed" msgstr "" -#: objcopy.c:3359 objcopy.c:3439 objcopy.c:3547 objcopy.c:3578 objcopy.c:3602 -#: objcopy.c:3606 objcopy.c:3626 +#: objcopy.c:3358 objcopy.c:3438 objcopy.c:3546 objcopy.c:3577 objcopy.c:3601 +#: objcopy.c:3605 objcopy.c:3625 #, c-format msgid "bad format for %s" msgstr "" -#: objcopy.c:3371 +#: objcopy.c:3370 #, c-format msgid "cannot open: %s: %s" msgstr "" -#: objcopy.c:3516 +#: objcopy.c:3515 #, c-format msgid "Warning: truncating gap-fill from 0x%s to 0x%x" msgstr "" -#: objcopy.c:3677 +#: objcopy.c:3676 #, c-format msgid "unknown long section names option '%s'" msgstr "" -#: objcopy.c:3695 +#: objcopy.c:3694 msgid "unable to parse alternative machine code" msgstr "" -#: objcopy.c:3740 +#: objcopy.c:3739 msgid "number of bytes to reverse must be positive and even" msgstr "" -#: objcopy.c:3743 +#: objcopy.c:3742 #, c-format msgid "Warning: ignoring previous --reverse-bytes value of %d" msgstr "" -#: objcopy.c:3758 +#: objcopy.c:3757 #, c-format msgid "%s: invalid reserve value for --heap" msgstr "" -#: objcopy.c:3764 +#: objcopy.c:3763 #, c-format msgid "%s: invalid commit value for --heap" msgstr "" -#: objcopy.c:3789 +#: objcopy.c:3788 #, c-format msgid "%s: invalid reserve value for --stack" msgstr "" -#: objcopy.c:3795 +#: objcopy.c:3794 #, c-format msgid "%s: invalid commit value for --stack" msgstr "" -#: objcopy.c:3824 +#: objcopy.c:3823 msgid "interleave start byte must be set with --byte" msgstr "" -#: objcopy.c:3827 +#: objcopy.c:3826 msgid "byte number must be less than interleave" msgstr "" -#: objcopy.c:3830 +#: objcopy.c:3829 msgid "interleave width must be less than or equal to interleave - byte`" msgstr "" -#: objcopy.c:3857 +#: objcopy.c:3856 #, c-format msgid "unknown input EFI target: %s" msgstr "" -#: objcopy.c:3888 +#: objcopy.c:3887 #, c-format msgid "unknown output EFI target: %s" msgstr "" -#: objcopy.c:3901 +#: objcopy.c:3900 #, c-format msgid "warning: could not locate '%s'. System error message: %s" msgstr "" -#: objcopy.c:3912 +#: objcopy.c:3911 #, c-format msgid "" "warning: could not create temporary file whilst copying '%s', (error: %s)" msgstr "" -#: objcopy.c:3956 objcopy.c:3970 +#: objcopy.c:3939 objcopy.c:3953 #, c-format msgid "%s %s%c0x%s never used" msgstr "" -#: objdump.c:190 +#: objdump.c:191 #, c-format msgid "Usage: %s \n" msgstr "" -#: objdump.c:191 +#: objdump.c:192 #, c-format msgid " Display information from object .\n" msgstr "" -#: objdump.c:192 +#: objdump.c:193 #, c-format msgid " At least one of the following switches must be given:\n" msgstr "" -#: objdump.c:193 +#: objdump.c:194 #, c-format msgid "" " -a, --archive-headers Display archive header information\n" @@ -3584,7 +3588,7 @@ msgid "" " --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro," "=frames,\n" " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n" -" =trace_info,=trace_abbrev,=trace_aranges]\n" +" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n" " Display DWARF info in the file\n" " -t, --syms Display the contents of the symbol table(s)\n" " -T, --dynamic-syms Display the contents of the dynamic symbol table\n" @@ -3597,14 +3601,14 @@ msgid "" " -H, --help Display this information\n" msgstr "" -#: objdump.c:222 +#: objdump.c:223 #, c-format msgid "" "\n" " The following switches are optional:\n" msgstr "" -#: objdump.c:223 +#: objdump.c:224 #, c-format msgid "" " -b, --target=BFDNAME Specify the target object format as " @@ -3647,180 +3651,175 @@ msgid "" "\n" msgstr "" -#: objdump.c:396 +#: objdump.c:397 #, c-format msgid "section '%s' mentioned in a -j option, but not found in any input file" msgstr "" -#: objdump.c:500 +#: objdump.c:501 #, c-format msgid "Sections:\n" msgstr "" -#: objdump.c:503 objdump.c:507 +#: objdump.c:504 objdump.c:508 #, c-format msgid "Idx Name Size VMA LMA File off Algn" msgstr "" -#: objdump.c:509 +#: objdump.c:510 #, c-format msgid "" "Idx Name Size VMA LMA File off " "Algn" msgstr "" -#: objdump.c:513 +#: objdump.c:514 #, c-format msgid " Flags" msgstr "" -#: objdump.c:515 -#, c-format -msgid " Pg" -msgstr "" - -#: objdump.c:558 +#: objdump.c:557 #, c-format msgid "%s: not a dynamic object" msgstr "" -#: objdump.c:984 objdump.c:1008 +#: objdump.c:983 objdump.c:1007 #, c-format msgid " (File Offset: 0x%lx)" msgstr "" -#: objdump.c:1634 +#: objdump.c:1633 #, c-format msgid "disassemble_fn returned length %d" msgstr "" -#: objdump.c:1939 +#: objdump.c:1938 #, c-format msgid "" "\n" "Disassembly of section %s:\n" msgstr "" -#: objdump.c:2115 +#: objdump.c:2114 #, c-format msgid "can't use supplied machine %s" msgstr "" -#: objdump.c:2134 +#: objdump.c:2133 #, c-format msgid "can't disassemble for architecture %s\n" msgstr "" -#: objdump.c:2214 objdump.c:2237 +#: objdump.c:2213 objdump.c:2236 #, c-format msgid "" "\n" "Can't get contents for section '%s'.\n" msgstr "" -#: objdump.c:2378 +#: objdump.c:2377 #, c-format msgid "" "No %s section present\n" "\n" msgstr "" -#: objdump.c:2387 +#: objdump.c:2386 #, c-format msgid "reading %s section of %s failed: %s" msgstr "" -#: objdump.c:2431 +#: objdump.c:2430 #, c-format msgid "" "Contents of %s section:\n" "\n" msgstr "" -#: objdump.c:2562 +#: objdump.c:2561 #, c-format msgid "architecture: %s, " msgstr "" -#: objdump.c:2565 +#: objdump.c:2564 #, c-format msgid "flags 0x%08x:\n" msgstr "" -#: objdump.c:2579 +#: objdump.c:2578 #, c-format msgid "" "\n" "start address 0x" msgstr "" -#: objdump.c:2642 +#: objdump.c:2641 #, c-format msgid "Contents of section %s:" msgstr "" -#: objdump.c:2644 +#: objdump.c:2643 #, c-format msgid " (Starting at file offset: 0x%lx)" msgstr "" -#: objdump.c:2650 +#: objdump.c:2649 msgid "Reading section failed" msgstr "" -#: objdump.c:2753 +#: objdump.c:2752 #, c-format msgid "no symbols\n" msgstr "" -#: objdump.c:2760 +#: objdump.c:2759 #, c-format msgid "no information for symbol number %ld\n" msgstr "" -#: objdump.c:2763 +#: objdump.c:2762 #, c-format msgid "could not determine the type of symbol number %ld\n" msgstr "" -#: objdump.c:3043 +#: objdump.c:3042 #, c-format msgid "" "\n" "%s: file format %s\n" msgstr "" -#: objdump.c:3101 +#: objdump.c:3100 #, c-format msgid "%s: printing debugging information failed" msgstr "" -#: objdump.c:3205 +#: objdump.c:3204 #, c-format msgid "In archive %s:\n" msgstr "" -#: objdump.c:3316 +#: objdump.c:3315 msgid "error: the start address should be before the end address" msgstr "" -#: objdump.c:3321 +#: objdump.c:3320 msgid "error: the stop address should be after the start address" msgstr "" -#: objdump.c:3333 +#: objdump.c:3332 msgid "error: prefix strip must be non-negative" msgstr "" -#: objdump.c:3338 +#: objdump.c:3337 msgid "error: instruction width must be positive" msgstr "" -#: objdump.c:3347 +#: objdump.c:3346 msgid "unrecognized -E option" msgstr "" -#: objdump.c:3358 +#: objdump.c:3357 #, c-format msgid "unrecognized --endian type `%s'" msgstr "" @@ -3864,239 +3863,239 @@ msgstr "" msgid "Last stabs entries before error:\n" msgstr "" -#: readelf.c:268 +#: readelf.c:265 msgid "" msgstr "" -#: readelf.c:269 +#: readelf.c:266 msgid "" msgstr "" -#: readelf.c:270 readelf.c:5047 readelf.c:5557 readelf.c:7794 readelf.c:7912 -#: readelf.c:8865 readelf.c:8945 readelf.c:8998 readelf.c:11860 -#: readelf.c:11863 +#: readelf.c:267 readelf.c:4974 readelf.c:5484 readelf.c:7721 readelf.c:7839 +#: readelf.c:8792 readelf.c:8872 readelf.c:8925 readelf.c:11787 +#: readelf.c:11790 msgid "" msgstr "" -#: readelf.c:308 +#: readelf.c:297 #, c-format msgid "Unable to seek to 0x%lx for %s\n" msgstr "" -#: readelf.c:323 +#: readelf.c:312 #, c-format msgid "Out of memory allocating 0x%lx bytes for %s\n" msgstr "" -#: readelf.c:333 +#: readelf.c:322 #, c-format msgid "Unable to read in 0x%lx bytes of %s\n" msgstr "" -#: readelf.c:697 +#: readelf.c:622 msgid "Don't know about relocations on this machine architecture\n" msgstr "" -#: readelf.c:718 readelf.c:748 readelf.c:816 readelf.c:845 +#: readelf.c:643 readelf.c:673 readelf.c:741 readelf.c:770 msgid "relocs" msgstr "" -#: readelf.c:730 readelf.c:760 readelf.c:827 readelf.c:856 +#: readelf.c:655 readelf.c:685 readelf.c:752 readelf.c:781 msgid "out of memory parsing relocs\n" msgstr "" -#: readelf.c:961 +#: readelf.c:886 #, c-format msgid "" " Offset Info Type Sym. Value Symbol's Name + Addend\n" msgstr "" -#: readelf.c:963 +#: readelf.c:888 #, c-format msgid " Offset Info Type Sym.Value Sym. Name + Addend\n" msgstr "" -#: readelf.c:968 +#: readelf.c:893 #, c-format msgid " Offset Info Type Sym. Value Symbol's Name\n" msgstr "" -#: readelf.c:970 +#: readelf.c:895 #, c-format msgid " Offset Info Type Sym.Value Sym. Name\n" msgstr "" -#: readelf.c:978 +#: readelf.c:903 #, c-format msgid "" " Offset Info Type Symbol's Value " "Symbol's Name + Addend\n" msgstr "" -#: readelf.c:980 +#: readelf.c:905 #, c-format msgid "" " Offset Info Type Sym. Value Sym. Name + " "Addend\n" msgstr "" -#: readelf.c:985 +#: readelf.c:910 #, c-format msgid "" " Offset Info Type Symbol's Value " "Symbol's Name\n" msgstr "" -#: readelf.c:987 +#: readelf.c:912 #, c-format msgid "" " Offset Info Type Sym. Value Sym. Name\n" msgstr "" -#: readelf.c:1291 readelf.c:1448 readelf.c:1456 +#: readelf.c:1216 readelf.c:1373 readelf.c:1381 #, c-format msgid "unrecognized: %-7lx" msgstr "" -#: readelf.c:1316 +#: readelf.c:1241 #, c-format msgid "" msgstr "" -#: readelf.c:1323 +#: readelf.c:1248 #, c-format msgid " bad symbol index: %08lx" msgstr "" -#: readelf.c:1406 +#: readelf.c:1331 #, c-format msgid "" msgstr "" -#: readelf.c:1408 +#: readelf.c:1333 #, c-format msgid "" msgstr "" -#: readelf.c:1801 +#: readelf.c:1726 #, c-format msgid "Processor Specific: %lx" msgstr "" -#: readelf.c:1825 +#: readelf.c:1750 #, c-format msgid "Operating System specific: %lx" msgstr "" -#: readelf.c:1829 readelf.c:2875 +#: readelf.c:1754 readelf.c:2800 #, c-format msgid ": %lx" msgstr "" -#: readelf.c:1842 +#: readelf.c:1767 msgid "NONE (None)" msgstr "" -#: readelf.c:1843 +#: readelf.c:1768 msgid "REL (Relocatable file)" msgstr "" -#: readelf.c:1844 +#: readelf.c:1769 msgid "EXEC (Executable file)" msgstr "" -#: readelf.c:1845 +#: readelf.c:1770 msgid "DYN (Shared object file)" msgstr "" -#: readelf.c:1846 +#: readelf.c:1771 msgid "CORE (Core file)" msgstr "" -#: readelf.c:1850 +#: readelf.c:1775 #, c-format msgid "Processor Specific: (%x)" msgstr "" -#: readelf.c:1852 +#: readelf.c:1777 #, c-format msgid "OS Specific: (%x)" msgstr "" -#: readelf.c:1854 readelf.c:3122 +#: readelf.c:1779 readelf.c:3047 #, c-format msgid ": %x" msgstr "" -#: readelf.c:1866 +#: readelf.c:1791 msgid "None" msgstr "" -#: readelf.c:2034 +#: readelf.c:1959 #, c-format msgid ": 0x%x" msgstr "" -#: readelf.c:2220 +#: readelf.c:2145 msgid ", " msgstr "" -#: readelf.c:2291 readelf.c:7145 +#: readelf.c:2216 readelf.c:7072 msgid "unknown" msgstr "" -#: readelf.c:2292 +#: readelf.c:2217 msgid "unknown mac" msgstr "" -#: readelf.c:2356 +#: readelf.c:2281 msgid ", relocatable" msgstr "" -#: readelf.c:2359 +#: readelf.c:2284 msgid ", relocatable-lib" msgstr "" -#: readelf.c:2382 +#: readelf.c:2307 msgid ", unknown v850 architecture variant" msgstr "" -#: readelf.c:2438 +#: readelf.c:2363 msgid ", unknown CPU" msgstr "" -#: readelf.c:2453 +#: readelf.c:2378 msgid ", unknown ABI" msgstr "" -#: readelf.c:2473 readelf.c:2507 +#: readelf.c:2398 readelf.c:2432 msgid ", unknown ISA" msgstr "" -#: readelf.c:2680 +#: readelf.c:2605 msgid "Standalone App" msgstr "" -#: readelf.c:2689 +#: readelf.c:2614 msgid "Bare-metal C6000" msgstr "" -#: readelf.c:2699 readelf.c:3462 readelf.c:3478 +#: readelf.c:2624 readelf.c:3387 readelf.c:3403 #, c-format msgid "" msgstr "" -#: readelf.c:3172 +#: readelf.c:3097 #, c-format msgid "Usage: readelf elf-file(s)\n" msgstr "" -#: readelf.c:3173 +#: readelf.c:3098 #, c-format msgid " Display information about the contents of ELF format files\n" msgstr "" -#: readelf.c:3174 +#: readelf.c:3099 #, c-format msgid "" " Options are:\n" @@ -4135,18 +4134,18 @@ msgid "" " --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro," "=frames,\n" " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n" -" =trace_info,=trace_abbrev,=trace_aranges]\n" +" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n" " Display the contents of DWARF2 debug sections\n" msgstr "" -#: readelf.c:3207 +#: readelf.c:3132 #, c-format msgid "" " -i --instruction-dump=\n" " Disassemble the contents of section \n" msgstr "" -#: readelf.c:3211 +#: readelf.c:3136 #, c-format msgid "" " -I --histogram Display histogram of bucket list lengths\n" @@ -4156,414 +4155,409 @@ msgid "" " -v --version Display the version number of readelf\n" msgstr "" -#: readelf.c:3240 readelf.c:3269 readelf.c:3273 readelf.c:13224 +#: readelf.c:3165 readelf.c:3194 readelf.c:3198 readelf.c:12753 msgid "Out of memory allocating dump request table.\n" msgstr "" -#: readelf.c:3431 +#: readelf.c:3356 #, c-format msgid "Invalid option '-%c'\n" msgstr "" -#: readelf.c:3446 +#: readelf.c:3371 msgid "Nothing to do.\n" msgstr "" -#: readelf.c:3458 readelf.c:3474 readelf.c:7730 +#: readelf.c:3383 readelf.c:3399 readelf.c:7657 msgid "none" msgstr "" -#: readelf.c:3475 +#: readelf.c:3400 msgid "2's complement, little endian" msgstr "" -#: readelf.c:3476 +#: readelf.c:3401 msgid "2's complement, big endian" msgstr "" -#: readelf.c:3494 +#: readelf.c:3419 msgid "Not an ELF file - it has the wrong magic bytes at the start\n" msgstr "" -#: readelf.c:3504 +#: readelf.c:3429 #, c-format msgid "ELF Header:\n" msgstr "" -#: readelf.c:3505 +#: readelf.c:3430 #, c-format msgid " Magic: " msgstr "" -#: readelf.c:3509 +#: readelf.c:3434 #, c-format msgid " Class: %s\n" msgstr "" -#: readelf.c:3511 +#: readelf.c:3436 #, c-format msgid " Data: %s\n" msgstr "" -#: readelf.c:3513 +#: readelf.c:3438 #, c-format msgid " Version: %d %s\n" msgstr "" -#: readelf.c:3518 +#: readelf.c:3443 #, c-format msgid "" msgstr "" -#: readelf.c:3520 +#: readelf.c:3445 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: readelf.c:3522 +#: readelf.c:3447 #, c-format msgid " ABI Version: %d\n" msgstr "" -#: readelf.c:3524 +#: readelf.c:3449 #, c-format msgid " Type: %s\n" msgstr "" -#: readelf.c:3526 +#: readelf.c:3451 #, c-format msgid " Machine: %s\n" msgstr "" -#: readelf.c:3528 +#: readelf.c:3453 #, c-format msgid " Version: 0x%lx\n" msgstr "" -#: readelf.c:3531 +#: readelf.c:3456 #, c-format msgid " Entry point address: " msgstr "" -#: readelf.c:3533 +#: readelf.c:3458 #, c-format msgid "" "\n" " Start of program headers: " msgstr "" -#: readelf.c:3535 +#: readelf.c:3460 #, c-format msgid "" " (bytes into file)\n" " Start of section headers: " msgstr "" -#: readelf.c:3537 +#: readelf.c:3462 #, c-format msgid " (bytes into file)\n" msgstr "" -#: readelf.c:3539 +#: readelf.c:3464 #, c-format msgid " Flags: 0x%lx%s\n" msgstr "" -#: readelf.c:3542 +#: readelf.c:3467 #, c-format msgid " Size of this header: %ld (bytes)\n" msgstr "" -#: readelf.c:3544 +#: readelf.c:3469 #, c-format msgid " Size of program headers: %ld (bytes)\n" msgstr "" -#: readelf.c:3546 +#: readelf.c:3471 #, c-format msgid " Number of program headers: %ld" msgstr "" -#: readelf.c:3551 -#, c-format -msgid " (%ld)" -msgstr "" - -#: readelf.c:3553 +#: readelf.c:3478 #, c-format msgid " Size of section headers: %ld (bytes)\n" msgstr "" -#: readelf.c:3555 +#: readelf.c:3480 #, c-format msgid " Number of section headers: %ld" msgstr "" -#: readelf.c:3560 +#: readelf.c:3485 #, c-format msgid " Section header string table index: %ld" msgstr "" -#: readelf.c:3567 +#: readelf.c:3492 #, c-format msgid " " msgstr "" -#: readelf.c:3601 readelf.c:3635 +#: readelf.c:3526 readelf.c:3560 msgid "program headers" msgstr "" -#: readelf.c:3701 +#: readelf.c:3626 #, c-format msgid "" "\n" "There are no program headers in this file.\n" msgstr "" -#: readelf.c:3707 +#: readelf.c:3632 #, c-format msgid "" "\n" "Elf file type is %s\n" msgstr "" -#: readelf.c:3708 +#: readelf.c:3633 #, c-format msgid "Entry point " msgstr "" -#: readelf.c:3710 +#: readelf.c:3635 #, c-format msgid "" "\n" "There are %d program headers, starting at offset " msgstr "" -#: readelf.c:3722 readelf.c:3724 +#: readelf.c:3647 readelf.c:3649 #, c-format msgid "" "\n" "Program Headers:\n" msgstr "" -#: readelf.c:3728 +#: readelf.c:3653 #, c-format msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n" msgstr "" -#: readelf.c:3731 +#: readelf.c:3656 #, c-format msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align\n" msgstr "" -#: readelf.c:3735 +#: readelf.c:3660 #, c-format msgid " Type Offset VirtAddr PhysAddr\n" msgstr "" -#: readelf.c:3737 +#: readelf.c:3662 #, c-format msgid " FileSiz MemSiz Flags Align\n" msgstr "" -#: readelf.c:3830 +#: readelf.c:3755 msgid "more than one dynamic segment\n" msgstr "" -#: readelf.c:3849 +#: readelf.c:3774 msgid "no .dynamic section in the dynamic segment\n" msgstr "" -#: readelf.c:3864 +#: readelf.c:3789 msgid "the .dynamic section is not contained within the dynamic segment\n" msgstr "" -#: readelf.c:3867 +#: readelf.c:3792 msgid "the .dynamic section is not the first section in the dynamic segment.\n" msgstr "" -#: readelf.c:3875 +#: readelf.c:3800 msgid "Unable to find program interpreter name\n" msgstr "" -#: readelf.c:3882 +#: readelf.c:3807 msgid "" "Internal error: failed to create format string to display program " "interpreter\n" msgstr "" -#: readelf.c:3886 +#: readelf.c:3811 msgid "Unable to read program interpreter name\n" msgstr "" -#: readelf.c:3889 +#: readelf.c:3814 #, c-format msgid "" "\n" " [Requesting program interpreter: %s]" msgstr "" -#: readelf.c:3901 +#: readelf.c:3826 #, c-format msgid "" "\n" " Section to Segment mapping:\n" msgstr "" -#: readelf.c:3902 +#: readelf.c:3827 #, c-format msgid " Segment Sections...\n" msgstr "" -#: readelf.c:3938 +#: readelf.c:3863 msgid "Cannot interpret virtual addresses without program headers.\n" msgstr "" -#: readelf.c:3954 +#: readelf.c:3879 #, c-format msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n" msgstr "" -#: readelf.c:3969 readelf.c:4012 +#: readelf.c:3894 readelf.c:3937 msgid "section headers" msgstr "" -#: readelf.c:4059 readelf.c:4134 +#: readelf.c:3984 readelf.c:4059 msgid "sh_entsize is zero\n" msgstr "" -#: readelf.c:4067 readelf.c:4142 +#: readelf.c:3992 readelf.c:4067 msgid "Invalid sh_entsize\n" msgstr "" -#: readelf.c:4072 readelf.c:4147 +#: readelf.c:3997 readelf.c:4072 msgid "symbols" msgstr "" -#: readelf.c:4084 readelf.c:4159 +#: readelf.c:4009 readelf.c:4084 msgid "symtab shndx" msgstr "" -#: readelf.c:4419 +#: readelf.c:4344 #, c-format msgid "UNKNOWN (%*.*lx)" msgstr "" -#: readelf.c:4440 readelf.c:4920 +#: readelf.c:4365 readelf.c:4847 #, c-format msgid "" "\n" "There are no sections in this file.\n" msgstr "" -#: readelf.c:4446 +#: readelf.c:4371 #, c-format msgid "There are %d section headers, starting at offset 0x%lx:\n" msgstr "" -#: readelf.c:4467 readelf.c:5043 readelf.c:5454 readelf.c:5760 readelf.c:6173 -#: readelf.c:6754 readelf.c:8843 +#: readelf.c:4392 readelf.c:4970 readelf.c:5381 readelf.c:5687 readelf.c:6100 +#: readelf.c:6681 readelf.c:8770 msgid "string table" msgstr "" -#: readelf.c:4534 +#: readelf.c:4459 #, c-format msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n" msgstr "" -#: readelf.c:4554 +#: readelf.c:4479 msgid "File contains multiple dynamic symbol tables\n" msgstr "" -#: readelf.c:4567 +#: readelf.c:4492 msgid "File contains multiple dynamic string tables\n" msgstr "" -#: readelf.c:4573 +#: readelf.c:4498 msgid "dynamic strings" msgstr "" -#: readelf.c:4580 +#: readelf.c:4505 msgid "File contains multiple symtab shndx tables\n" msgstr "" -#: readelf.c:4648 +#: readelf.c:4575 #, c-format msgid "" "\n" "Section Headers:\n" msgstr "" -#: readelf.c:4650 +#: readelf.c:4577 #, c-format msgid "" "\n" "Section Header:\n" msgstr "" -#: readelf.c:4656 readelf.c:4667 readelf.c:4678 +#: readelf.c:4583 readelf.c:4594 readelf.c:4605 #, c-format msgid " [Nr] Name\n" msgstr "" -#: readelf.c:4657 +#: readelf.c:4584 #, c-format msgid " Type Addr Off Size ES Lk Inf Al\n" msgstr "" -#: readelf.c:4661 +#: readelf.c:4588 #, c-format msgid "" " [Nr] Name Type Addr Off Size ES Flg Lk " "Inf Al\n" msgstr "" -#: readelf.c:4668 +#: readelf.c:4595 #, c-format msgid " Type Address Off Size ES Lk Inf Al\n" msgstr "" -#: readelf.c:4672 +#: readelf.c:4599 #, c-format msgid "" " [Nr] Name Type Address Off Size ES " "Flg Lk Inf Al\n" msgstr "" -#: readelf.c:4679 +#: readelf.c:4606 #, c-format msgid " Type Address Offset Link\n" msgstr "" -#: readelf.c:4680 +#: readelf.c:4607 #, c-format msgid " Size EntSize Info Align\n" msgstr "" -#: readelf.c:4684 +#: readelf.c:4611 #, c-format msgid " [Nr] Name Type Address Offset\n" msgstr "" -#: readelf.c:4685 +#: readelf.c:4612 #, c-format msgid " Size EntSize Flags Link Info Align\n" msgstr "" -#: readelf.c:4690 +#: readelf.c:4617 #, c-format msgid " Flags\n" msgstr "" -#: readelf.c:4769 +#: readelf.c:4696 #, c-format msgid "section %u: sh_link value of %u is larger than the number of sections\n" msgstr "" -#: readelf.c:4868 +#: readelf.c:4795 #, c-format msgid "" "Key to Flags:\n" @@ -4572,7 +4566,7 @@ msgid "" " O (extra OS processing required) o (OS specific), p (processor specific)\n" msgstr "" -#: readelf.c:4873 +#: readelf.c:4800 #, c-format msgid "" "Key to Flags:\n" @@ -4581,826 +4575,796 @@ msgid "" " O (extra OS processing required) o (OS specific), p (processor specific)\n" msgstr "" -#: readelf.c:4895 +#: readelf.c:4822 #, c-format msgid "[: 0x%x] " msgstr "" -#: readelf.c:4927 +#: readelf.c:4854 msgid "Section headers are not available!\n" msgstr "" -#: readelf.c:4951 +#: readelf.c:4878 #, c-format msgid "" "\n" "There are no section groups in this file.\n" msgstr "" -#: readelf.c:4988 +#: readelf.c:4915 #, c-format msgid "Bad sh_link in group section `%s'\n" msgstr "" -#: readelf.c:5002 +#: readelf.c:4929 #, c-format msgid "Corrupt header in group section `%s'\n" msgstr "" -#: readelf.c:5013 +#: readelf.c:4940 #, c-format msgid "Bad sh_info in group section `%s'\n" msgstr "" -#: readelf.c:5052 +#: readelf.c:4979 msgid "section data" msgstr "" -#: readelf.c:5061 +#: readelf.c:4988 #, c-format msgid "" "\n" "%sgroup section [%5u] `%s' [%s] contains %u sections:\n" msgstr "" -#: readelf.c:5064 +#: readelf.c:4991 #, c-format msgid " [Index] Name\n" msgstr "" -#: readelf.c:5078 +#: readelf.c:5005 #, c-format msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n" msgstr "" -#: readelf.c:5087 +#: readelf.c:5014 #, c-format msgid "section [%5u] in group section [%5u] already in group section [%5u]\n" msgstr "" -#: readelf.c:5100 +#: readelf.c:5027 #, c-format msgid "section 0 in group section [%5u]\n" msgstr "" -#: readelf.c:5167 +#: readelf.c:5094 msgid "dynamic section image fixups" msgstr "" -#: readelf.c:5179 +#: readelf.c:5106 #, c-format msgid "" "\n" "Image fixups for needed library #%d: %s - ident: %lx\n" msgstr "" -#: readelf.c:5182 +#: readelf.c:5109 #, c-format msgid "Seg Offset Type SymVec DataType\n" msgstr "" -#: readelf.c:5214 +#: readelf.c:5141 msgid "dynamic section image relas" msgstr "" -#: readelf.c:5218 +#: readelf.c:5145 #, c-format msgid "" "\n" "Image relocs\n" msgstr "" -#: readelf.c:5220 +#: readelf.c:5147 #, c-format msgid "" "Seg Offset Type Addend Seg Sym Off\n" msgstr "" -#: readelf.c:5275 +#: readelf.c:5202 msgid "dynamic string section" msgstr "" -#: readelf.c:5376 +#: readelf.c:5303 #, c-format msgid "" "\n" "'%s' relocation section at offset 0x%lx contains %ld bytes:\n" msgstr "" -#: readelf.c:5391 +#: readelf.c:5318 #, c-format msgid "" "\n" "There are no dynamic relocations in this file.\n" msgstr "" -#: readelf.c:5415 +#: readelf.c:5342 #, c-format msgid "" "\n" "Relocation section " msgstr "" -#: readelf.c:5420 readelf.c:5836 readelf.c:5851 readelf.c:6188 +#: readelf.c:5347 readelf.c:5763 readelf.c:5778 readelf.c:6115 #, c-format msgid "'%s'" msgstr "" -#: readelf.c:5422 readelf.c:5853 readelf.c:6190 +#: readelf.c:5349 readelf.c:5780 readelf.c:6117 #, c-format msgid " at offset 0x%lx contains %lu entries:\n" msgstr "" -#: readelf.c:5473 +#: readelf.c:5400 #, c-format msgid "" "\n" "There are no relocations in this file.\n" msgstr "" -#: readelf.c:5611 +#: readelf.c:5538 #, c-format msgid "\tUnknown version.\n" msgstr "" -#: readelf.c:5664 readelf.c:6037 +#: readelf.c:5591 readelf.c:5964 msgid "unwind table" msgstr "" -#: readelf.c:5706 readelf.c:6119 readelf.c:6365 +#: readelf.c:5633 readelf.c:6046 readelf.c:6292 #, c-format msgid "Skipping unexpected relocation type %s\n" msgstr "" -#: readelf.c:5768 readelf.c:6181 readelf.c:6762 readelf.c:6808 +#: readelf.c:5695 readelf.c:6108 readelf.c:6689 readelf.c:6735 #, c-format msgid "" "\n" "There are no unwind sections in this file.\n" msgstr "" -#: readelf.c:5831 +#: readelf.c:5758 #, c-format msgid "" "\n" "Could not find unwind info section for " msgstr "" -#: readelf.c:5844 +#: readelf.c:5771 msgid "unwind info" msgstr "" -#: readelf.c:5846 readelf.c:6187 +#: readelf.c:5773 readelf.c:6114 #, c-format msgid "" "\n" "Unwind section " msgstr "" -#: readelf.c:6296 +#: readelf.c:6223 msgid "unwind data" msgstr "" -#: readelf.c:6350 +#: readelf.c:6277 #, c-format msgid "Skipping unexpected relocation at offset 0x%lx\n" msgstr "" -#: readelf.c:6426 +#: readelf.c:6353 #, c-format msgid "[Truncated opcode]\n" msgstr "" -#: readelf.c:6429 -#, c-format -msgid "0x%02x " -msgstr "" - -#: readelf.c:6451 +#: readelf.c:6378 #, c-format msgid " Personality routine: " msgstr "" -#: readelf.c:6469 +#: readelf.c:6396 #, c-format msgid " [Truncated data]\n" msgstr "" -#: readelf.c:6484 +#: readelf.c:6411 #, c-format msgid " [reserved compact index %d]\n" msgstr "" -#: readelf.c:6488 +#: readelf.c:6415 #, c-format msgid " Compact model %d\n" msgstr "" -#: readelf.c:6515 -#, c-format -msgid " 0x%02x " -msgstr "" - -#: readelf.c:6520 -#, c-format -msgid " vsp = vsp + %d" -msgstr "" - -#: readelf.c:6525 -#, c-format -msgid " vsp = vsp - %d" -msgstr "" - -#: readelf.c:6531 +#: readelf.c:6458 #, c-format msgid "Refuse to unwind" msgstr "" -#: readelf.c:6554 +#: readelf.c:6481 #, c-format msgid " [Reserved]" msgstr "" -#: readelf.c:6556 -#, c-format -msgid " vsp = r%d" -msgstr "" - -#: readelf.c:6581 +#: readelf.c:6508 #, c-format msgid " finish" msgstr "" -#: readelf.c:6586 +#: readelf.c:6513 #, c-format msgid "[Spare]" msgstr "" -#: readelf.c:6620 -#, c-format -msgid "vsp = vsp + %ld" -msgstr "" - -#: readelf.c:6627 +#: readelf.c:6554 #, c-format msgid "[unsupported two-byte opcode]" msgstr "" -#: readelf.c:6631 +#: readelf.c:6558 #, c-format msgid " [unsupported opcode]" msgstr "" -#: readelf.c:6715 +#: readelf.c:6642 #, c-format msgid "Could not locate .ARM.extab section containing 0x%lx.\n" msgstr "" -#: readelf.c:6768 +#: readelf.c:6695 #, c-format msgid "" "\n" "Unwind table index '%s' at offset 0x%lx contains %lu entries:\n" msgstr "" -#: readelf.c:6819 +#: readelf.c:6746 #, c-format msgid "NONE\n" msgstr "" -#: readelf.c:6845 +#: readelf.c:6772 #, c-format msgid "Interface Version: %s\n" msgstr "" -#: readelf.c:6847 +#: readelf.c:6774 #, c-format msgid "\n" msgstr "" -#: readelf.c:6860 +#: readelf.c:6787 #, c-format msgid "Time Stamp: %s\n" msgstr "" -#: readelf.c:7037 readelf.c:7083 +#: readelf.c:6964 readelf.c:7010 msgid "dynamic section" msgstr "" -#: readelf.c:7161 +#: readelf.c:7088 #, c-format msgid "" "\n" "There is no dynamic section in this file.\n" msgstr "" -#: readelf.c:7199 +#: readelf.c:7126 msgid "Unable to seek to end of file!\n" msgstr "" -#: readelf.c:7212 +#: readelf.c:7139 msgid "Unable to determine the number of symbols to load\n" msgstr "" -#: readelf.c:7247 +#: readelf.c:7174 msgid "Unable to seek to end of file\n" msgstr "" -#: readelf.c:7254 +#: readelf.c:7181 msgid "Unable to determine the length of the dynamic string table\n" msgstr "" -#: readelf.c:7260 +#: readelf.c:7187 msgid "dynamic string table" msgstr "" -#: readelf.c:7297 +#: readelf.c:7224 msgid "symbol information" msgstr "" -#: readelf.c:7322 +#: readelf.c:7249 #, c-format msgid "" "\n" "Dynamic section at offset 0x%lx contains %u entries:\n" msgstr "" -#: readelf.c:7325 +#: readelf.c:7252 #, c-format msgid " Tag Type Name/Value\n" msgstr "" -#: readelf.c:7361 +#: readelf.c:7288 #, c-format msgid "Auxiliary library" msgstr "" -#: readelf.c:7365 +#: readelf.c:7292 #, c-format msgid "Filter library" msgstr "" -#: readelf.c:7369 +#: readelf.c:7296 #, c-format msgid "Configuration file" msgstr "" -#: readelf.c:7373 +#: readelf.c:7300 #, c-format msgid "Dependency audit library" msgstr "" -#: readelf.c:7377 +#: readelf.c:7304 #, c-format msgid "Audit library" msgstr "" -#: readelf.c:7395 readelf.c:7423 readelf.c:7451 +#: readelf.c:7322 readelf.c:7350 readelf.c:7378 #, c-format msgid "Flags:" msgstr "" -#: readelf.c:7398 readelf.c:7426 readelf.c:7453 +#: readelf.c:7325 readelf.c:7353 readelf.c:7380 #, c-format msgid " None\n" msgstr "" -#: readelf.c:7574 +#: readelf.c:7501 #, c-format msgid "Shared library: [%s]" msgstr "" -#: readelf.c:7577 +#: readelf.c:7504 #, c-format msgid " program interpreter" msgstr "" -#: readelf.c:7581 +#: readelf.c:7508 #, c-format msgid "Library soname: [%s]" msgstr "" -#: readelf.c:7585 +#: readelf.c:7512 #, c-format msgid "Library rpath: [%s]" msgstr "" -#: readelf.c:7589 +#: readelf.c:7516 #, c-format msgid "Library runpath: [%s]" msgstr "" -#: readelf.c:7622 +#: readelf.c:7549 #, c-format msgid " (bytes)\n" msgstr "" -#: readelf.c:7652 +#: readelf.c:7579 #, c-format msgid "Not needed object: [%s]\n" msgstr "" -#: readelf.c:7752 +#: readelf.c:7679 msgid "| " msgstr "" -#: readelf.c:7785 +#: readelf.c:7712 #, c-format msgid "" "\n" "Version definition section '%s' contains %u entries:\n" msgstr "" -#: readelf.c:7788 +#: readelf.c:7715 #, c-format msgid " Addr: 0x" msgstr "" -#: readelf.c:7790 readelf.c:7908 readelf.c:8046 +#: readelf.c:7717 readelf.c:7835 readelf.c:7973 #, c-format msgid " Offset: %#08lx Link: %u (%s)\n" msgstr "" -#: readelf.c:7798 +#: readelf.c:7725 msgid "version definition section" msgstr "" -#: readelf.c:7831 +#: readelf.c:7758 #, c-format msgid " %#06x: Rev: %d Flags: %s" msgstr "" -#: readelf.c:7834 +#: readelf.c:7761 #, c-format msgid " Index: %d Cnt: %d " msgstr "" -#: readelf.c:7850 +#: readelf.c:7777 #, c-format msgid "Name: %s\n" msgstr "" -#: readelf.c:7852 +#: readelf.c:7779 #, c-format msgid "Name index: %ld\n" msgstr "" -#: readelf.c:7874 +#: readelf.c:7801 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" -#: readelf.c:7877 +#: readelf.c:7804 #, c-format msgid " %#06x: Parent %d, name index: %ld\n" msgstr "" -#: readelf.c:7882 +#: readelf.c:7809 #, c-format msgid " Version def aux past end of section\n" msgstr "" -#: readelf.c:7888 +#: readelf.c:7815 #, c-format msgid " Version definition past end of section\n" msgstr "" -#: readelf.c:7903 +#: readelf.c:7830 #, c-format msgid "" "\n" "Version needs section '%s' contains %u entries:\n" msgstr "" -#: readelf.c:7906 +#: readelf.c:7833 #, c-format msgid " Addr: 0x" msgstr "" -#: readelf.c:7917 +#: readelf.c:7844 msgid "version need section" msgstr "" -#: readelf.c:7945 +#: readelf.c:7872 #, c-format msgid " %#06x: Version: %d" msgstr "" -#: readelf.c:7948 +#: readelf.c:7875 #, c-format msgid " File: %s" msgstr "" -#: readelf.c:7950 +#: readelf.c:7877 #, c-format msgid " File: %lx" msgstr "" -#: readelf.c:7952 +#: readelf.c:7879 #, c-format msgid " Cnt: %d\n" msgstr "" -#: readelf.c:7977 +#: readelf.c:7904 #, c-format msgid " %#06x: Name: %s" msgstr "" -#: readelf.c:7980 +#: readelf.c:7907 #, c-format msgid " %#06x: Name index: %lx" msgstr "" -#: readelf.c:7983 +#: readelf.c:7910 #, c-format msgid " Flags: %s Version: %d\n" msgstr "" -#: readelf.c:7995 +#: readelf.c:7922 #, c-format msgid " Version need aux past end of section\n" msgstr "" -#: readelf.c:8000 +#: readelf.c:7927 #, c-format msgid " Version need past end of section\n" msgstr "" -#: readelf.c:8037 +#: readelf.c:7964 msgid "version string table" msgstr "" -#: readelf.c:8041 +#: readelf.c:7968 #, c-format msgid "" "\n" "Version symbols section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:8044 +#: readelf.c:7971 #, c-format msgid " Addr: " msgstr "" -#: readelf.c:8055 +#: readelf.c:7982 msgid "version symbol data" msgstr "" -#: readelf.c:8082 +#: readelf.c:8009 msgid " 0 (*local*) " msgstr "" -#: readelf.c:8086 +#: readelf.c:8013 msgid " 1 (*global*) " msgstr "" -#: readelf.c:8099 +#: readelf.c:8026 msgid "invalid index into symbol array\n" msgstr "" -#: readelf.c:8133 readelf.c:8910 +#: readelf.c:8060 readelf.c:8837 msgid "version need" msgstr "" -#: readelf.c:8143 +#: readelf.c:8070 msgid "version need aux (2)" msgstr "" -#: readelf.c:8158 readelf.c:8213 +#: readelf.c:8085 readelf.c:8140 msgid "*invalid*" msgstr "" -#: readelf.c:8188 readelf.c:8975 +#: readelf.c:8115 readelf.c:8902 msgid "version def" msgstr "" -#: readelf.c:8208 readelf.c:8990 +#: readelf.c:8135 readelf.c:8917 msgid "version def aux" msgstr "" -#: readelf.c:8242 +#: readelf.c:8169 #, c-format msgid "" "\n" "No version information found in this file.\n" msgstr "" -#: readelf.c:8441 +#: readelf.c:8368 #, c-format msgid ": %x" msgstr "" -#: readelf.c:8500 +#: readelf.c:8427 msgid "Unable to read in dynamic data\n" msgstr "" -#: readelf.c:8550 +#: readelf.c:8477 #, c-format msgid " " msgstr "" -#: readelf.c:8593 readelf.c:8645 readelf.c:8669 readelf.c:8699 readelf.c:8723 +#: readelf.c:8520 readelf.c:8572 readelf.c:8596 readelf.c:8626 readelf.c:8650 msgid "Unable to seek to start of dynamic information\n" msgstr "" -#: readelf.c:8599 readelf.c:8651 +#: readelf.c:8526 readelf.c:8578 msgid "Failed to read in number of buckets\n" msgstr "" -#: readelf.c:8605 +#: readelf.c:8532 msgid "Failed to read in number of chains\n" msgstr "" -#: readelf.c:8707 +#: readelf.c:8634 msgid "Failed to determine last chain length\n" msgstr "" -#: readelf.c:8751 +#: readelf.c:8678 #, c-format msgid "" "\n" "Symbol table for image:\n" msgstr "" -#: readelf.c:8753 readelf.c:8771 +#: readelf.c:8680 readelf.c:8698 #, c-format msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:8755 readelf.c:8773 +#: readelf.c:8682 readelf.c:8700 #, c-format msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:8769 +#: readelf.c:8696 #, c-format msgid "" "\n" "Symbol table of `.gnu.hash' for image:\n" msgstr "" -#: readelf.c:8812 +#: readelf.c:8739 #, c-format msgid "" "\n" "Symbol table '%s' has a sh_entsize of zero!\n" msgstr "" -#: readelf.c:8817 +#: readelf.c:8744 #, c-format msgid "" "\n" "Symbol table '%s' contains %lu entries:\n" msgstr "" -#: readelf.c:8822 +#: readelf.c:8749 #, c-format msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:8824 +#: readelf.c:8751 #, c-format msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: readelf.c:8881 +#: readelf.c:8808 msgid "version data" msgstr "" -#: readelf.c:8923 +#: readelf.c:8850 msgid "version need aux (3)" msgstr "" -#: readelf.c:8950 +#: readelf.c:8877 msgid "bad dynamic symbol\n" msgstr "" -#: readelf.c:9014 +#: readelf.c:8941 #, c-format msgid "" "\n" "Dynamic symbol information is not available for displaying symbols.\n" msgstr "" -#: readelf.c:9026 +#: readelf.c:8953 #, c-format msgid "" "\n" "Histogram for bucket list length (total of %lu buckets):\n" msgstr "" -#: readelf.c:9028 readelf.c:9098 +#: readelf.c:8955 readelf.c:9025 #, c-format msgid " Length Number %% of total Coverage\n" msgstr "" -#: readelf.c:9096 +#: readelf.c:9023 #, c-format msgid "" "\n" "Histogram for `.gnu.hash' bucket list length (total of %lu buckets):\n" msgstr "" -#: readelf.c:9162 +#: readelf.c:9089 #, c-format msgid "" "\n" "Dynamic info segment at offset 0x%lx contains %d entries:\n" msgstr "" -#: readelf.c:9165 +#: readelf.c:9092 #, c-format msgid " Num: Name BoundTo Flags\n" msgstr "" -#: readelf.c:9174 +#: readelf.c:9101 #, c-format msgid "" msgstr "" -#: readelf.c:9256 +#: readelf.c:9183 msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc" msgstr "" -#: readelf.c:9416 +#: readelf.c:9343 #, c-format msgid "" "Missing knowledge of 32-bit reloc types used in DWARF sections of machine " "number %d\n" msgstr "" -#: readelf.c:9720 +#: readelf.c:9647 #, c-format msgid "unable to apply unsupported reloc type %d to section %s\n" msgstr "" -#: readelf.c:9728 +#: readelf.c:9655 #, c-format msgid "skipping invalid relocation offset 0x%lx in section %s\n" msgstr "" -#: readelf.c:9752 +#: readelf.c:9679 #, c-format msgid "skipping unexpected symbol type %s in %ld'th relocation in section %s\n" msgstr "" -#: readelf.c:9798 +#: readelf.c:9725 #, c-format msgid "" "\n" "Assembly dump of section %s\n" msgstr "" -#: readelf.c:9819 +#: readelf.c:9746 #, c-format msgid "" "\n" "Section '%s' has no data to dump.\n" msgstr "" -#: readelf.c:9825 +#: readelf.c:9752 msgid "section contents" msgstr "" -#: readelf.c:9844 +#: readelf.c:9771 #, c-format msgid "" "\n" "String dump of section '%s':\n" msgstr "" -#: readelf.c:9862 +#: readelf.c:9789 #, c-format msgid "" " Note: This section has relocations against it, but these have NOT been " "applied to this dump.\n" msgstr "" -#: readelf.c:9893 +#: readelf.c:9820 #, c-format msgid " No strings found in this section." msgstr "" -#: readelf.c:9915 +#: readelf.c:9842 #, c-format msgid "" "\n" "Hex dump of section '%s':\n" msgstr "" -#: readelf.c:9939 +#: readelf.c:9866 #, c-format msgid "" " NOTE: This section has relocations against it, but these have NOT been " "applied to this dump.\n" msgstr "" -#: readelf.c:10073 +#: readelf.c:10000 #, c-format msgid "%s section data" msgstr "" -#: readelf.c:10138 +#: readelf.c:10065 #, c-format msgid "" "\n" @@ -5411,392 +5375,382 @@ msgstr "" #. which has the NOBITS type - the bits in the file will be random. #. This can happen when a file containing a .eh_frame section is #. stripped with the --only-keep-debug command line option. -#: readelf.c:10147 +#: readelf.c:10074 #, c-format msgid "section '%s' has the NOBITS type - its contents are unreliable.\n" msgstr "" -#: readelf.c:10183 +#: readelf.c:10110 #, c-format msgid "Unrecognized debug section: %s\n" msgstr "" -#: readelf.c:10211 +#: readelf.c:10138 #, c-format msgid "Section '%s' was not dumped because it does not exist!\n" msgstr "" -#: readelf.c:10252 +#: readelf.c:10179 #, c-format msgid "Section %d was not dumped because it does not exist!\n" msgstr "" -#: readelf.c:10430 readelf.c:10444 readelf.c:10463 readelf.c:10781 +#: readelf.c:10357 readelf.c:10371 readelf.c:10390 readelf.c:10708 #, c-format msgid "None\n" msgstr "" -#: readelf.c:10431 +#: readelf.c:10358 #, c-format msgid "Application\n" msgstr "" -#: readelf.c:10432 +#: readelf.c:10359 #, c-format msgid "Realtime\n" msgstr "" -#: readelf.c:10433 +#: readelf.c:10360 #, c-format msgid "Microcontroller\n" msgstr "" -#: readelf.c:10434 +#: readelf.c:10361 #, c-format msgid "Application or Realtime\n" msgstr "" -#: readelf.c:10445 readelf.c:10465 readelf.c:10835 readelf.c:10853 -#: readelf.c:10928 readelf.c:10949 +#: readelf.c:10372 readelf.c:10392 readelf.c:10762 readelf.c:10780 +#: readelf.c:10855 readelf.c:10876 #, c-format msgid "8-byte\n" msgstr "" -#: readelf.c:10446 readelf.c:10931 readelf.c:10952 +#: readelf.c:10373 readelf.c:10858 readelf.c:10879 #, c-format msgid "4-byte\n" msgstr "" -#: readelf.c:10450 readelf.c:10469 +#: readelf.c:10377 readelf.c:10396 #, c-format msgid "8-byte and up to %d-byte extended\n" msgstr "" -#: readelf.c:10464 +#: readelf.c:10391 #, c-format msgid "8-byte, except leaf SP\n" msgstr "" -#: readelf.c:10480 readelf.c:10570 readelf.c:10967 +#: readelf.c:10407 readelf.c:10497 readelf.c:10894 #, c-format msgid "flag = %d, vendor = %s\n" msgstr "" -#: readelf.c:10486 +#: readelf.c:10413 #, c-format msgid "True\n" msgstr "" -#: readelf.c:10615 readelf.c:10719 +#: readelf.c:10542 readelf.c:10646 #, c-format msgid "Hard or soft float\n" msgstr "" -#: readelf.c:10618 +#: readelf.c:10545 #, c-format msgid "Hard float\n" msgstr "" -#: readelf.c:10621 readelf.c:10728 +#: readelf.c:10548 readelf.c:10655 #, c-format msgid "Soft float\n" msgstr "" -#: readelf.c:10624 +#: readelf.c:10551 #, c-format msgid "Single-precision hard float\n" msgstr "" -#: readelf.c:10641 readelf.c:10667 +#: readelf.c:10568 readelf.c:10594 #, c-format msgid "Any\n" msgstr "" -#: readelf.c:10644 +#: readelf.c:10571 #, c-format msgid "Generic\n" msgstr "" -#: readelf.c:10673 +#: readelf.c:10600 #, c-format msgid "Memory\n" msgstr "" -#: readelf.c:10722 +#: readelf.c:10649 #, c-format msgid "Hard float (double precision)\n" msgstr "" -#: readelf.c:10725 +#: readelf.c:10652 #, c-format msgid "Hard float (single precision)\n" msgstr "" -#: readelf.c:10731 +#: readelf.c:10658 #, c-format msgid "Hard float (MIPS32r2 64-bit FPU)\n" msgstr "" -#: readelf.c:10814 +#: readelf.c:10741 #, c-format msgid "Not used\n" msgstr "" -#: readelf.c:10817 +#: readelf.c:10744 #, c-format msgid "2 bytes\n" msgstr "" -#: readelf.c:10820 +#: readelf.c:10747 #, c-format msgid "4 bytes\n" msgstr "" -#: readelf.c:10838 readelf.c:10856 readelf.c:10934 readelf.c:10955 +#: readelf.c:10765 readelf.c:10783 readelf.c:10861 readelf.c:10882 #, c-format msgid "16-byte\n" msgstr "" -#: readelf.c:10871 +#: readelf.c:10798 #, c-format msgid "DSBT addressing not used\n" msgstr "" -#: readelf.c:10874 +#: readelf.c:10801 #, c-format msgid "DSBT addressing used\n" msgstr "" -#: readelf.c:10889 +#: readelf.c:10816 #, c-format msgid "Data addressing position-dependent\n" msgstr "" -#: readelf.c:10892 +#: readelf.c:10819 #, c-format msgid "Data addressing position-independent, GOT near DP\n" msgstr "" -#: readelf.c:10895 +#: readelf.c:10822 #, c-format msgid "Data addressing position-independent, GOT far from DP\n" msgstr "" -#: readelf.c:10910 +#: readelf.c:10837 #, c-format msgid "Code addressing position-dependent\n" msgstr "" -#: readelf.c:10913 +#: readelf.c:10840 #, c-format msgid "Code addressing position-independent\n" msgstr "" -#: readelf.c:11019 +#: readelf.c:10946 msgid "attributes" msgstr "" -#: readelf.c:11040 +#: readelf.c:10967 #, c-format msgid "ERROR: Bad section length (%d > %d)\n" msgstr "" -#: readelf.c:11046 +#: readelf.c:10973 #, c-format msgid "Attribute Section: %s\n" msgstr "" -#: readelf.c:11071 +#: readelf.c:10998 #, c-format msgid "ERROR: Bad subsection length (%d > %d)\n" msgstr "" -#: readelf.c:11083 +#: readelf.c:11010 #, c-format msgid "File Attributes\n" msgstr "" -#: readelf.c:11086 +#: readelf.c:11013 #, c-format msgid "Section Attributes:" msgstr "" -#: readelf.c:11089 +#: readelf.c:11016 #, c-format msgid "Symbol Attributes:" msgstr "" -#: readelf.c:11104 +#: readelf.c:11031 #, c-format msgid "Unknown tag: %d\n" msgstr "" #. ??? Do something sensible, like dump hex. -#: readelf.c:11123 +#: readelf.c:11050 #, c-format msgid " Unknown section contexts\n" msgstr "" -#: readelf.c:11130 +#: readelf.c:11057 #, c-format msgid "Unknown format '%c'\n" msgstr "" -#: readelf.c:11174 readelf.c:11196 +#: readelf.c:11101 readelf.c:11123 msgid "" msgstr "" -#: readelf.c:11291 readelf.c:11813 +#: readelf.c:11218 readelf.c:11740 msgid "liblist" msgstr "" -#: readelf.c:11294 +#: readelf.c:11221 #, c-format msgid "" "\n" "Section '.liblist' contains %lu entries:\n" msgstr "" -#: readelf.c:11296 +#: readelf.c:11223 msgid "" " Library Time Stamp Checksum Version Flags\n" msgstr "" -#: readelf.c:11322 +#: readelf.c:11249 #, c-format msgid "" msgstr "" -#: readelf.c:11327 +#: readelf.c:11254 msgid " NONE" msgstr "" -#: readelf.c:11378 +#: readelf.c:11305 msgid "options" msgstr "" -#: readelf.c:11409 +#: readelf.c:11336 #, c-format msgid "" "\n" "Section '%s' contains %d entries:\n" msgstr "" -#: readelf.c:11570 +#: readelf.c:11497 msgid "conflict list found without a dynamic symbol table\n" msgstr "" -#: readelf.c:11587 readelf.c:11602 +#: readelf.c:11514 readelf.c:11529 msgid "conflict" msgstr "" -#: readelf.c:11612 +#: readelf.c:11539 #, c-format msgid "" "\n" "Section '.conflict' contains %lu entries:\n" msgstr "" -#: readelf.c:11614 +#: readelf.c:11541 msgid " Num: Index Value Name" msgstr "" -#: readelf.c:11626 readelf.c:11706 readelf.c:11774 +#: readelf.c:11553 readelf.c:11633 readelf.c:11701 #, c-format msgid "" msgstr "" -#: readelf.c:11647 +#: readelf.c:11574 msgid "GOT" msgstr "" -#: readelf.c:11648 +#: readelf.c:11575 #, c-format msgid "" "\n" "Primary GOT:\n" msgstr "" -#: readelf.c:11649 +#: readelf.c:11576 #, c-format msgid " Canonical gp value: " msgstr "" -#: readelf.c:11653 readelf.c:11745 +#: readelf.c:11580 readelf.c:11672 #, c-format msgid " Reserved entries:\n" msgstr "" -#: readelf.c:11654 +#: readelf.c:11581 #, c-format msgid " %*s %10s %*s Purpose\n" msgstr "" -#: readelf.c:11655 readelf.c:11672 readelf.c:11688 readelf.c:11747 -#: readelf.c:11756 +#: readelf.c:11582 readelf.c:11599 readelf.c:11615 readelf.c:11674 +#: readelf.c:11683 msgid "Address" msgstr "" -#: readelf.c:11655 readelf.c:11672 readelf.c:11688 +#: readelf.c:11582 readelf.c:11599 readelf.c:11615 msgid "Access" msgstr "" -#: readelf.c:11656 readelf.c:11673 readelf.c:11689 readelf.c:11747 -#: readelf.c:11757 +#: readelf.c:11583 readelf.c:11600 readelf.c:11616 readelf.c:11674 +#: readelf.c:11684 msgid "Initial" msgstr "" -#: readelf.c:11658 +#: readelf.c:11585 #, c-format msgid " Lazy resolver\n" msgstr "" -#: readelf.c:11664 +#: readelf.c:11591 #, c-format msgid " Module pointer (GNU extension)\n" msgstr "" -#: readelf.c:11670 +#: readelf.c:11597 #, c-format msgid " Local entries:\n" msgstr "" -#: readelf.c:11671 -#, c-format -msgid " %*s %10s %*s\n" -msgstr "" - -#: readelf.c:11686 +#: readelf.c:11613 #, c-format msgid " Global entries:\n" msgstr "" -#: readelf.c:11687 -#, c-format -msgid " %*s %10s %*s %*s %-7s %3s %s\n" -msgstr "" - -#: readelf.c:11690 readelf.c:11758 +#: readelf.c:11617 readelf.c:11685 msgid "Sym.Val." msgstr "" -#: readelf.c:11690 readelf.c:11758 +#: readelf.c:11617 readelf.c:11685 msgid "Type" msgstr "" -#: readelf.c:11690 readelf.c:11758 +#: readelf.c:11617 readelf.c:11685 msgid "Ndx" msgstr "" -#: readelf.c:11690 readelf.c:11758 +#: readelf.c:11617 readelf.c:11685 msgid "Name" msgstr "" -#: readelf.c:11743 +#: readelf.c:11670 msgid "PLT GOT" msgstr "" -#: readelf.c:11744 +#: readelf.c:11671 #, c-format msgid "" "\n" @@ -5804,313 +5758,264 @@ msgid "" "\n" msgstr "" -#: readelf.c:11746 +#: readelf.c:11673 #, c-format msgid " %*s %*s Purpose\n" msgstr "" -#: readelf.c:11749 +#: readelf.c:11676 #, c-format msgid " PLT lazy resolver\n" msgstr "" -#: readelf.c:11751 +#: readelf.c:11678 #, c-format msgid " Module pointer\n" msgstr "" -#: readelf.c:11754 +#: readelf.c:11681 #, c-format msgid " Entries:\n" msgstr "" -#: readelf.c:11755 -#, c-format -msgid " %*s %*s %*s %-7s %3s %s\n" -msgstr "" - -#: readelf.c:11821 +#: readelf.c:11748 msgid "liblist string table" msgstr "" -#: readelf.c:11831 +#: readelf.c:11758 #, c-format msgid "" "\n" "Library list section '%s' contains %lu entries:\n" msgstr "" -#: readelf.c:11835 +#: readelf.c:11762 msgid " Library Time Stamp Checksum Version Flags" msgstr "" -#: readelf.c:11884 +#: readelf.c:11811 msgid "NT_AUXV (auxiliary vector)" msgstr "" -#: readelf.c:11886 +#: readelf.c:11813 msgid "NT_PRSTATUS (prstatus structure)" msgstr "" -#: readelf.c:11888 +#: readelf.c:11815 msgid "NT_FPREGSET (floating point registers)" msgstr "" -#: readelf.c:11890 +#: readelf.c:11817 msgid "NT_PRPSINFO (prpsinfo structure)" msgstr "" -#: readelf.c:11892 +#: readelf.c:11819 msgid "NT_TASKSTRUCT (task structure)" msgstr "" -#: readelf.c:11894 +#: readelf.c:11821 msgid "NT_PRXFPREG (user_xfpregs structure)" msgstr "" -#: readelf.c:11896 +#: readelf.c:11823 msgid "NT_PPC_VMX (ppc Altivec registers)" msgstr "" -#: readelf.c:11898 +#: readelf.c:11825 msgid "NT_PPC_VSX (ppc VSX registers)" msgstr "" -#: readelf.c:11900 +#: readelf.c:11827 msgid "NT_X86_XSTATE (x86 XSAVE extended state)" msgstr "" -#: readelf.c:11902 +#: readelf.c:11829 msgid "NT_S390_HIGH_GPRS (s390 upper register halves)" msgstr "" -#: readelf.c:11904 +#: readelf.c:11831 msgid "NT_S390_TIMER (s390 timer register)" msgstr "" -#: readelf.c:11906 +#: readelf.c:11833 msgid "NT_S390_TODCMP (s390 TOD comparator register)" msgstr "" -#: readelf.c:11908 +#: readelf.c:11835 msgid "NT_S390_TODPREG (s390 TOD programmable register)" msgstr "" -#: readelf.c:11910 +#: readelf.c:11837 msgid "NT_S390_CTRS (s390 control registers)" msgstr "" -#: readelf.c:11912 +#: readelf.c:11839 msgid "NT_S390_PREFIX (s390 prefix register)" msgstr "" -#: readelf.c:11914 +#: readelf.c:11841 msgid "NT_PSTATUS (pstatus structure)" msgstr "" -#: readelf.c:11916 +#: readelf.c:11843 msgid "NT_FPREGS (floating point registers)" msgstr "" -#: readelf.c:11918 +#: readelf.c:11845 msgid "NT_PSINFO (psinfo structure)" msgstr "" -#: readelf.c:11920 +#: readelf.c:11847 msgid "NT_LWPSTATUS (lwpstatus_t structure)" msgstr "" -#: readelf.c:11922 +#: readelf.c:11849 msgid "NT_LWPSINFO (lwpsinfo_t structure)" msgstr "" -#: readelf.c:11924 +#: readelf.c:11851 msgid "NT_WIN32PSTATUS (win32_pstatus structure)" msgstr "" -#: readelf.c:11932 +#: readelf.c:11859 msgid "NT_VERSION (version)" msgstr "" -#: readelf.c:11934 +#: readelf.c:11861 msgid "NT_ARCH (architecture)" msgstr "" -#: readelf.c:11939 readelf.c:11962 readelf.c:11984 +#: readelf.c:11866 readelf.c:11889 readelf.c:11911 #, c-format msgid "Unknown note type: (0x%08x)" msgstr "" -#: readelf.c:11951 +#: readelf.c:11878 msgid "NT_GNU_ABI_TAG (ABI version tag)" msgstr "" -#: readelf.c:11953 +#: readelf.c:11880 msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)" msgstr "" -#: readelf.c:11955 +#: readelf.c:11882 msgid "NT_GNU_BUILD_ID (unique build ID bitstring)" msgstr "" -#: readelf.c:11957 +#: readelf.c:11884 msgid "NT_GNU_GOLD_VERSION (gold version)" msgstr "" #. NetBSD core "procinfo" structure. -#: readelf.c:11974 +#: readelf.c:11901 msgid "NetBSD procinfo structure" msgstr "" -#: readelf.c:12001 readelf.c:12015 +#: readelf.c:11928 readelf.c:11942 msgid "PT_GETREGS (reg structure)" msgstr "" -#: readelf.c:12003 readelf.c:12017 +#: readelf.c:11930 readelf.c:11944 msgid "PT_GETFPREGS (fpreg structure)" msgstr "" -#: readelf.c:12023 +#: readelf.c:11950 #, c-format msgid "PT_FIRSTMACH+%d" msgstr "" -#: readelf.c:12080 +#: readelf.c:12007 msgid "notes" msgstr "" -#: readelf.c:12086 +#: readelf.c:12013 #, c-format msgid "" "\n" "Notes at offset 0x%08lx with length 0x%08lx:\n" msgstr "" -#: readelf.c:12088 +#: readelf.c:12015 #, c-format msgid " Owner\t\tData size\tDescription\n" msgstr "" -#: readelf.c:12108 readelf.c:12121 +#: readelf.c:12035 readelf.c:12048 #, c-format msgid "corrupt note found at offset %lx into core notes\n" msgstr "" -#: readelf.c:12110 readelf.c:12123 +#: readelf.c:12037 readelf.c:12050 #, c-format msgid " type: %lx, namesize: %08lx, descsize: %08lx\n" msgstr "" -#: readelf.c:12219 +#: readelf.c:12146 #, c-format msgid "No note segments present in the core file.\n" msgstr "" -#: readelf.c:12306 +#: readelf.c:12233 msgid "" "This instance of readelf has been built without support for a\n" "64 bit data type and so it cannot read 64 bit ELF files.\n" msgstr "" -#: readelf.c:12353 +#: readelf.c:12280 #, c-format msgid "%s: Failed to read file header\n" msgstr "" -#: readelf.c:12366 +#: readelf.c:12293 #, c-format msgid "" "\n" "File: %s\n" msgstr "" -#: readelf.c:12615 -#, c-format -msgid "%s: the archive index is empty\n" -msgstr "" - -#: readelf.c:12623 readelf.c:12647 -#, c-format -msgid "%s: failed to read archive index\n" -msgstr "" - -#: readelf.c:12632 -#, c-format -msgid "" -"%s: the archive index is supposed to have %ld entries, but the size in the " -"header is too small\n" -msgstr "" - -#: readelf.c:12640 -msgid "Out of memory whilst trying to read archive symbol index\n" -msgstr "" - -#: readelf.c:12658 -msgid "Out of memory whilst trying to convert the archive symbol index\n" -msgstr "" - -#: readelf.c:12670 -#, c-format -msgid "%s: the archive has an index but no symbols\n" -msgstr "" - -#: readelf.c:12677 -msgid "Out of memory whilst trying to read archive index symbol table\n" -msgstr "" - -#: readelf.c:12683 -#, c-format -msgid "%s: failed to read archive index symbol table\n" -msgstr "" - -#: readelf.c:12707 -#, c-format -msgid "%s has no archive index\n" -msgstr "" - -#: readelf.c:12943 +#: readelf.c:12465 #, c-format msgid "%s: unable to dump the index as none was found\n" msgstr "" -#: readelf.c:12949 +#: readelf.c:12471 #, c-format msgid "Index of archive %s: (%ld entries, 0x%lx bytes in the symbol table)\n" msgstr "" -#: readelf.c:12967 +#: readelf.c:12489 #, c-format msgid "Binary %s contains:\n" msgstr "" -#: readelf.c:12975 +#: readelf.c:12497 #, c-format msgid "%s: end of the symbol table reached before the end of the index\n" msgstr "" -#: readelf.c:12986 +#: readelf.c:12508 #, c-format msgid "" "%s: symbols remain in the index symbol table, but without corresponding " "entries in the index table\n" msgstr "" -#: readelf.c:12991 +#: readelf.c:12513 #, c-format msgid "%s: failed to seek back to start of object files in the archive\n" msgstr "" -#: readelf.c:13074 readelf.c:13150 +#: readelf.c:12596 readelf.c:12679 #, c-format msgid "Input file '%s' is not readable.\n" msgstr "" -#: readelf.c:13096 +#: readelf.c:12618 #, c-format msgid "%s: failed to seek to archive member.\n" msgstr "" -#: readelf.c:13168 +#: readelf.c:12697 #, c-format msgid "File %s is not an archive so its index cannot be displayed.\n" msgstr "" @@ -6411,11 +6316,6 @@ msgstr "" msgid "can't redirect stdout: `%s': %s" msgstr "" -#: resrc.c:284 -#, c-format -msgid "%s %s: %s" -msgstr "" - #: resrc.c:329 #, c-format msgid "can't execute `%s': %s" @@ -6450,11 +6350,6 @@ msgstr "" msgid "preprocessing failed." msgstr "" -#: resrc.c:631 -#, c-format -msgid "%s:%d: %s\n" -msgstr "" - #: resrc.c:639 #, c-format msgid "%s: unexpected EOF" @@ -6756,7 +6651,7 @@ msgstr "" #: version.c:36 #, c-format -msgid "Copyright 2010 Free Software Foundation, Inc.\n" +msgid "Copyright 2011 Free Software Foundation, Inc.\n" msgstr "" #: version.c:37 diff --git a/binutils/readelf.c b/binutils/readelf.c index 0ed5c7c1ed4..98a39560077 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1,6 +1,6 @@ /* readelf.c -- display contents of an ELF format file Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010 + 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Originally developed by Eric Youngdale @@ -61,6 +61,7 @@ #include "bfd.h" #include "bucomm.h" +#include "elfcomm.h" #include "dwarf.h" #include "elf/common.h" @@ -146,8 +147,6 @@ #include "elf/xstormy16.h" #include "elf/xtensa.h" -#include "aout/ar.h" - #include "getopt.h" #include "libiberty.h" #include "safe-ctype.h" @@ -260,8 +259,6 @@ typedef enum print_mode } print_mode; -static void (* byte_put) (unsigned char *, bfd_vma, int); - #define UNKNOWN -1 #define SECTION_NAME(X) \ @@ -272,9 +269,6 @@ static void (* byte_put) (unsigned char *, bfd_vma, int); #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */ -#define BYTE_GET(field) byte_get (field, sizeof (field)) -#define BYTE_GET_SIGNED(field) byte_get_signed (field, sizeof (field)) - #define GET_ELF_SYMBOLS(file, section) \ (is_32bit_elf ? get_32bit_elf_symbols (file, section) \ : get_64bit_elf_symbols (file, section)) @@ -284,11 +278,6 @@ static void (* byte_put) (unsigned char *, bfd_vma, int); already been called and verified that the string exists. */ #define GET_DYNAMIC_NAME(offset) (dynamic_strings + offset) -/* This is just a bit of syntatic sugar. */ -#define streq(a,b) (strcmp ((a), (b)) == 0) -#define strneq(a,b,n) (strncmp ((a), (b), (n)) == 0) -#define const_strneq(a,b) (strncmp ((a), (b), sizeof (b) - 1) == 0) - #define REMOVE_ARCH_BITS(ADDR) do { \ if (elf_header.e_machine == EM_ARM) \ (ADDR) &= ~1; \ @@ -340,36 +329,6 @@ get_data (void * var, FILE * file, long offset, size_t size, size_t nmemb, return mvar; } -static void -byte_put_little_endian (unsigned char * field, bfd_vma value, int size) -{ - switch (size) - { - case 8: - field[7] = (((value >> 24) >> 24) >> 8) & 0xff; - field[6] = ((value >> 24) >> 24) & 0xff; - field[5] = ((value >> 24) >> 16) & 0xff; - field[4] = ((value >> 24) >> 8) & 0xff; - /* Fall through. */ - case 4: - field[3] = (value >> 24) & 0xff; - /* Fall through. */ - case 3: - field[2] = (value >> 16) & 0xff; - /* Fall through. */ - case 2: - field[1] = (value >> 8) & 0xff; - /* Fall through. */ - case 1: - field[0] = value & 0xff; - break; - - default: - error (_("Unhandled data length: %d\n"), size); - abort (); - } -} - /* Print a VMA value. */ static int @@ -421,15 +380,16 @@ print_vma (bfd_vma vma, print_mode mode) Returns the number of emitted characters. */ static unsigned int -print_symbol (int width, const char * symbol) +print_symbol (int width, const char *symbol) { - const char * c; + const char *c; bfd_boolean extra_padding = FALSE; unsigned int num_printed = 0; if (do_wide) { - /* Set the width to a very large value. This simplifies the code below. */ + /* Set the width to a very large value. This simplifies the + code below. */ width = INT_MAX; } else if (width < 0) @@ -448,7 +408,7 @@ print_symbol (int width, const char * symbol) /* Look for non-printing symbols inside the symbol's name. This test is triggered in particular by the names generated by the assembler for local labels. */ - while (ISPRINT (* c)) + while (ISPRINT (*c)) c++; len = c - symbol; @@ -464,12 +424,12 @@ print_symbol (int width, const char * symbol) num_printed += len; } - if (* c == 0 || width == 0) + if (*c == 0 || width == 0) break; /* Now display the non-printing character, if there is room left in which to dipslay it. */ - if (*c < 32) + if ((unsigned char) *c < 32) { if (width < 2) break; @@ -484,7 +444,7 @@ print_symbol (int width, const char * symbol) if (width < 6) break; - printf ("<0x%.2x>", *c); + printf ("<0x%.2x>", (unsigned char) *c); width -= 6; num_printed += 6; @@ -503,41 +463,6 @@ print_symbol (int width, const char * symbol) return num_printed; } -static void -byte_put_big_endian (unsigned char * field, bfd_vma value, int size) -{ - switch (size) - { - case 8: - field[7] = value & 0xff; - field[6] = (value >> 8) & 0xff; - field[5] = (value >> 16) & 0xff; - field[4] = (value >> 24) & 0xff; - value >>= 16; - value >>= 16; - /* Fall through. */ - case 4: - field[3] = value & 0xff; - value >>= 8; - /* Fall through. */ - case 3: - field[2] = value & 0xff; - value >>= 8; - /* Fall through. */ - case 2: - field[1] = value & 0xff; - value >>= 8; - /* Fall through. */ - case 1: - field[0] = value & 0xff; - break; - - default: - error (_("Unhandled data length: %d\n"), size); - abort (); - } -} - /* Return a pointer to section NAME, or NULL if no such section exists. */ static Elf_Internal_Shdr * @@ -3201,7 +3126,7 @@ usage (FILE * stream) -w[lLiaprmfFsoRt] or\n\ --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n\ =frames-interp,=str,=loc,=Ranges,=pubtypes,\n\ - =trace_info,=trace_abbrev,=trace_aranges]\n\ + =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n\ Display the contents of DWARF2 debug sections\n")); #ifdef SUPPORT_DISASSEMBLY fprintf (stream, _("\ @@ -3548,7 +3473,7 @@ process_file_header (void) if (section_headers != NULL && elf_header.e_phnum == PN_XNUM && section_headers[0].sh_info != 0) - printf (_(" (%ld)"), (long) section_headers[0].sh_info); + printf (" (%ld)", (long) section_headers[0].sh_info); putc ('\n', stdout); printf (_(" Size of section headers: %ld (bytes)\n"), (long) elf_header.e_shentsize); @@ -4624,6 +4549,8 @@ process_section_headers (FILE * file) request_dump_bynumber (i, DEBUG_DUMP); else if (do_debug_frames && streq (name, ".eh_frame")) request_dump_bynumber (i, DEBUG_DUMP); + else if (do_gdb_index && streq (name, ".gdb_index")) + request_dump_bynumber (i, DEBUG_DUMP); /* Trace sections for Itanium VMS. */ else if ((do_debugging || do_trace_info || do_trace_abbrevs || do_trace_aranges) @@ -6426,7 +6353,7 @@ decode_arm_unwind (struct arm_unw_aux_info *aux, printf (_("[Truncated opcode]\n")); \ return; \ } \ - printf (_("0x%02x "), OP) + printf ("0x%02x ", OP) if (remaining == 0) { @@ -6512,17 +6439,17 @@ decode_arm_unwind (struct arm_unw_aux_info *aux, op = word >> 24; word <<= 8; - printf (_(" 0x%02x "), op); + printf (" 0x%02x ", op); if ((op & 0xc0) == 0x00) { int offset = ((op & 0x3f) << 2) + 4; - printf (_(" vsp = vsp + %d"), offset); + printf (" vsp = vsp + %d", offset); } else if ((op & 0xc0) == 0x40) { int offset = ((op & 0x3f) << 2) + 4; - printf (_(" vsp = vsp - %d"), offset); + printf (" vsp = vsp - %d", offset); } else if ((op & 0xf0) == 0x80) { @@ -6553,7 +6480,7 @@ decode_arm_unwind (struct arm_unw_aux_info *aux, if (op == 0x9d || op == 0x9f) printf (_(" [Reserved]")); else - printf (_(" vsp = r%d"), op & 0x0f); + printf (" vsp = r%d", op & 0x0f); } else if ((op & 0xf0) == 0xa0) { @@ -6617,7 +6544,7 @@ decode_arm_unwind (struct arm_unw_aux_info *aux, offset = read_uleb128 (buf, &len); assert (len == i + 1); offset = offset * 4 + 0x204; - printf (_("vsp = vsp + %ld"), offset); + printf ("vsp = vsp + %ld", offset); } else { @@ -11668,7 +11595,7 @@ process_mips_specific (FILE * file) if (ent < local_end) { printf (_(" Local entries:\n")); - printf (_(" %*s %10s %*s\n"), + printf (" %*s %10s %*s\n", addr_size * 2, _("Address"), _("Access"), addr_size * 2, _("Initial")); while (ent < local_end) @@ -11684,7 +11611,7 @@ process_mips_specific (FILE * file) int sym_width; printf (_(" Global entries:\n")); - printf (_(" %*s %10s %*s %*s %-7s %3s %s\n"), + printf (" %*s %10s %*s %*s %-7s %3s %s\n", addr_size * 2, _("Address"), _("Access"), addr_size * 2, _("Initial"), addr_size * 2, _("Sym.Val."), _("Type"), _("Ndx"), _("Name")); @@ -11752,7 +11679,7 @@ process_mips_specific (FILE * file) printf ("\n"); printf (_(" Entries:\n")); - printf (_(" %*s %*s %*s %-7s %3s %s\n"), + printf (" %*s %*s %*s %-7s %3s %s\n", addr_size * 2, _("Address"), addr_size * 2, _("Initial"), addr_size * 2, _("Sym.Val."), _("Type"), _("Ndx"), _("Name")); @@ -12462,6 +12389,12 @@ process_object (char * file_name, FILE * file) dynamic_syminfo = NULL; } + if (dynamic_section) + { + free (dynamic_section); + dynamic_section = NULL; + } + if (section_headers_groups) { free (section_headers_groups); @@ -12491,417 +12424,6 @@ process_object (char * file_name, FILE * file) return 0; } -/* Return the path name for a proxy entry in a thin archive, adjusted relative - to the path name of the thin archive itself if necessary. Always returns - a pointer to malloc'ed memory. */ - -static char * -adjust_relative_path (char * file_name, char * name, int name_len) -{ - char * member_file_name; - const char * base_name = lbasename (file_name); - - /* This is a proxy entry for a thin archive member. - If the extended name table contains an absolute path - name, or if the archive is in the current directory, - use the path name as given. Otherwise, we need to - find the member relative to the directory where the - archive is located. */ - if (IS_ABSOLUTE_PATH (name) || base_name == file_name) - { - member_file_name = (char *) malloc (name_len + 1); - if (member_file_name == NULL) - { - error (_("Out of memory\n")); - return NULL; - } - memcpy (member_file_name, name, name_len); - member_file_name[name_len] = '\0'; - } - else - { - /* Concatenate the path components of the archive file name - to the relative path name from the extended name table. */ - size_t prefix_len = base_name - file_name; - member_file_name = (char *) malloc (prefix_len + name_len + 1); - if (member_file_name == NULL) - { - error (_("Out of memory\n")); - return NULL; - } - memcpy (member_file_name, file_name, prefix_len); - memcpy (member_file_name + prefix_len, name, name_len); - member_file_name[prefix_len + name_len] = '\0'; - } - return member_file_name; -} - -/* Structure to hold information about an archive file. */ - -struct archive_info -{ - char * file_name; /* Archive file name. */ - FILE * file; /* Open file descriptor. */ - unsigned long index_num; /* Number of symbols in table. */ - unsigned long * index_array; /* The array of member offsets. */ - char * sym_table; /* The symbol table. */ - unsigned long sym_size; /* Size of the symbol table. */ - char * longnames; /* The long file names table. */ - unsigned long longnames_size; /* Size of the long file names table. */ - unsigned long nested_member_origin; /* Origin in the nested archive of the current member. */ - unsigned long next_arhdr_offset; /* Offset of the next archive header. */ - bfd_boolean is_thin_archive; /* TRUE if this is a thin archive. */ - struct ar_hdr arhdr; /* Current archive header. */ -}; - -/* Read the symbol table and long-name table from an archive. */ - -static int -setup_archive (struct archive_info * arch, char * file_name, FILE * file, - bfd_boolean is_thin_archive, bfd_boolean read_symbols) -{ - size_t got; - unsigned long size; - - arch->file_name = strdup (file_name); - arch->file = file; - arch->index_num = 0; - arch->index_array = NULL; - arch->sym_table = NULL; - arch->sym_size = 0; - arch->longnames = NULL; - arch->longnames_size = 0; - arch->nested_member_origin = 0; - arch->is_thin_archive = is_thin_archive; - arch->next_arhdr_offset = SARMAG; - - /* Read the first archive member header. */ - if (fseek (file, SARMAG, SEEK_SET) != 0) - { - error (_("%s: failed to seek to first archive header\n"), file_name); - return 1; - } - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file); - if (got != sizeof arch->arhdr) - { - if (got == 0) - return 0; - - error (_("%s: failed to read archive header\n"), file_name); - return 1; - } - - /* See if this is the archive symbol table. */ - if (const_strneq (arch->arhdr.ar_name, "/ ") - || const_strneq (arch->arhdr.ar_name, "/SYM64/ ")) - { - size = strtoul (arch->arhdr.ar_size, NULL, 10); - size = size + (size & 1); - - arch->next_arhdr_offset += sizeof arch->arhdr + size; - - if (read_symbols) - { - unsigned long i; - /* A buffer used to hold numbers read in from an archive index. - These are always 4 bytes long and stored in big-endian format. */ -#define SIZEOF_AR_INDEX_NUMBERS 4 - unsigned char integer_buffer[SIZEOF_AR_INDEX_NUMBERS]; - unsigned char * index_buffer; - - /* Check the size of the archive index. */ - if (size < SIZEOF_AR_INDEX_NUMBERS) - { - error (_("%s: the archive index is empty\n"), file_name); - return 1; - } - - /* Read the numer of entries in the archive index. */ - got = fread (integer_buffer, 1, sizeof integer_buffer, file); - if (got != sizeof (integer_buffer)) - { - error (_("%s: failed to read archive index\n"), file_name); - return 1; - } - arch->index_num = byte_get_big_endian (integer_buffer, sizeof integer_buffer); - size -= SIZEOF_AR_INDEX_NUMBERS; - - /* Read in the archive index. */ - if (size < arch->index_num * SIZEOF_AR_INDEX_NUMBERS) - { - error (_("%s: the archive index is supposed to have %ld entries, but the size in the header is too small\n"), - file_name, arch->index_num); - return 1; - } - index_buffer = (unsigned char *) - malloc (arch->index_num * SIZEOF_AR_INDEX_NUMBERS); - if (index_buffer == NULL) - { - error (_("Out of memory whilst trying to read archive symbol index\n")); - return 1; - } - got = fread (index_buffer, SIZEOF_AR_INDEX_NUMBERS, arch->index_num, file); - if (got != arch->index_num) - { - free (index_buffer); - error (_("%s: failed to read archive index\n"), file_name); - return 1; - } - size -= arch->index_num * SIZEOF_AR_INDEX_NUMBERS; - - /* Convert the index numbers into the host's numeric format. */ - arch->index_array = (long unsigned int *) - malloc (arch->index_num * sizeof (* arch->index_array)); - if (arch->index_array == NULL) - { - free (index_buffer); - error (_("Out of memory whilst trying to convert the archive symbol index\n")); - return 1; - } - - for (i = 0; i < arch->index_num; i++) - arch->index_array[i] = byte_get_big_endian ((unsigned char *) (index_buffer + (i * SIZEOF_AR_INDEX_NUMBERS)), - SIZEOF_AR_INDEX_NUMBERS); - free (index_buffer); - - /* The remaining space in the header is taken up by the symbol table. */ - if (size < 1) - { - error (_("%s: the archive has an index but no symbols\n"), file_name); - return 1; - } - arch->sym_table = (char *) malloc (size); - arch->sym_size = size; - if (arch->sym_table == NULL) - { - error (_("Out of memory whilst trying to read archive index symbol table\n")); - return 1; - } - got = fread (arch->sym_table, 1, size, file); - if (got != size) - { - error (_("%s: failed to read archive index symbol table\n"), file_name); - return 1; - } - } - else - { - if (fseek (file, size, SEEK_CUR) != 0) - { - error (_("%s: failed to skip archive symbol table\n"), file_name); - return 1; - } - } - - /* Read the next archive header. */ - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, file); - if (got != sizeof arch->arhdr) - { - if (got == 0) - return 0; - error (_("%s: failed to read archive header following archive index\n"), file_name); - return 1; - } - } - else if (read_symbols) - printf (_("%s has no archive index\n"), file_name); - - if (const_strneq (arch->arhdr.ar_name, "// ")) - { - /* This is the archive string table holding long member names. */ - arch->longnames_size = strtoul (arch->arhdr.ar_size, NULL, 10); - arch->next_arhdr_offset += sizeof arch->arhdr + arch->longnames_size; - - arch->longnames = (char *) malloc (arch->longnames_size); - if (arch->longnames == NULL) - { - error (_("Out of memory reading long symbol names in archive\n")); - return 1; - } - - if (fread (arch->longnames, arch->longnames_size, 1, file) != 1) - { - free (arch->longnames); - arch->longnames = NULL; - error (_("%s: failed to read long symbol name string table\n"), file_name); - return 1; - } - - if ((arch->longnames_size & 1) != 0) - getc (file); - } - - return 0; -} - -/* Release the memory used for the archive information. */ - -static void -release_archive (struct archive_info * arch) -{ - if (arch->file_name != NULL) - free (arch->file_name); - if (arch->index_array != NULL) - free (arch->index_array); - if (arch->sym_table != NULL) - free (arch->sym_table); - if (arch->longnames != NULL) - free (arch->longnames); -} - -/* Open and setup a nested archive, if not already open. */ - -static int -setup_nested_archive (struct archive_info * nested_arch, char * member_file_name) -{ - FILE * member_file; - - /* Have we already setup this archive? */ - if (nested_arch->file_name != NULL - && streq (nested_arch->file_name, member_file_name)) - return 0; - - /* Close previous file and discard cached information. */ - if (nested_arch->file != NULL) - fclose (nested_arch->file); - release_archive (nested_arch); - - member_file = fopen (member_file_name, "rb"); - if (member_file == NULL) - return 1; - return setup_archive (nested_arch, member_file_name, member_file, FALSE, FALSE); -} - -static char * -get_archive_member_name_at (struct archive_info * arch, - unsigned long offset, - struct archive_info * nested_arch); - -/* Get the name of an archive member from the current archive header. - For simple names, this will modify the ar_name field of the current - archive header. For long names, it will return a pointer to the - longnames table. For nested archives, it will open the nested archive - and get the name recursively. NESTED_ARCH is a single-entry cache so - we don't keep rereading the same information from a nested archive. */ - -static char * -get_archive_member_name (struct archive_info * arch, - struct archive_info * nested_arch) -{ - unsigned long j, k; - - if (arch->arhdr.ar_name[0] == '/') - { - /* We have a long name. */ - char * endp; - char * member_file_name; - char * member_name; - - arch->nested_member_origin = 0; - k = j = strtoul (arch->arhdr.ar_name + 1, &endp, 10); - if (arch->is_thin_archive && endp != NULL && * endp == ':') - arch->nested_member_origin = strtoul (endp + 1, NULL, 10); - - while ((j < arch->longnames_size) - && (arch->longnames[j] != '\n') - && (arch->longnames[j] != '\0')) - j++; - if (arch->longnames[j-1] == '/') - j--; - arch->longnames[j] = '\0'; - - if (!arch->is_thin_archive || arch->nested_member_origin == 0) - return arch->longnames + k; - - /* This is a proxy for a member of a nested archive. - Find the name of the member in that archive. */ - member_file_name = adjust_relative_path (arch->file_name, arch->longnames + k, j - k); - if (member_file_name != NULL - && setup_nested_archive (nested_arch, member_file_name) == 0 - && (member_name = get_archive_member_name_at (nested_arch, arch->nested_member_origin, NULL)) != NULL) - { - free (member_file_name); - return member_name; - } - free (member_file_name); - - /* Last resort: just return the name of the nested archive. */ - return arch->longnames + k; - } - - /* We have a normal (short) name. */ - j = 0; - while ((arch->arhdr.ar_name[j] != '/') - && (j < sizeof (arch->arhdr.ar_name) - 1)) - j++; - arch->arhdr.ar_name[j] = '\0'; - return arch->arhdr.ar_name; -} - -/* Get the name of an archive member at a given OFFSET within an archive ARCH. */ - -static char * -get_archive_member_name_at (struct archive_info * arch, - unsigned long offset, - struct archive_info * nested_arch) -{ - size_t got; - - if (fseek (arch->file, offset, SEEK_SET) != 0) - { - error (_("%s: failed to seek to next file name\n"), arch->file_name); - return NULL; - } - got = fread (&arch->arhdr, 1, sizeof arch->arhdr, arch->file); - if (got != sizeof arch->arhdr) - { - error (_("%s: failed to read archive header\n"), arch->file_name); - return NULL; - } - if (memcmp (arch->arhdr.ar_fmag, ARFMAG, 2) != 0) - { - error (_("%s: did not find a valid archive header\n"), arch->file_name); - return NULL; - } - - return get_archive_member_name (arch, nested_arch); -} - -/* Construct a string showing the name of the archive member, qualified - with the name of the containing archive file. For thin archives, we - use square brackets to denote the indirection. For nested archives, - we show the qualified name of the external member inside the square - brackets (e.g., "thin.a[normal.a(foo.o)]"). */ - -static char * -make_qualified_name (struct archive_info * arch, - struct archive_info * nested_arch, - char * member_name) -{ - size_t len; - char * name; - - len = strlen (arch->file_name) + strlen (member_name) + 3; - if (arch->is_thin_archive && arch->nested_member_origin != 0) - len += strlen (nested_arch->file_name) + 2; - - name = (char *) malloc (len); - if (name == NULL) - { - error (_("Out of memory\n")); - return NULL; - } - - if (arch->is_thin_archive && arch->nested_member_origin != 0) - snprintf (name, len, "%s[%s(%s)]", arch->file_name, nested_arch->file_name, member_name); - else if (arch->is_thin_archive) - snprintf (name, len, "%s[%s]", arch->file_name, member_name); - else - snprintf (name, len, "%s(%s)", arch->file_name, member_name); - - return name; -} - /* Process an ELF archive. On entry the file is positioned just after the ARMAG string. */ @@ -13108,6 +12630,13 @@ process_archive (char * file_name, FILE * file, bfd_boolean is_thin_archive) ret |= process_object (qualified_name, file); } + if (dump_sects != NULL) + { + free (dump_sects); + dump_sects = NULL; + num_dump_sects = 0; + } + free (qualified_name); } diff --git a/binutils/resrc.c b/binutils/resrc.c index a72a23f6317..0a14ad23fba 100644 --- a/binutils/resrc.c +++ b/binutils/resrc.c @@ -281,7 +281,7 @@ run_cmd (char *cmd, const char *redir) if (pid == -1) { - fatal (_("%s %s: %s"), errmsg_fmt, errmsg_arg, strerror (errno)); + fatal ("%s %s: %s", errmsg_fmt, errmsg_arg, strerror (errno)); return 1; } @@ -628,7 +628,7 @@ yyerror (const char *msg) void rcparse_warning (const char *msg) { - fprintf (stderr, _("%s:%d: %s\n"), rc_filename, rc_lineno, msg); + fprintf (stderr, "%s:%d: %s\n", rc_filename, rc_lineno, msg); } /* Die if we get an unexpected end of file. */ diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index dedc5f226d4..a2960c663fa 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2010-11-08 Alan Modra + * binutils-all/objdump.W: Adjust expected result for debug section + rename. + +2010-11-08 Alan Modra + + * binutils-all/objdump.W: Adjust expected result for debug section + rename. + 2010-11-02 H.J. Lu * binutils-all/libdw2.out: Also accept MIPS_DWARF. diff --git a/binutils/testsuite/binutils-all/objdump.W b/binutils/testsuite/binutils-all/objdump.W index 8de584a0a83..0197647f95b 100644 --- a/binutils/testsuite/binutils-all/objdump.W +++ b/binutils/testsuite/binutils-all/objdump.W @@ -73,7 +73,7 @@ Raw dump of debug contents of section .debug_line: Extended opcode 1: End of Sequence -Contents of the .zdebug_abbrev section: +Contents of the .debug_abbrev section: Number TAG 1 DW_TAG_compile_unit \[has children\] diff --git a/binutils/version.c b/binutils/version.c index fc1ae08bfe4..bce8f0550bb 100644 --- a/binutils/version.c +++ b/binutils/version.c @@ -33,7 +33,7 @@ print_version (const char *name) /* This output is intended to follow the GNU standards document. */ /* xgettext:c-format */ printf ("GNU %s %s\n", name, BFD_VERSION_STRING); - printf (_("Copyright 2010 Free Software Foundation, Inc.\n")); + printf (_("Copyright 2011 Free Software Foundation, Inc.\n")); printf (_("\ This program is free software; you may redistribute it under the terms of\n\ the GNU General Public License version 3 or (at your option) any later version.\n\ diff --git a/gas/ChangeLog b/gas/ChangeLog index 3feb0ea316b..78dc2d74eb2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,57 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-01 H.J. Lu + * gas.c (parse_args): Update copyright to 2011. + + 2010-12-16 Maciej W. Rozycki + * symbols.c (symbol_clone_if_forward_ref): Call tc_new_dot_label + for new fake labels created off the dot special symbol. + * config/tc-mips.h (tc_new_dot_label): New macro. + (mips_record_label): New prototype. + * config/tc-mips.c (my_getExpression): Remove MIPS16 fake label + annotation. + (s_cons, s_float_cons, s_gpword, s_gpdword): Only clear labels + recorded once data expressions have been evaluated. + (mips_define_label): Move code to record labels over to... + (mips_record_label): ... this new function. + * doc/internals.texi: Document tc_new_dot_label. + + 2010-12-04 Maciej W. Rozycki + PR gas/12282 + * expr.c (expr_build_dot): Make a clone of the symbol to return if + needed. + + 2010-12-02 Richard Sandiford + * symbols.c (S_FORCE_RELOC): Return true for indirect functions + even if !strict. + * expr.c (operand): Don't convert absolute symbols to constants + if S_FORCE_RELOC is true. + (expr): Only reduce subtractions between different symbols if + S_FORCE_RELOC is false for both of them. + * write.c (fixup_segment): Don't remove symbols if S_FORCE_RELOC + is true for them, regardless of their segment. + + 2010-12-01 Maciej W. Rozycki + * symbols.h (dot_symbol): New declaration. + (dot_symbol_init): New prototype. + * symbols.c (dot_symbol): New variable. + (symbol_clone): Assert it's not dot_symbol being cloned. + (dot_symbol_init): New function. + (symbol_clone_if_forward_ref): Create a new temporary symbol + when trying to clone dot_symbol. + * expr.c (current_location): Refer to dot_symbol instead of + making a new temporary symbol. + * read.c (read_a_source_file): Update dot_symbol as we go. + * as.c (main): Call dot_symbol_init. + + 2010-12-01 Maciej W. Rozycki + * symbols.c (symbol_clone_if_forward_ref): Don't limit cloning + to expr_section symbols; clone all equated symbols. Clear + sy_resolving of the cloned copy. + * expr.c (operand): Only clone equated symbols on a final + (i.e. non-equated) reference. + 2010-12-21 Alan Modra * po/ja.po: New translation. diff --git a/gas/as.c b/gas/as.c index d9aa6e276f2..8fe13e97149 100644 --- a/gas/as.c +++ b/gas/as.c @@ -617,7 +617,7 @@ parse_args (int * pargc, char *** pargv) case OPTION_VERSION: /* This output is intended to follow the GNU standards document. */ printf (_("GNU assembler %s\n"), BFD_VERSION_STRING); - printf (_("Copyright 2010 Free Software Foundation, Inc.\n")); + printf (_("Copyright 2011 Free Software Foundation, Inc.\n")); printf (_("\ This program is free software; you may redistribute it under the terms of\n\ the GNU General Public License version 3 or later.\n\ @@ -1181,6 +1181,8 @@ main (int argc, char ** argv) output_file_create (out_file_name); gas_assert (stdoutput != 0); + dot_symbol_init (); + #ifdef tc_init_after_args tc_init_after_args (); #endif diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 59d68807f1d..361370765b0 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -11124,26 +11124,12 @@ static void my_getExpression (expressionS *ep, char *str) { char *save_in; - valueT val; save_in = input_line_pointer; input_line_pointer = str; expression (ep); expr_end = input_line_pointer; input_line_pointer = save_in; - - /* If we are in mips16 mode, and this is an expression based on `.', - then we bump the value of the symbol by 1 since that is how other - text symbols are handled. We don't bother to handle complex - expressions, just `.' plus or minus a constant. */ - if (mips_opts.mips16 - && ep->X_op == O_symbol - && strcmp (S_GET_NAME (ep->X_add_symbol), FAKE_LABEL_NAME) == 0 - && S_GET_SEGMENT (ep->X_add_symbol) == now_seg - && symbol_get_frag (ep->X_add_symbol) == frag_now - && symbol_constant_p (ep->X_add_symbol) - && (val = S_GET_VALUE (ep->X_add_symbol)) == frag_now_fix ()) - S_SET_VALUE (ep->X_add_symbol, val + 1); } char * @@ -12715,8 +12701,8 @@ s_cons (int log_size) mips_emit_delays (); if (log_size > 0 && auto_align) mips_align (log_size, 0, label); - mips_clear_insn_labels (); cons (1 << log_size); + mips_clear_insn_labels (); } static void @@ -12738,9 +12724,8 @@ s_float_cons (int type) mips_align (2, 0, label); } - mips_clear_insn_labels (); - float_cons (type); + mips_clear_insn_labels (); } /* Handle .globl. We need to override it because on Irix 5 you are @@ -13505,9 +13490,9 @@ s_gpword (int ignore ATTRIBUTE_UNUSED) mips_emit_delays (); if (auto_align) mips_align (2, 0, label); - mips_clear_insn_labels (); expression (&ex); + mips_clear_insn_labels (); if (ex.X_op != O_symbol || ex.X_add_number != 0) { @@ -13545,9 +13530,9 @@ s_gpdword (int ignore ATTRIBUTE_UNUSED) mips_emit_delays (); if (auto_align) mips_align (3, 0, label); - mips_clear_insn_labels (); expression (&ex); + mips_clear_insn_labels (); if (ex.X_op != O_symbol || ex.X_add_number != 0) { @@ -14696,12 +14681,14 @@ mips_frob_file_after_relocs (void) #endif -/* This function is called whenever a label is defined. It is used - when handling branch delays; if a branch has a label, we assume we - can not move it. */ +/* This function is called whenever a label is defined, including fake + labels instantiated off the dot special symbol. It is used when + handling branch delays; if a branch has a label, we assume we cannot + move it. This also bumps the value of the symbol by 1 in compressed + code. */ void -mips_define_label (symbolS *sym) +mips_record_label (symbolS *sym) { segment_info_type *si = seg_info (now_seg); struct insn_label_list *l; @@ -14717,7 +14704,15 @@ mips_define_label (symbolS *sym) l->label = sym; l->next = si->label_list; si->label_list = l; +} +/* This function is called as tc_frob_label() whenever a label is defined + and adds a DWARF-2 record we only want for true labels. */ + +void +mips_define_label (symbolS *sym) +{ + mips_record_label (sym); #ifdef OBJ_ELF dwarf2_emit_label (sym); #endif diff --git a/gas/config/tc-mips.h b/gas/config/tc-mips.h index 8b174805d2b..cf2eab15ffb 100644 --- a/gas/config/tc-mips.h +++ b/gas/config/tc-mips.h @@ -109,6 +109,9 @@ extern int mips_parse_long_option (const char *); #define tc_frob_label(sym) mips_define_label (sym) extern void mips_define_label (symbolS *); +#define tc_new_dot_label(sym) mips_record_label (sym) +extern void mips_record_label (symbolS *); + #define tc_frob_file_before_adjust() mips_frob_file_before_adjust () extern void mips_frob_file_before_adjust (void); diff --git a/gas/doc/internals.texi b/gas/doc/internals.texi index f8495a91962..58b56868cee 100644 --- a/gas/doc/internals.texi +++ b/gas/doc/internals.texi @@ -1395,6 +1395,11 @@ that @code{md_pcrel_from} does not take a section argument. @cindex tc_frob_label If you define this macro, GAS will call it each time a label is defined. +@item tc_new_dot_label +@cindex tc_new_dot_label +If you define this macro, GAS will call it each time a fake label is created +off the special dot symbol. + @item md_section_align @cindex md_section_align GAS will call this function for each section at the end of the assembly, to diff --git a/gas/expr.c b/gas/expr.c index f050b17ccb2..52eb472441c 100644 --- a/gas/expr.c +++ b/gas/expr.c @@ -172,7 +172,7 @@ expr_build_dot (void) expressionS e; current_location (&e); - return make_expr_symbol (&e); + return symbol_clone_if_forward_ref (make_expr_symbol (&e)); } /* Build any floating-point literal here. @@ -705,7 +705,7 @@ current_location (expressionS *expressionp) else { expressionp->X_op = O_symbol; - expressionp->X_add_symbol = symbol_temp_new_now (); + expressionp->X_add_symbol = &dot_symbol; expressionp->X_add_number = 0; } } @@ -1325,7 +1325,9 @@ operand (expressionS *expressionP, enum expr_mode mode) /* If we have an absolute symbol or a reg, then we know its value now. */ segment = S_GET_SEGMENT (symbolP); - if (mode != expr_defer && segment == absolute_section) + if (mode != expr_defer + && segment == absolute_section + && !S_FORCE_RELOC (symbolP, 0)) { expressionP->X_op = O_constant; expressionP->X_add_number = S_GET_VALUE (symbolP); @@ -1373,8 +1375,13 @@ operand (expressionS *expressionP, enum expr_mode mode) if (expressionP->X_add_symbol) symbol_mark_used (expressionP->X_add_symbol); - expressionP->X_add_symbol = symbol_clone_if_forward_ref (expressionP->X_add_symbol); - expressionP->X_op_symbol = symbol_clone_if_forward_ref (expressionP->X_op_symbol); + if (mode != expr_defer) + { + expressionP->X_add_symbol + = symbol_clone_if_forward_ref (expressionP->X_add_symbol); + expressionP->X_op_symbol + = symbol_clone_if_forward_ref (expressionP->X_op_symbol); + } switch (expressionP->X_op) { @@ -1835,7 +1842,9 @@ expr (int rankarg, /* Larger # is higher rank. */ #ifdef md_allow_local_subtract && md_allow_local_subtract (resultP, & right, rightseg) #endif - && (SEG_NORMAL (rightseg) + && ((SEG_NORMAL (rightseg) + && !S_FORCE_RELOC (resultP->X_add_symbol, 0) + && !S_FORCE_RELOC (right.X_add_symbol, 0)) || right.X_add_symbol == resultP->X_add_symbol) && frag_offset_fixed_p (symbol_get_frag (resultP->X_add_symbol), symbol_get_frag (right.X_add_symbol), @@ -1949,7 +1958,10 @@ expr (int rankarg, /* Larger # is higher rank. */ else if (op_left == O_subtract) { resultP->X_add_number -= right.X_add_number; - if (retval == rightseg && SEG_NORMAL (retval)) + if (retval == rightseg + && SEG_NORMAL (retval) + && !S_FORCE_RELOC (resultP->X_add_symbol, 0) + && !S_FORCE_RELOC (right.X_add_symbol, 0)) { retval = absolute_section; rightseg = absolute_section; diff --git a/gas/read.c b/gas/read.c index bd3fa58bbec..ad9363a6044 100644 --- a/gas/read.c +++ b/gas/read.c @@ -629,6 +629,7 @@ read_a_source_file (char *name) was_new_line = is_end_of_line[(unsigned char) input_line_pointer[-1]]; if (was_new_line) { + symbol_set_value_now (&dot_symbol); #ifdef md_start_line_hook md_start_line_hook (); #endif @@ -1128,6 +1129,7 @@ read_a_source_file (char *name) md_after_pass_hook (); #endif } + symbol_set_value_now (&dot_symbol); quit: diff --git a/gas/symbols.c b/gas/symbols.c index 7b5e514a315..9a4e2bef54d 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -48,6 +48,7 @@ static struct hash_control *local_hash; symbolS *symbol_rootP; symbolS *symbol_lastP; symbolS abs_symbol; +symbolS dot_symbol; #ifdef DEBUG_SYMS #define debug_verify_symchain verify_symbol_chain @@ -557,6 +558,9 @@ symbol_clone (symbolS *orgsymP, int replace) symbolS *newsymP; asymbol *bsymorg, *bsymnew; + /* Make sure we never clone the dot special symbol. */ + gas_assert (orgsymP != &dot_symbol); + /* Running local_symbol_convert on a clone that's not the one currently in local_hash would incorrectly replace the hash entry. Thus the symbol must be converted here. Note that the rest of the function @@ -645,7 +649,8 @@ symbol_clone_if_forward_ref (symbolS *symbolP, int is_forward) /* Re-using sy_resolving here, as this routine cannot get called from symbol resolution code. */ - if (symbolP->bsym->section == expr_section && !symbolP->sy_resolving) + if ((symbolP->bsym->section == expr_section || symbolP->sy_forward_ref) + && !symbolP->sy_resolving) { symbolP->sy_resolving = 1; add_symbol = symbol_clone_if_forward_ref (add_symbol, is_forward); @@ -656,7 +661,20 @@ symbol_clone_if_forward_ref (symbolS *symbolP, int is_forward) if (symbolP->sy_forward_ref || add_symbol != symbolP->sy_value.X_add_symbol || op_symbol != symbolP->sy_value.X_op_symbol) - symbolP = symbol_clone (symbolP, 0); + { + if (symbolP != &dot_symbol) + { + symbolP = symbol_clone (symbolP, 0); + symbolP->sy_resolving = 0; + } + else + { + symbolP = symbol_temp_new_now (); +#ifdef tc_new_dot_label + tc_new_dot_label (symbolP); +#endif + } + } symbolP->sy_value.X_add_symbol = add_symbol; symbolP->sy_value.X_op_symbol = op_symbol; @@ -2052,9 +2070,9 @@ S_FORCE_RELOC (symbolS *s, int strict) return ((strict && ((s->bsym->flags & BSF_WEAK) != 0 - || (s->bsym->flags & BSF_GNU_INDIRECT_FUNCTION) != 0 || (EXTERN_FORCE_RELOC && (s->bsym->flags & BSF_GLOBAL) != 0))) + || (s->bsym->flags & BSF_GNU_INDIRECT_FUNCTION) != 0 || s->bsym->section == undefined_section || bfd_is_com_section (s->bsym->section)); } @@ -2745,6 +2763,17 @@ symbol_begin (void) if (LOCAL_LABELS_FB) fb_label_init (); } + +void +dot_symbol_init (void) +{ + dot_symbol.bsym = bfd_make_empty_symbol (stdoutput); + if (dot_symbol.bsym == NULL) + as_fatal ("bfd_make_empty_symbol: %s", bfd_errmsg (bfd_get_error ())); + dot_symbol.bsym->name = "."; + dot_symbol.sy_forward_ref = 1; + dot_symbol.sy_value.X_op = O_constant; +} int indent_level; diff --git a/gas/symbols.h b/gas/symbols.h index 377a130074b..1d5b2a3ca63 100644 --- a/gas/symbols.h +++ b/gas/symbols.h @@ -28,6 +28,7 @@ extern symbolS *symbol_rootP; /* all the symbol nodes */ extern symbolS *symbol_lastP; /* last struct symbol we made, or NULL */ extern symbolS abs_symbol; +extern symbolS dot_symbol; extern int symbol_table_frozen; @@ -60,6 +61,7 @@ symbolS *symbol_temp_make (void); symbolS *colon (const char *sym_name); void local_colon (int n); void symbol_begin (void); +void dot_symbol_init (void); void symbol_print_statistics (FILE *); void symbol_table_insert (symbolS * symbolP); valueT resolve_symbol_value (symbolS *); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index eeddf35fbc7..74043db8e32 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2010-12-02 Richard Sandiford + * gas/i386/ifunc-2.s, gas/i386/ifunc-2.l: New test. + * gas/i386/ifunc-3.s, gas/i386/ifunc-3.d: Likeise. + * gas/i386/i386.exp: Run them. + 2010-11-15 Richard Sandiford * gas/mips/elf-rel28.s, gas/mips/elf-rel28-n32.d, diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index c295be63e56..3a966d7006e 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -215,6 +215,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_list_test "inval-equ-1" "-al" run_list_test "inval-equ-2" "-al" run_dump_test "ifunc" + run_list_test "ifunc-2" + run_dump_test "ifunc-3" run_list_test "l1om-inval" "-march=l1om --32" run_dump_test "localpic" run_dump_test "debug1" diff --git a/gas/write.c b/gas/write.c index 939b80e520b..018800e0750 100644 --- a/gas/write.c +++ b/gas/write.c @@ -932,6 +932,8 @@ fixup_segment (fixS *fixP, segT this_segment) sub_symbol_segment = S_GET_SEGMENT (fixP->fx_subsy); if (fixP->fx_addsy != NULL && sub_symbol_segment == add_symbol_segment + && !S_FORCE_RELOC (fixP->fx_addsy, 0) + && !S_FORCE_RELOC (fixP->fx_subsy, 0) && !TC_FORCE_RELOCATION_SUB_SAME (fixP, add_symbol_segment)) { add_number += S_GET_VALUE (fixP->fx_addsy); @@ -945,6 +947,7 @@ fixup_segment (fixS *fixP, segT this_segment) #endif } else if (sub_symbol_segment == absolute_section + && !S_FORCE_RELOC (fixP->fx_subsy, 0) && !TC_FORCE_RELOCATION_SUB_ABS (fixP, add_symbol_segment)) { add_number -= S_GET_VALUE (fixP->fx_subsy); @@ -952,6 +955,7 @@ fixup_segment (fixS *fixP, segT this_segment) fixP->fx_subsy = NULL; } else if (sub_symbol_segment == this_segment + && !S_FORCE_RELOC (fixP->fx_subsy, 0) && !TC_FORCE_RELOCATION_SUB_LOCAL (fixP, add_symbol_segment)) { add_number -= S_GET_VALUE (fixP->fx_subsy); @@ -994,6 +998,7 @@ fixup_segment (fixS *fixP, segT this_segment) if (fixP->fx_addsy) { if (add_symbol_segment == this_segment + && !S_FORCE_RELOC (fixP->fx_addsy, 0) && !TC_FORCE_RELOCATION_LOCAL (fixP)) { /* This fixup was made when the symbol's segment was @@ -1007,6 +1012,7 @@ fixup_segment (fixS *fixP, segT this_segment) fixP->fx_pcrel = 0; } else if (add_symbol_segment == absolute_section + && !S_FORCE_RELOC (fixP->fx_addsy, 0) && !TC_FORCE_RELOCATION_ABS (fixP)) { add_number += S_GET_VALUE (fixP->fx_addsy); diff --git a/gold/ChangeLog b/gold/ChangeLog index 9901fcada62..886a0ce4c18 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-01 H.J. Lu + * version.cc (print_version): Update copyright to 2011. + 2011-01-24 Ian Lance Taylor * version.cc (version_string): Bump to 1.11. diff --git a/gold/version.cc b/gold/version.cc index 5b01ce58ef8..6fff992bc6f 100644 --- a/gold/version.cc +++ b/gold/version.cc @@ -63,7 +63,7 @@ print_version(bool print_short) if (!print_short) { // This output is intended to follow the GNU standards. - printf(_("Copyright 2010 Free Software Foundation, Inc.\n")); + printf(_("Copyright 2011 Free Software Foundation, Inc.\n")); printf(_("\ This program is free software; you may redistribute it under the terms of\n\ the GNU General Public License version 3 or (at your option) a later version.\n\ diff --git a/ld/ChangeLog b/ld/ChangeLog index 91cca6bb2eb..4cdf059daa1 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,219 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-22 H.J. Lu + * Makefile.am (CXX): Removed. + * configure.in: Add AC_PROG_CXX. + * Makefile.in: Regenerated. + * configure: Likewise. + + 2011-01-22 Richard Sandiford + * plugin.c (plugin_get_ir_dummy_bfd): Copy across the bfd's + private data and GP size. + + 2011-01-21 Alan Modra + * ldexp.c (fold_binary): Set result section for arithmetic and + logical operations to NULL when both operands are in same section. + * ld.texinfo (Expression Section): Describe this. + + 2011-01-14 Alan Modra + * ldmain.c (main): Flush stdout before and stderr after printing + message. + * ldmisc.c (einfo): Similarly. + * plugin.c (message): Likewise. + * emultempl/ppc64elf.em: Likewise. + * emultempl/xtensaelf.em: Likewise. + * emulparams/elf32mcore.sh: Use einfo rather than printf. + * emultempl/beos.em: Likewise. + * emultempl/pe.em: Likewise. + * emultempl/pep.em: Likewise. + + 2011-01-14 Alan Modra + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't + attempt to put non-alloc orphans before debug sections, just place + them after .comment. + + 2011-01-14 J. Park + PR ld/12339 + * ldlang.c (sort_def_symbol): Handle bfd_link_hash_warning symbols. + + 2011-01-14 Alan Modra + * Makefile.am: Sort emulation rules. + (eelf32am33lin.c): Delete. + (ALL_EMULATION_SOURCES): Sort, add missing entries. + (ALL_64_EMULATION_SOURCES): Likewise. + * Makefile.in: Regenerate. + + 2011-01-13 Alan Modra + PR ld/12356 + * ld.texinfo (Miscellaneous Commands): Describe LD_FEATURE. + (Expression Section): Update. + * ld.h (ld_config_type): Add sane_expr. + * ldgram.y (ifile_p1): Add LD_FEATURE. + * ldlex.l (LD_FEATYRE): New. + * ldemul.c (after_parse_default): Delete code handling ld_compatibility. + * ldexp.h (struct ldexp_control): Delete uses_defined. + * ldexp.c: Remove all uses of uses_defined. + (fold_name): Test config.sane_expr rather than ld_compatibility. + (exp_fold_tree_1): Likewise. Adjust handling of assignments + during first phase. + * ldlang.h (ld_compatibility): Delete. + (lang_ld_feature): Declare. + * ldlang.c (ld_compatibility): Delete. + (open_input_bfds): Only handle assignments for --defsym. + (lang_ld_feature): New function. + + 2011-01-13 Alan Modra + PR ld/12356 + * ldexp.h (exp_assop): Delete. + (exp_assign, exp_defsym): Declare. + * ldexp.c (exp_assop): Make static, handle all assignment variations. + (exp_assign, exp_defsym): New functions. + (exp_provide): Use exp_assop. + * ldgram.y (defsym_expr): Use exp_defsym. + * ldctor.c, * ldgram.y, * ldlang.c, * mri.c, * emultempl/beos.em, + * emultempl/pe.em, * emultempl/pep.em, * emultempl/spuelf.em, + * emultempl/xtensaelf.em: Update exp_assop -> exp_assign. + + 2011-01-12 Alan Modra + PR ld/12380 + * ldexp.h (enum phase_enum): Comment. Add exp_dataseg_done. + * ldexp.c (fold_unary ): Rearrange code. Test + for exp_dataseg_done rather than expld.phase == lang_final_phase_enum + to detect when we've finished sizing sections. + (fold_binary ): Likewise. + (fold_binary ): Likewise. Also test + that we are not inside an output section statement. + * ldlang.c (lang_size_sections): Set exp_dataseg_done on exit if + not exp_dataseg_relro_adjust or exp_dataseg_adjust. Don't set + lang_final_phase_enum here. + (lang_process): Set lang_final_phase_enum here. + + 2011-01-05 H.J. Lu + PR ld/12364 + * plugin.c (get_symbols): Check if owner_sec->owner is NULL + before accessing its flags field. + + 2011-01-01 H.J. Lu + * ldver.c (ldversion): Update copyright to 2011. + + 2010-12-20 Alan Modra + * ld.texinfo (Expression Section): Describe treatment of numbers + and absolute symbols. + * ldemul.c (after_open_default): Look up __ld_compatibility. + * ldexp.c (fold_name): Convert absolute symbols to numbers when + inside output section definitions, or when __ld_compatibility >= 221. + (exp_fold_tree_1): Convert numbers to absolute when not in output + section definition and __ld_compatibility < 221. Don't always + convert values outside an output section definition to absolute. + * ldexp.h (uses_defined): Comment. + * ldlang.c (ld_compatibility): New variable. + * ldlang.h (ld_compatibility): Declare. + * emultempl/aix.em, * emultempl/armcoff.em, * emultempl/beos.em, + * emultempl/elf32.em, * emultempl/genelf.em, * emultempl/lnk960.em, + * emultempl/m68kcoff.em, * emultempl/mmo.em, * emultempl/pe.em, + * emultempl/pep.em, * emultempl/sunos.em, * emultempl/z80.em: Call + after_open_default from after_open function. + + 2010-12-20 Alan Modra + PR ld/12001 + Revert 2010-11-03 Nick Clifton + * ldlang.c (ldlang_def_chain_list): Delete. + (insert_defined, ldlang_add_def, lang_place_defineds): Delete. + (lang_process): Don't call lang_place_defineds. + (lang_add_assignment): Don't do anything special for --defsym. + * ldexp.h (struct ldexp_control): Add uses_defined. + (exp_fold_tree_no_dot): Declare. + * ldexp.c (exp_fold_tree): Clear uses_defined. + (exp_fold_tree_no_dot): Likewise. Make global. + (fold_name ): Set uses_defined. + (exp_fold_tree_1 ): Define symbol during first phase + even when the value being assigned isn't valid. + * ldlang.c (open_input_bfds): Process assignment statements. + (lang_process): Bump lang_statement_iteration. + (scan_for_self_assignment): Formatting. + (print_assignment): Style. + + 2010-12-13 Alan Modra + * ldlang.c (load_symbols): Correct last change. + + 2010-12-12 H.J. Lu + * ldlang.c (load_symbols): Optimize for add_archive_element. + + 2010-12-06 H.J. Lu + PR ld/12288 + * plugin.c (message): Don't add the trailing `\n' for + LDPL_ERROR. + + 2010-12-06 H.J. Lu + PR ld/12288 + * testplug.c: Remove the trailing `\n' from TV_MESSAGE. + + 2010-12-06 Dmitry Gorbachev + PR ld/12288 + * plugin.c (message): Use putchar for the trailing `\n'. + + 2010-12-06 H.J. Lu + Dmitry Gorbachev + PR ld/12289 + * ldmain.c (main): Don't call plugin_call_cleanup. + * plugin.c (plugin_call_cleanup): Make it static. + (message): Don't call plugin_call_cleanup. + (plugin_load_plugins): Call xatexit with plugin_call_cleanup. + + 2010-12-05 H.J. Lu + PR ld/12289 + * plugin.c (message): Call plugin_call_cleanup on fatal + error. + + 2010-12-05 H.J. Lu + * plugin.c (message): Add a space after `:' in error message. + + 2010-12-05 H.J. Lu + * plugin.c (asymbol_from_plugin_symbol): Add the trailing `\n' + to einfo. + (get_symbols): Likewise. + (plugin_notice): Likewise. + (plugin_multiple_definition): Likewise. + + 2010-12-05 H.J. Lu + PR ld/12288 + * plugin.c (message): Add the trailing `\n'. + + 2010-12-05 H.J. Lu + * ldfile.c (ldfile_open_file_search): Check maybe_archive instead + of is_archive. + * emultempl/aix.em: Likewise. + * emultempl/elf32.em: Likewise. + * emultempl/linux.em: Likewise. + * emultempl/pe.em: Likewise. + * emultempl/pep.em: Likewise. + * emultempl/sunos.em: Likewise. + * emultempl/vms.em: Likewise. + * ldlang.c (new_afile): Set maybe_archive instead of is_archive.. + * ldlang.h (lang_input_statement_struct): Replace is_archive + with maybe_archive. + + 2010-12-05 H.J. Lu + * plugin.c (asymbol_from_plugin_symbol): Properly convert LTO + plugin visibility to ELF visibility. + (is_visible_from_outside): Re-indent. + + 2010-11-21 H.J. Lu + * ldfile.c: Re-indent plugin code. + * ldlang.c: Likewise. + * ldmain.c: Likewise. + * plugin.c: Likewise. + + 2010-11-20 H.J. Lu + PR ld/12246 + * plugin.c (asymbol_from_plugin_symbol): Set alignment of + common symbol to 1 for For ELF targets. + + 2010-11-20 H.J. Lu + PR ld/12247 + * lexsup.c (parse_args): Properly report loading plugin error. + 2010-12-21 Alan Modra * po/ja.po: Update. diff --git a/ld/Makefile.am b/ld/Makefile.am index b4364be6f1d..1280b64b297 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -92,7 +92,6 @@ CC_FOR_TARGET = ` \ fi; \ fi` -CXX = g++ CXX_FOR_TARGET = ` \ if [ -f $$r/../gcc/g++ ] ; then \ if [ -f $$r/../newlib/Makefile ] ; then \ @@ -128,6 +127,8 @@ BFDLIB = ../bfd/libbfd.la LIBIBERTY = ../libiberty/libiberty.a ALL_EMULATION_SOURCES = \ + eaix5ppc.c \ + eaix5rs6.c \ eaixppc.c \ eaixrs6.c \ ealpha.c \ @@ -139,21 +140,21 @@ ALL_EMULATION_SOURCES = \ earmaoutl.c \ earmcoff.c \ earmelf.c \ - earmelfb.c \ earmelf_fbsd.c \ earmelf_linux.c \ earmelf_linux_eabi.c \ + earmelf_nbsd.c \ + earmelf_vxworks.c \ + earmelfb.c \ earmelfb_linux.c \ earmelfb_linux_eabi.c \ - earmelf_nbsd.c \ earmelfb_nbsd.c \ - earmelf_vxworks.c \ - earmnto.c \ earmnbsd.c \ + earmnto.c \ earmpe.c \ earmsymbian.c \ - eavr2.c \ eavr1.c \ + eavr2.c \ eavr25.c \ eavr3.c \ eavr31.c \ @@ -164,7 +165,6 @@ ALL_EMULATION_SOURCES = \ eavr6.c \ ecoff_i860.c \ ecoff_sparc.c \ - eelf32_spu.c \ ecrisaout.c \ ecriself.c \ ecrislinux.c \ @@ -174,49 +174,53 @@ ALL_EMULATION_SOURCES = \ ed30velf.c \ edelta68.c \ eelf32_dlx.c \ - eelf32_i960.c \ eelf32_i860.c \ + eelf32_i960.c \ eelf32_sparc.c \ eelf32_sparc_sol2.c \ eelf32_sparc_vxworks.c \ + eelf32_spu.c \ eelf32_tic6x_be.c \ eelf32_tic6x_le.c \ eelf32b4300.c \ eelf32bfin.c \ eelf32bfinfd.c \ - eelf32cr16.c \ - eelf32cr16c.c \ eelf32bmip.c \ eelf32bmipn32.c \ + eelf32bsmip.c \ eelf32btsmip.c \ - eelf32crx.c \ eelf32btsmipn32.c \ - eelf32ltsmip.c \ - eelf32ltsmipn32.c \ + eelf32cr16.c \ + eelf32cr16c.c \ + eelf32crx.c \ eelf32ebmip.c \ eelf32ebmipvxworks.c \ eelf32elmip.c \ eelf32elmipvxworks.c \ eelf32fr30.c \ eelf32frv.c \ - eelf32moxie.c \ + eelf32frvfd.c \ eelf32i370.c \ eelf32ip2k.c \ - eelf32iq2000.c \ eelf32iq10.c \ + eelf32iq2000.c \ + eelf32l4300.c \ eelf32lm32.c \ eelf32lm32fd.c \ - eelf32l4300.c \ eelf32lmip.c \ eelf32lppc.c \ eelf32lppcnto.c \ eelf32lppcsim.c \ + eelf32lsmip.c \ + eelf32ltsmip.c \ + eelf32ltsmipn32.c \ eelf32m32c.c \ + eelf32mb_linux.c \ eelf32mcore.c \ eelf32mep.c \ - eelf32mb_linux.c \ eelf32microblaze.c \ eelf32mipswindiss.c \ + eelf32moxie.c \ eelf32mt.c \ eelf32openrisc.c \ eelf32ppc.c \ @@ -224,13 +228,13 @@ ALL_EMULATION_SOURCES = \ eelf32ppclinux.c \ eelf32ppcnto.c \ eelf32ppcsim.c \ - eelf32ppcwindiss.c \ eelf32ppcvxworks.c \ + eelf32ppcwindiss.c \ eelf32rx.c \ eelf32vax.c \ - eelf32xc16x.c \ - eelf32xc16xl.c \ - eelf32xc16xs.c \ + eelf32xc16x.c \ + eelf32xc16xl.c \ + eelf32xc16xs.c \ eelf32xstormy16.c \ eelf32xtensa.c \ eelf_i386.c \ @@ -244,16 +248,16 @@ ALL_EMULATION_SOURCES = \ egld960.c \ egld960coff.c \ eh8300.c \ - eh8300h.c \ - eh8300s.c \ eh8300elf.c \ - eh8300hn.c \ - eh8300sn.c \ - eh8300sx.c \ + eh8300h.c \ eh8300helf.c \ - eh8300self.c \ + eh8300hn.c \ eh8300hnelf.c \ + eh8300s.c \ + eh8300self.c \ + eh8300sn.c \ eh8300snelf.c \ + eh8300sx.c \ eh8300sxelf.c \ eh8300sxn.c \ eh8300sxnelf.c \ @@ -286,8 +290,8 @@ ALL_EMULATION_SOURCES = \ ei386pep.c \ elnk960.c \ em32relf.c \ - em32rlelf.c \ em32relf_linux.c \ + em32rlelf.c \ em32rlelf_linux.c \ em68hc11elf.c \ em68hc11elfb.c \ @@ -311,20 +315,22 @@ ALL_EMULATION_SOURCES = \ emipslit.c \ emipslnews.c \ emipspe.c \ + emn10200.c \ + emn10300.c \ emsp430x110.c \ - emsp430x112.c \ emsp430x1101.c \ emsp430x1111.c \ + emsp430x112.c \ emsp430x1121.c \ emsp430x1122.c \ emsp430x1132.c \ emsp430x122.c \ - emsp430x123.c \ emsp430x1222.c \ + emsp430x123.c \ emsp430x1232.c \ emsp430x133.c \ - emsp430x135.c \ emsp430x1331.c \ + emsp430x135.c \ emsp430x1351.c \ emsp430x147.c \ emsp430x148.c \ @@ -332,12 +338,12 @@ ALL_EMULATION_SOURCES = \ emsp430x155.c \ emsp430x156.c \ emsp430x157.c \ - emsp430x167.c \ - emsp430x168.c \ - emsp430x169.c \ emsp430x1610.c \ emsp430x1611.c \ emsp430x1612.c \ + emsp430x167.c \ + emsp430x168.c \ + emsp430x169.c \ emsp430x2101.c \ emsp430x2111.c \ emsp430x2121.c \ @@ -355,21 +361,21 @@ ALL_EMULATION_SOURCES = \ emsp430x413.c \ emsp430x415.c \ emsp430x417.c \ - emsp430xE423.c \ - emsp430xE425.c \ - emsp430xE427.c \ - emsp430xW423.c \ - emsp430xW425.c \ - emsp430xW427.c \ - emsp430xG437.c \ - emsp430xG438.c \ - emsp430xG439.c \ emsp430x435.c \ emsp430x436.c \ emsp430x437.c \ emsp430x447.c \ emsp430x448.c \ emsp430x449.c \ + emsp430xE423.c \ + emsp430xE425.c \ + emsp430xE427.c \ + emsp430xG437.c \ + emsp430xG438.c \ + emsp430xG439.c \ + emsp430xW423.c \ + emsp430xW425.c \ + emsp430xW427.c \ enews.c \ ens32knbsd.c \ eor32.c \ @@ -378,34 +384,34 @@ ALL_EMULATION_SOURCES = \ epdp11.c \ epjelf.c \ epjlelf.c \ + eppclynx.c \ eppcmacos.c \ eppcnw.c \ eppcpe.c \ - eppclynx.c \ eriscix.c \ escore3_elf.c \ escore7_elf.c \ esh.c \ + eshelf.c \ eshelf32.c \ - eshlelf32.c \ eshelf32_linux.c \ - eshlelf32_linux.c \ eshelf32_nbsd.c \ - eshlelf32_nbsd.c \ - eshelf.c \ eshelf_fd.c \ - eshlelf_fd.c \ eshelf_linux.c \ - eshlelf_linux.c \ eshelf_nbsd.c \ - eshlelf_nbsd.c \ eshelf_nto.c \ - eshlelf_nto.c \ eshelf_uclinux.c \ eshelf_vxworks.c \ - eshlelf_vxworks.c \ eshl.c \ eshlelf.c \ + eshlelf32.c \ + eshlelf32_linux.c \ + eshlelf32_nbsd.c \ + eshlelf_fd.c \ + eshlelf_linux.c \ + eshlelf_nbsd.c \ + eshlelf_nto.c \ + eshlelf_vxworks.c \ eshlsymbian.c \ eshpe.c \ esparcaout.c \ @@ -421,14 +427,14 @@ ALL_EMULATION_SOURCES = \ etic4xcoff.c \ etic54xcoff.c \ etic80coff.c \ + ev850.c \ evanilla.c \ evax.c \ evaxnbsd.c \ evsta.c \ ew65.c \ - ez8001.c \ - eelf32frvfd.c \ ez80.c \ + ez8001.c \ ez8002.c ALL_EMULATIONS = $(ALL_EMULATION_SOURCES:.c=.@OBJEXT@) @@ -437,15 +443,6 @@ ALL_64_EMULATION_SOURCES = \ eelf64_aix.c \ eelf64_ia64.c \ eelf64_ia64_fbsd.c \ - eshelf64.c \ - eshlelf64.c \ - eshelf64_nbsd.c \ - eshlelf64_nbsd.c \ - eelf_x86_64.c \ - eelf_x86_64_fbsd.c \ - eelf_x86_64_sol2.c \ - eelf_l1om.c \ - eelf_l1om_fbsd.c \ eelf64_s390.c \ eelf64_sparc.c \ eelf64_sparc_fbsd.c \ @@ -455,13 +452,22 @@ ALL_64_EMULATION_SOURCES = \ eelf64alpha_nbsd.c \ eelf64bmip.c \ eelf64btsmip.c \ - eelf64ltsmip.c \ eelf64hppa.c \ + eelf64lppc.c \ + eelf64ltsmip.c \ eelf64mmix.c \ - emmo.c \ eelf64ppc.c \ - eelf64lppc.c \ - ehppa64linux.c + eelf_l1om.c \ + eelf_l1om_fbsd.c \ + eelf_x86_64.c \ + eelf_x86_64_fbsd.c \ + eelf_x86_64_sol2.c \ + ehppa64linux.c \ + emmo.c \ + eshelf64.c \ + eshelf64_nbsd.c \ + eshlelf64.c \ + eshlelf64_nbsd.c ALL_64_EMULATIONS = $(ALL_64_EMULATION_SOURCES:.c=.@OBJEXT@) @@ -640,14 +646,25 @@ ealphavms.c: $(srcdir)/emulparams/alphavms.sh \ earcelf.c: $(srcdir)/emulparams/arcelf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} arcelf "$(tdir_arcelf)" +earm_epoc_pe.c: $(srcdir)/emulparams/arm_epoc_pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/epocpe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} arm_epoc_pe "$(tdir_armpe)" +earm_wince_pe.c: $(srcdir)/emulparams/arm_wince_pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} arm_wince_pe "$(tdir_armpe)" +earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" +earmaoutl.c: $(srcdir)/emulparams/armaoutl.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutl "$(tdir_armaoutl)" +earmcoff.c: $(srcdir)/emulparams/armcoff.sh \ + $(srcdir)/emultempl/armcoff.em $(srcdir)/scripttempl/armcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armcoff "$(tdir_armcoff)" earmelf.c: $(srcdir)/emulparams/armelf.sh \ $(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 \ - $(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 \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ @@ -662,6 +679,21 @@ earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)" +earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_nbsd "$(tdir_armelf_nbsd)" +earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ + $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ + $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" +earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelfb "$(tdir_armelfb)" earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \ $(srcdir)/emulparams/armelf_linux.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ @@ -673,32 +705,12 @@ earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \ $(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 \ - $(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 \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" -earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" -earmaoutl.c: $(srcdir)/emulparams/armaoutl.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armaoutl "$(tdir_armaoutl)" -earmcoff.c: $(srcdir)/emulparams/armcoff.sh \ - $(srcdir)/emultempl/armcoff.em $(srcdir)/scripttempl/armcoff.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armcoff "$(tdir_armcoff)" earmnbsd.c: $(srcdir)/emulparams/armnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnbsd "$(tdir_armnbsd)" @@ -706,12 +718,6 @@ earmnto.c: $(srcdir)/emulparams/armnto.sh \ $(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 \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/epocpe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} arm_epoc_pe "$(tdir_armpe)" -earm_wince_pe.c: $(srcdir)/emulparams/arm_wince_pe.sh \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} arm_wince_pe "$(tdir_armpe)" earmpe.c: $(srcdir)/emulparams/armpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} armpe "$(tdir_armpe)" @@ -720,14 +726,14 @@ earmsymbian.c: $(srcdir)/emulparams/armsymbian.sh \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/armbpabi.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armsymbian "$(tdir_armelf)" -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/avrelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr1 "$(tdir_avr2)" +eavr2.c: $(srcdir)/emulparams/avr2.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avr2 "$(tdir_avr2)" eavr25.c: $(srcdir)/emulparams/avr25.sh $(srcdir)/emultempl/avrelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} @@ -778,150 +784,86 @@ ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \ ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d10velf "$(tdir_d10v)" -ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ +ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} - ${GENSCRIPTS} d30velf "$(tdir_d30v)" + ${GENSCRIPTS} d30v_e "$(tdir_d30v)" ed30v_o.c: $(srcdir)/emulparams/d30v_o.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_o "$(tdir_d30v)" -ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ +ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} - ${GENSCRIPTS} d30v_e "$(tdir_d30v)" + ${GENSCRIPTS} d30velf "$(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 \ - $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin -eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ - $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32_dlx.c: $(srcdir)/emulparams/elf32_dlx.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_dlx "$(tdir_elf32_dlx)" +eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" +eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" +eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" +eelf32_sparc_sol2.c: $(srcdir)/emulparams/elf32_sparc_sol2.sh \ + $(srcdir)/emulparams/elf32_sparc.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_sol2 "$(tdir_elf32_sparc_sol2)" +eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ + $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" +eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ + $(srcdir)/emultempl/spu_ovl.@OBJEXT@_c $(srcdir)/emultempl/spu_icache.@OBJEXT@_c \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" +$(srcdir)/emultempl/spu_ovl.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_ovl.S + if ../gas/as-new --version \ + | grep 'target.*spu' >/dev/null 2>/dev/null; then \ + cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s; \ + ../gas/as-new -o spu_ovl.@OBJEXT@ spu_ovl.s; \ + ../binutils/bin2c $@; \ + fi +$(srcdir)/emultempl/spu_icache.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_icache.S + if ../gas/as-new --version \ + | grep 'target.*spu' >/dev/null 2>/dev/null; then \ + cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_icache.S spu_icache.s; \ + ../gas/as-new -o spu_icache.@OBJEXT@ spu_icache.s; \ + ../binutils/bin2c $@; \ + fi eelf32_tic6x_be.c: $(srcdir)/emulparams/elf32_tic6x_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_tic6x_be "$(tdir_elf32_tic6x_be)" eelf32_tic6x_le.c: $(srcdir)/emulparams/elf32_tic6x_le.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_tic6x_le "$(tdir_elf32_tic6x_le)" -eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ +eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" +eelf32bfin.c: $(srcdir)/emulparams/bfin.sh \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" -eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" -eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" -eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" -eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32am33lin "$(tdir_mn10300)" -eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32rx "$(tdir_elf32rx)" -eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" -eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.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 \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" -eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32frv "$(tdir_frv)" -eelf32frvfd.c: $(srcdir)/emulparams/elf32frvfd.sh \ - $(srcdir)/emulparams/elf32frv.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32frvfd "$(tdir_frv)" -eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32moxie "$(tdir_moxie)" -eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" -eelf32mep.c: $(srcdir)/emulparams/elf32mep.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/mep.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mep "$(tdir_mep)" -em32relf.c: $(srcdir)/emulparams/m32relf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32relf "$(tdir_m32r)" -em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" -em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" -em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" -eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" -eelf32_sparc_sol2.c: $(srcdir)/emulparams/elf32_sparc_sol2.sh \ - $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc_sol2 "$(tdir_elf32_sparc_sol2)" -eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ - $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" -eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ - $(srcdir)/emultempl/spu_ovl.@OBJEXT@_c $(srcdir)/emultempl/spu_icache.@OBJEXT@_c \ - ldemul-list.h \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" -$(srcdir)/emultempl/spu_ovl.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_ovl.S - if ../gas/as-new --version \ - | grep 'target.*spu' >/dev/null 2>/dev/null; then \ - cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s; \ - ../gas/as-new -o spu_ovl.@OBJEXT@ spu_ovl.s; \ - ../binutils/bin2c $@; \ - fi -$(srcdir)/emultempl/spu_icache.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_icache.S - if ../gas/as-new --version \ - | grep 'target.*spu' >/dev/null 2>/dev/null; then \ - cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_icache.S spu_icache.s; \ - ../gas/as-new -o spu_icache.@OBJEXT@ spu_icache.s; \ - ../binutils/bin2c $@; \ - fi -eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" -eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" -eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" -eelf32cr16.c: $(srcdir)/emulparams/elf32cr16.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/cr16elf.em \ - $(srcdir)/scripttempl/elf32cr16.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32cr16 "$(tdir_elf32crx)" -eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin +eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" +eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ + $(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)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -930,24 +872,22 @@ eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ - $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" -eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ - $(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)" +eelf32cr16.c: $(srcdir)/emulparams/elf32cr16.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/cr16elf.em \ + $(srcdir)/scripttempl/elf32cr16.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16 "$(tdir_elf32crx)" +eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" +eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ + $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -967,36 +907,44 @@ eelf32elmipvxworks.c: $(srcdir)/emulparams/elf32elmipvxworks.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)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" +eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" +eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32frv "$(tdir_frv)" +eelf32frvfd.c: $(srcdir)/emulparams/elf32frvfd.sh \ + $(srcdir)/emulparams/elf32frv.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32frvfd "$(tdir_frv)" +eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" +eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" +eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" +eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" +eelf32lm32.c: $(srcdir)/emulparams/elf32lm32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lm32 "$(tdir_elf32lm32)" +eelf32lm32fd.c: $(srcdir)/emulparams/elf32lm32fd.sh \ + $(srcdir)/emulparams/elf32lm32.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lm32fd "$(tdir_elf32lm32fd)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" -eelf32mb_linux.c: $(srcdir)/emulparams/elf32mb_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mb_linux "$(tdir_microblaze)" -eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32microblaze "$(tdir_microblaze)" -eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" -eelf32m32c.c: $(srcdir)/emulparams/elf32m32c.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32m32c "$(tdir_m32c)" -eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mt "$(tdir_mt)" eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emultempl/ppc32elf.em \ @@ -1015,25 +963,46 @@ eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \ ldemul-list.h \ $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" -eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ - $(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 $(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 \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" +eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ + $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" +eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ + $(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)" +eelf32m32c.c: $(srcdir)/emulparams/elf32m32c.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32m32c "$(tdir_m32c)" +eelf32mb_linux.c: $(srcdir)/emulparams/elf32mb_linux.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mb_linux "$(tdir_microblaze)" +eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" +eelf32mep.c: $(srcdir)/emulparams/elf32mep.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/mep.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mep "$(tdir_mep)" +eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32microblaze "$(tdir_microblaze)" +eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" +eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32moxie "$(tdir_moxie)" +eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mt "$(tdir_mt)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32openrisc "$(tdir_openrisc)" @@ -1048,141 +1017,62 @@ eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ ldemul-list.h \ $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" -eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - ldemul-list.h \ - $(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 \ - ldemul-list.h \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" -eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" -eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" -eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" -eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" -eelf32lm32.c: $(srcdir)/emulparams/elf32lm32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32lm32 "$(tdir_elf32lm32)" -eelf32lm32fd.c: $(srcdir)/emulparams/elf32lm32fd.sh \ - $(srcdir)/emulparams/elf32lm32.sh $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32lm32fd "$(tdir_elf32lm32fd)" -eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + ldemul-list.h \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)" -eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ - $(srcdir)/emulparams/elf64alpha.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" +eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ + ldemul-list.h \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" -eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf64hppa.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" -eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" -eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ - $(srcdir)/emultempl/needrelax.em \ + ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" +eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ + ldemul-list.h \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ - $(srcdir)/emultempl/needrelax.em \ + ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)" +eelf32ppcvxworks.c: $(srcdir)/emulparams/elf32ppcvxworks.sh \ + $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emulparams/vxworks.sh \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)" -eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" -eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ - $(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 \ + ${GENSCRIPTS} elf32ppcvxworks "$(tdir_elf32ppcvxworks)" +eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" -eelf64_sparc_sol2.c: $(srcdir)/emulparams/elf64_sparc_sol2.sh \ - $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em \ + ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" +eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32rx "$(tdir_elf32rx)" +eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_sparc_sol2 "$(tdir_elf64_sparc_sol2)" -eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf64bmip-defs.sh \ - $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" +eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" -eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ - $(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/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/elf64bmip-defs.sh \ - $(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/elf64bmip-defs.sh \ - $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" + ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" +eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" +eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" +eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" +eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.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)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" -eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" -eelf_x86_64_sol2.c: $(srcdir)/emulparams/elf_x86_64_sol2.sh \ - $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_x86_64_sol2 "$(tdir_elf_x86_64_sol2)" -eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)" -eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ - $(srcdir)/emulparams/elf_l1om.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" @@ -1217,47 +1107,47 @@ egld960coff.c: $(srcdir)/emulparams/gld960coff.sh \ eh8300.c: $(srcdir)/emulparams/h8300.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300 "$(tdir_h8300)" +eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" eh8300h.c: $(srcdir)/emulparams/h8300h.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300h.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300h "$(tdir_h8300h)" -eh8300s.c: $(srcdir)/emulparams/h8300s.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300s.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300s "$(tdir_h8300s)" +eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ + $(srcdir)/emulparams/h8300elf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" eh8300hn.c: $(srcdir)/emulparams/h8300hn.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300hn.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300hn "$(tdir_h8300hn)" -eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300sn "$(tdir_h8300sn)" -eh8300sx.c: $(srcdir)/emulparams/h8300sx.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sx.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300sx "$(tdir_h8300sx)" -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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" -eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ +eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" + ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" +eh8300s.c: $(srcdir)/emulparams/h8300s.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300s.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300s "$(tdir_h8300s)" eh8300self.c: $(srcdir)/emulparams/h8300self.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300self "$(tdir_h8300self)" -eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ - $(srcdir)/emulparams/h8300elf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" +eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sn "$(tdir_h8300sn)" eh8300snelf.c: $(srcdir)/emulparams/h8300snelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300snelf "$(tdir_h8300snelf)" +eh8300sx.c: $(srcdir)/emulparams/h8300sx.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sx "$(tdir_h8300sx)" eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxelf "$(tdir_h8300sxelf)" +eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sxn "$(tdir_h8300sxn)" eh8300sxnelf.c: $(srcdir)/emulparams/h8300sxnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1300,9 +1190,6 @@ ehppaobsd.c: $(srcdir)/emulparams/hppaobsd.sh \ $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaobsd "$(tdir_hppaobsd)" -ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ - $(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} ${GENSCRIPTS} i386aout "$(tdir_i386aout)" @@ -1354,6 +1241,18 @@ ei386pep.c: $(srcdir)/emulparams/i386pep.sh \ elnk960.c: $(srcdir)/emulparams/lnk960.sh \ $(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} ${GENSCRIPTS} lnk960 "$(tdir_lnk960)" +em32relf.c: $(srcdir)/emulparams/m32relf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32relf "$(tdir_m32r)" +em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" +em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" +em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \ $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} @@ -1429,21 +1328,17 @@ emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ emipspe.c: $(srcdir)/emulparams/mipspe.sh $(srcdir)/emultempl/pe.em \ $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} mipspe "$(tdir_mipspe)" +emn10200.c: $(srcdir)/emulparams/mn10200.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emn10300.c: $(srcdir)/emulparams/mn10300.sh \ $(srcdir)/emulparams/mn10200.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10300 "$(tdir_mn10300)" -emn10200.c: $(srcdir)/emulparams/mn10200.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emsp430x110.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" msp430all -emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1101.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1452,6 +1347,10 @@ emsp430x1111.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" msp430all +emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1121.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1468,14 +1367,14 @@ emsp430x122.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" msp430all -emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1222.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" msp430all +emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1232.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1484,14 +1383,14 @@ emsp430x133.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" msp430all -emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1331.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" msp430all +emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1351.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1520,18 +1419,6 @@ emsp430x157.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" msp430all -emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all -emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all -emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x1610.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1544,6 +1431,18 @@ emsp430x1612.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1612 "$(tdir_msp430x1612)" msp430all +emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all +emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all +emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x2101.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1599,19 +1498,43 @@ emsp430x337.c: $(srcdir)/emulparams/msp430all.sh \ emsp430x412.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all -emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all +emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all +emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all +emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all +emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all +emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all +emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all +emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all -emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all +emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all -emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all +emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all + ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all emsp430xE423.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1624,18 +1547,6 @@ emsp430xE427.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE427 "$(tdir_msp430xE427)" msp430all -emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all -emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all -emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all emsp430xG437.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -1648,30 +1559,18 @@ emsp430xG439.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG439 "$(tdir_msp430xG439)" msp430all -emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all -emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all -emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all -emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ +emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all -emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all +emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all -emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all +emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all + ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all enews.c: $(srcdir)/emulparams/news.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} news "$(tdir_news)" @@ -1697,6 +1596,9 @@ epjelf.c: $(srcdir)/emulparams/pjelf.sh \ epjlelf.c: $(srcdir)/emulparams/pjlelf.sh $(srcdir)/emulparams/pjelf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjlelf "$(tdir_pjlelf)" +eppclynx.c: $(srcdir)/emulparams/ppclynx.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ppclynx "$(tdir_ppclynx)" eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \ $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcmacos "$(tdir_ppcmacos)" @@ -1706,9 +1608,6 @@ eppcnw.c: $(srcdir)/emulparams/ppcnw.sh \ 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 \ - $(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} ${GENSCRIPTS} riscix "$(tdir_riscix)" @@ -1743,26 +1642,13 @@ eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_nbsd "$(tdir_shelf32_nbsd)" -eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" eshelf_fd.c: $(srcdir)/emulparams/shelf_fd.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_fd "$(tdir_shelf_fd)" -eshlelf_fd.c: $(srcdir)/emulparams/shlelf_fd.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_fd "$(tdir_shlelf_fd)" eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \ $(srcdir)/emulparams/shlelf_linux.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_linux "$(tdir_shelf_linux)" -eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ - $(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 \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1770,34 +1656,21 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_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)" eshelf_vxworks.c: $(srcdir)/emulparams/shelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc \ $(srcdir)/emultempl/vxworks.em ${GEN_DEPENDS} ${GENSCRIPTS} shelf_vxworks "$(tdir_shelf_vxworks)" -eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ - $(srcdir)/emulparams/shelf_nbsd.sh \ - $(srcdir)/emulparams/shelf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" -eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" -eshlelf_vxworks.c: $(srcdir)/emulparams/shlelf_vxworks.sh \ - $(srcdir)/emulparams/shelf_vxworks.sh $(srcdir)/emulparams/vxworks.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/vxworks.em \ - ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_vxworks "$(tdir_shlelf_vxworks)" -eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" +eshl.c: $(srcdir)/emulparams/shl.sh \ + $(srcdir)/emulparams/sh.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shl "$(tdir_shl)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf "$(tdir_shlelf)" -eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ - $(srcdir)/emulparams/shelf.sh \ - $(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 \ @@ -1815,19 +1688,29 @@ eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(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 \ +eshlelf_fd.c: $(srcdir)/emulparams/shlelf_fd.sh \ $(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 \ + ${GENSCRIPTS} shlelf_fd "$(tdir_shlelf_fd)" +eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" -eshl.c: $(srcdir)/emulparams/shl.sh \ - $(srcdir)/emulparams/sh.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shl "$(tdir_shl)" + ${GENSCRIPTS} shlelf_linux "$(tdir_shlelf_linux)" +eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ + $(srcdir)/emulparams/shelf_nbsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" +eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshlelf_vxworks.c: $(srcdir)/emulparams/shlelf_vxworks.sh \ + $(srcdir)/emulparams/shelf_vxworks.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/vxworks.em \ + ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_vxworks "$(tdir_shlelf_vxworks)" +eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlsymbian "$(tdir_shlelf)" eshpe.c: $(srcdir)/emulparams/shpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} shpe "$(tdir_shl)" @@ -1870,6 +1753,9 @@ etic54xcoff.c: $(srcdir)/emulparams/tic54xcoff.sh \ etic80coff.c: $(srcdir)/emulparams/tic80coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic80coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic80coff "$(tdir_tic80coff)" +ev850.c: $(srcdir)/emulparams/v850.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} + ${GENSCRIPTS} v850 "$(tdir_v850)" evanilla.c: $(srcdir)/emulparams/vanilla.sh \ $(srcdir)/emultempl/vanilla.em $(srcdir)/scripttempl/vanilla.sc ${GEN_DEPENDS} ${GENSCRIPTS} vanilla "$(tdir_vanilla)" @@ -1882,9 +1768,6 @@ evaxnbsd.c: $(srcdir)/emulparams/vaxnbsd.sh \ 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 \ - $(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} ${GENSCRIPTS} w65 "$(tdir_w65)" @@ -1899,6 +1782,130 @@ ez8002.c: $(srcdir)/emulparams/z8002.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS} ${GENSCRIPTS} z8002 "$(tdir_z8002)" +eelf32_x86_64.c: $(srcdir)/emulparams/elf32_x86_64.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_x86_64 "$(tdir_elf32_x86_64)" +eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" +eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ + $(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 \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" +eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" +eelf64_sparc_sol2.c: $(srcdir)/emulparams/elf64_sparc_sol2.sh \ + $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_sol2 "$(tdir_elf64_sparc_sol2)" +eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ + $(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 \ + $(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 \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" +eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(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)" +eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf64hppa.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" +eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ + $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" +eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ + $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(srcdir)/emultempl/mmixelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64mmix "$(tdir_elf64mmix)" +eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" +eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)" +eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ + $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" +eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" +eelf_x86_64_sol2.c: $(srcdir)/emulparams/elf_x86_64_sol2.sh \ + $(srcdir)/emulparams/elf_x86_64.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_x86_64_sol2 "$(tdir_elf_x86_64_sol2)" +ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)" +emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em \ + $(srcdir)/emultempl/mmo.em \ + $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mmo "$(tdir_mmo)" +eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" +eshlelf64.c: $(srcdir)/emulparams/shlelf64.sh \ + $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" + # We need this for automake to use YLWRAP. EXTRA_ld_new_SOURCES = deffilep.y ldlex.l # Allow dependency tracking to work for these files, too. diff --git a/ld/Makefile.in b/ld/Makefile.in index dac81b31677..00fcd72a393 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -183,6 +183,10 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ @@ -281,6 +285,7 @@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ @@ -395,7 +400,6 @@ CC_FOR_TARGET = ` \ fi; \ fi` -CXX = g++ CXX_FOR_TARGET = ` \ if [ -f $$r/../gcc/g++ ] ; then \ if [ -f $$r/../newlib/Makefile ] ; then \ @@ -428,6 +432,8 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ BFDLIB = ../bfd/libbfd.la LIBIBERTY = ../libiberty/libiberty.a ALL_EMULATION_SOURCES = \ + eaix5ppc.c \ + eaix5rs6.c \ eaixppc.c \ eaixrs6.c \ ealpha.c \ @@ -439,21 +445,21 @@ ALL_EMULATION_SOURCES = \ earmaoutl.c \ earmcoff.c \ earmelf.c \ - earmelfb.c \ earmelf_fbsd.c \ earmelf_linux.c \ earmelf_linux_eabi.c \ + earmelf_nbsd.c \ + earmelf_vxworks.c \ + earmelfb.c \ earmelfb_linux.c \ earmelfb_linux_eabi.c \ - earmelf_nbsd.c \ earmelfb_nbsd.c \ - earmelf_vxworks.c \ - earmnto.c \ earmnbsd.c \ + earmnto.c \ earmpe.c \ earmsymbian.c \ - eavr2.c \ eavr1.c \ + eavr2.c \ eavr25.c \ eavr3.c \ eavr31.c \ @@ -464,7 +470,6 @@ ALL_EMULATION_SOURCES = \ eavr6.c \ ecoff_i860.c \ ecoff_sparc.c \ - eelf32_spu.c \ ecrisaout.c \ ecriself.c \ ecrislinux.c \ @@ -474,49 +479,53 @@ ALL_EMULATION_SOURCES = \ ed30velf.c \ edelta68.c \ eelf32_dlx.c \ - eelf32_i960.c \ eelf32_i860.c \ + eelf32_i960.c \ eelf32_sparc.c \ eelf32_sparc_sol2.c \ eelf32_sparc_vxworks.c \ + eelf32_spu.c \ eelf32_tic6x_be.c \ eelf32_tic6x_le.c \ eelf32b4300.c \ eelf32bfin.c \ eelf32bfinfd.c \ - eelf32cr16.c \ - eelf32cr16c.c \ eelf32bmip.c \ eelf32bmipn32.c \ + eelf32bsmip.c \ eelf32btsmip.c \ - eelf32crx.c \ eelf32btsmipn32.c \ - eelf32ltsmip.c \ - eelf32ltsmipn32.c \ + eelf32cr16.c \ + eelf32cr16c.c \ + eelf32crx.c \ eelf32ebmip.c \ eelf32ebmipvxworks.c \ eelf32elmip.c \ eelf32elmipvxworks.c \ eelf32fr30.c \ eelf32frv.c \ - eelf32moxie.c \ + eelf32frvfd.c \ eelf32i370.c \ eelf32ip2k.c \ - eelf32iq2000.c \ eelf32iq10.c \ + eelf32iq2000.c \ + eelf32l4300.c \ eelf32lm32.c \ eelf32lm32fd.c \ - eelf32l4300.c \ eelf32lmip.c \ eelf32lppc.c \ eelf32lppcnto.c \ eelf32lppcsim.c \ + eelf32lsmip.c \ + eelf32ltsmip.c \ + eelf32ltsmipn32.c \ eelf32m32c.c \ + eelf32mb_linux.c \ eelf32mcore.c \ eelf32mep.c \ - eelf32mb_linux.c \ eelf32microblaze.c \ eelf32mipswindiss.c \ + eelf32moxie.c \ eelf32mt.c \ eelf32openrisc.c \ eelf32ppc.c \ @@ -524,13 +533,13 @@ ALL_EMULATION_SOURCES = \ eelf32ppclinux.c \ eelf32ppcnto.c \ eelf32ppcsim.c \ - eelf32ppcwindiss.c \ eelf32ppcvxworks.c \ + eelf32ppcwindiss.c \ eelf32rx.c \ eelf32vax.c \ - eelf32xc16x.c \ - eelf32xc16xl.c \ - eelf32xc16xs.c \ + eelf32xc16x.c \ + eelf32xc16xl.c \ + eelf32xc16xs.c \ eelf32xstormy16.c \ eelf32xtensa.c \ eelf_i386.c \ @@ -544,16 +553,16 @@ ALL_EMULATION_SOURCES = \ egld960.c \ egld960coff.c \ eh8300.c \ - eh8300h.c \ - eh8300s.c \ eh8300elf.c \ - eh8300hn.c \ - eh8300sn.c \ - eh8300sx.c \ + eh8300h.c \ eh8300helf.c \ - eh8300self.c \ + eh8300hn.c \ eh8300hnelf.c \ + eh8300s.c \ + eh8300self.c \ + eh8300sn.c \ eh8300snelf.c \ + eh8300sx.c \ eh8300sxelf.c \ eh8300sxn.c \ eh8300sxnelf.c \ @@ -586,8 +595,8 @@ ALL_EMULATION_SOURCES = \ ei386pep.c \ elnk960.c \ em32relf.c \ - em32rlelf.c \ em32relf_linux.c \ + em32rlelf.c \ em32rlelf_linux.c \ em68hc11elf.c \ em68hc11elfb.c \ @@ -611,20 +620,22 @@ ALL_EMULATION_SOURCES = \ emipslit.c \ emipslnews.c \ emipspe.c \ + emn10200.c \ + emn10300.c \ emsp430x110.c \ - emsp430x112.c \ emsp430x1101.c \ emsp430x1111.c \ + emsp430x112.c \ emsp430x1121.c \ emsp430x1122.c \ emsp430x1132.c \ emsp430x122.c \ - emsp430x123.c \ emsp430x1222.c \ + emsp430x123.c \ emsp430x1232.c \ emsp430x133.c \ - emsp430x135.c \ emsp430x1331.c \ + emsp430x135.c \ emsp430x1351.c \ emsp430x147.c \ emsp430x148.c \ @@ -632,12 +643,12 @@ ALL_EMULATION_SOURCES = \ emsp430x155.c \ emsp430x156.c \ emsp430x157.c \ - emsp430x167.c \ - emsp430x168.c \ - emsp430x169.c \ emsp430x1610.c \ emsp430x1611.c \ emsp430x1612.c \ + emsp430x167.c \ + emsp430x168.c \ + emsp430x169.c \ emsp430x2101.c \ emsp430x2111.c \ emsp430x2121.c \ @@ -655,21 +666,21 @@ ALL_EMULATION_SOURCES = \ emsp430x413.c \ emsp430x415.c \ emsp430x417.c \ - emsp430xE423.c \ - emsp430xE425.c \ - emsp430xE427.c \ - emsp430xW423.c \ - emsp430xW425.c \ - emsp430xW427.c \ - emsp430xG437.c \ - emsp430xG438.c \ - emsp430xG439.c \ emsp430x435.c \ emsp430x436.c \ emsp430x437.c \ emsp430x447.c \ emsp430x448.c \ emsp430x449.c \ + emsp430xE423.c \ + emsp430xE425.c \ + emsp430xE427.c \ + emsp430xG437.c \ + emsp430xG438.c \ + emsp430xG439.c \ + emsp430xW423.c \ + emsp430xW425.c \ + emsp430xW427.c \ enews.c \ ens32knbsd.c \ eor32.c \ @@ -678,34 +689,34 @@ ALL_EMULATION_SOURCES = \ epdp11.c \ epjelf.c \ epjlelf.c \ + eppclynx.c \ eppcmacos.c \ eppcnw.c \ eppcpe.c \ - eppclynx.c \ eriscix.c \ escore3_elf.c \ escore7_elf.c \ esh.c \ + eshelf.c \ eshelf32.c \ - eshlelf32.c \ eshelf32_linux.c \ - eshlelf32_linux.c \ eshelf32_nbsd.c \ - eshlelf32_nbsd.c \ - eshelf.c \ eshelf_fd.c \ - eshlelf_fd.c \ eshelf_linux.c \ - eshlelf_linux.c \ eshelf_nbsd.c \ - eshlelf_nbsd.c \ eshelf_nto.c \ - eshlelf_nto.c \ eshelf_uclinux.c \ eshelf_vxworks.c \ - eshlelf_vxworks.c \ eshl.c \ eshlelf.c \ + eshlelf32.c \ + eshlelf32_linux.c \ + eshlelf32_nbsd.c \ + eshlelf_fd.c \ + eshlelf_linux.c \ + eshlelf_nbsd.c \ + eshlelf_nto.c \ + eshlelf_vxworks.c \ eshlsymbian.c \ eshpe.c \ esparcaout.c \ @@ -721,14 +732,14 @@ ALL_EMULATION_SOURCES = \ etic4xcoff.c \ etic54xcoff.c \ etic80coff.c \ + ev850.c \ evanilla.c \ evax.c \ evaxnbsd.c \ evsta.c \ ew65.c \ - ez8001.c \ - eelf32frvfd.c \ ez80.c \ + ez8001.c \ ez8002.c ALL_EMULATIONS = $(ALL_EMULATION_SOURCES:.c=.@OBJEXT@) @@ -736,15 +747,6 @@ ALL_64_EMULATION_SOURCES = \ eelf64_aix.c \ eelf64_ia64.c \ eelf64_ia64_fbsd.c \ - eshelf64.c \ - eshlelf64.c \ - eshelf64_nbsd.c \ - eshlelf64_nbsd.c \ - eelf_x86_64.c \ - eelf_x86_64_fbsd.c \ - eelf_x86_64_sol2.c \ - eelf_l1om.c \ - eelf_l1om_fbsd.c \ eelf64_s390.c \ eelf64_sparc.c \ eelf64_sparc_fbsd.c \ @@ -754,13 +756,22 @@ ALL_64_EMULATION_SOURCES = \ eelf64alpha_nbsd.c \ eelf64bmip.c \ eelf64btsmip.c \ - eelf64ltsmip.c \ eelf64hppa.c \ + eelf64lppc.c \ + eelf64ltsmip.c \ eelf64mmix.c \ - emmo.c \ eelf64ppc.c \ - eelf64lppc.c \ - ehppa64linux.c + eelf_l1om.c \ + eelf_l1om_fbsd.c \ + eelf_x86_64.c \ + eelf_x86_64_fbsd.c \ + eelf_x86_64_sol2.c \ + ehppa64linux.c \ + emmo.c \ + eshelf64.c \ + eshelf64_nbsd.c \ + eshlelf64.c \ + eshlelf64_nbsd.c ALL_64_EMULATIONS = $(ALL_64_EMULATION_SOURCES:.c=.@OBJEXT@) ALL_EMUL_EXTRA_OFILES = \ @@ -1003,6 +1014,8 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deffilep.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5ppc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5rs6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaixppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaixrs6.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ealpha.Po@am__quote@ @@ -1061,6 +1074,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bfinfd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bmipn32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32bsmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32btsmipn32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32cr16.Po@am__quote@ @@ -1084,6 +1098,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcnto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcsim.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lsmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ltsmipn32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32m32c.Po@am__quote@ @@ -1211,6 +1226,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emipslnews.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emipspe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emmo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emn10200.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emn10300.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emsp430x110.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emsp430x1101.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/emsp430x1111.Po@am__quote@ @@ -1325,6 +1342,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/etic4xcoff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/etic54xcoff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/etic80coff.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ev850.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evanilla.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evaxnbsd.Po@am__quote@ @@ -2063,14 +2081,25 @@ ealphavms.c: $(srcdir)/emulparams/alphavms.sh \ earcelf.c: $(srcdir)/emulparams/arcelf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} arcelf "$(tdir_arcelf)" +earm_epoc_pe.c: $(srcdir)/emulparams/arm_epoc_pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/epocpe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} arm_epoc_pe "$(tdir_armpe)" +earm_wince_pe.c: $(srcdir)/emulparams/arm_wince_pe.sh \ + $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} + ${GENSCRIPTS} arm_wince_pe "$(tdir_armpe)" +earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" +earmaoutl.c: $(srcdir)/emulparams/armaoutl.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armaoutl "$(tdir_armaoutl)" +earmcoff.c: $(srcdir)/emulparams/armcoff.sh \ + $(srcdir)/emultempl/armcoff.em $(srcdir)/scripttempl/armcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armcoff "$(tdir_armcoff)" earmelf.c: $(srcdir)/emulparams/armelf.sh \ $(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 \ - $(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 \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ @@ -2085,6 +2114,21 @@ earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)" +earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \ + $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_nbsd "$(tdir_armelf_nbsd)" +earmelf_vxworks.c: $(srcdir)/emulparams/armelf_vxworks.sh \ + $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ + $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" +earmelfb.c: $(srcdir)/emulparams/armelfb.sh $(srcdir)/emulparams/armelf.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelfb "$(tdir_armelfb)" earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \ $(srcdir)/emulparams/armelf_linux.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ @@ -2096,32 +2140,12 @@ earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \ $(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 \ - $(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 \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/vxworks.em \ - $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/elf.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} armelf_vxworks "$(tdir_armelf)" -earmaoutb.c: $(srcdir)/emulparams/armaoutb.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armaoutb "$(tdir_armaoutb)" -earmaoutl.c: $(srcdir)/emulparams/armaoutl.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/armaout.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armaoutl "$(tdir_armaoutl)" -earmcoff.c: $(srcdir)/emulparams/armcoff.sh \ - $(srcdir)/emultempl/armcoff.em $(srcdir)/scripttempl/armcoff.sc ${GEN_DEPENDS} - ${GENSCRIPTS} armcoff "$(tdir_armcoff)" earmnbsd.c: $(srcdir)/emulparams/armnbsd.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} armnbsd "$(tdir_armnbsd)" @@ -2129,12 +2153,6 @@ earmnto.c: $(srcdir)/emulparams/armnto.sh \ $(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 \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/epocpe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} arm_epoc_pe "$(tdir_armpe)" -earm_wince_pe.c: $(srcdir)/emulparams/arm_wince_pe.sh \ - $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} - ${GENSCRIPTS} arm_wince_pe "$(tdir_armpe)" earmpe.c: $(srcdir)/emulparams/armpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} armpe "$(tdir_armpe)" @@ -2143,14 +2161,14 @@ earmsymbian.c: $(srcdir)/emulparams/armsymbian.sh \ $(srcdir)/emultempl/armelf.em $(srcdir)/scripttempl/armbpabi.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} armsymbian "$(tdir_armelf)" -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/avrelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} avr1 "$(tdir_avr2)" +eavr2.c: $(srcdir)/emulparams/avr2.sh $(srcdir)/emultempl/avrelf.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} avr2 "$(tdir_avr2)" eavr25.c: $(srcdir)/emulparams/avr25.sh $(srcdir)/emultempl/avrelf.em \ $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \ ${GEN_DEPENDS} @@ -2201,150 +2219,86 @@ ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \ ed10velf.c: $(srcdir)/emulparams/d10velf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elfd10v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d10velf "$(tdir_d10v)" -ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ +ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} - ${GENSCRIPTS} d30velf "$(tdir_d30v)" + ${GENSCRIPTS} d30v_e "$(tdir_d30v)" ed30v_o.c: $(srcdir)/emulparams/d30v_o.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} ${GENSCRIPTS} d30v_o "$(tdir_d30v)" -ed30v_e.c: $(srcdir)/emulparams/d30v_e.sh \ +ed30velf.c: $(srcdir)/emulparams/d30velf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elfd30v.sc ${GEN_DEPENDS} - ${GENSCRIPTS} d30v_e "$(tdir_d30v)" + ${GENSCRIPTS} d30velf "$(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 \ - $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin -eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ - $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32_dlx.c: $(srcdir)/emulparams/elf32_dlx.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/dlx.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_dlx "$(tdir_elf32_dlx)" +eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" +eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" +eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" +eelf32_sparc_sol2.c: $(srcdir)/emulparams/elf32_sparc_sol2.sh \ + $(srcdir)/emulparams/elf32_sparc.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_sol2 "$(tdir_elf32_sparc_sol2)" +eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ + $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" +eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ + $(srcdir)/emultempl/spu_ovl.@OBJEXT@_c $(srcdir)/emultempl/spu_icache.@OBJEXT@_c \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" +$(srcdir)/emultempl/spu_ovl.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_ovl.S + if ../gas/as-new --version \ + | grep 'target.*spu' >/dev/null 2>/dev/null; then \ + cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s; \ + ../gas/as-new -o spu_ovl.@OBJEXT@ spu_ovl.s; \ + ../binutils/bin2c $@; \ + fi +$(srcdir)/emultempl/spu_icache.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_icache.S + if ../gas/as-new --version \ + | grep 'target.*spu' >/dev/null 2>/dev/null; then \ + cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_icache.S spu_icache.s; \ + ../gas/as-new -o spu_icache.@OBJEXT@ spu_icache.s; \ + ../binutils/bin2c $@; \ + fi eelf32_tic6x_be.c: $(srcdir)/emulparams/elf32_tic6x_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_tic6x_be "$(tdir_elf32_tic6x_be)" eelf32_tic6x_le.c: $(srcdir)/emulparams/elf32_tic6x_le.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32_tic6x_le "$(tdir_elf32_tic6x_le)" -eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ +eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ + $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" +eelf32bfin.c: $(srcdir)/emulparams/bfin.sh \ + $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" -eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" -eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" -eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" -eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32am33lin "$(tdir_mn10300)" -eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32rx "$(tdir_elf32rx)" -eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" -eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.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 \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" -eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32frv "$(tdir_frv)" -eelf32frvfd.c: $(srcdir)/emulparams/elf32frvfd.sh \ - $(srcdir)/emulparams/elf32frv.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32frvfd "$(tdir_frv)" -eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32moxie "$(tdir_moxie)" -eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" -eelf32mep.c: $(srcdir)/emulparams/elf32mep.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/mep.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mep "$(tdir_mep)" -em32relf.c: $(srcdir)/emulparams/m32relf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32relf "$(tdir_m32r)" -em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" -em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" -em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" -eelf32_sparc.c: $(srcdir)/emulparams/elf32_sparc.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc "$(tdir_elf32_sparc)" -eelf32_sparc_sol2.c: $(srcdir)/emulparams/elf32_sparc_sol2.sh \ - $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc_sol2 "$(tdir_elf32_sparc_sol2)" -eelf32_sparc_vxworks.c: $(srcdir)/emulparams/elf32_sparc_vxworks.sh \ - $(srcdir)/emulparams/vxworks.sh $(srcdir)/emulparams/elf32_sparc.sh \ - $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_sparc_vxworks "$(tdir_elf32_sparc_vxworks)" -eelf32_spu.c: $(srcdir)/emulparams/elf32_spu.sh $(srcdir)/emultempl/spuelf.em \ - $(srcdir)/emultempl/spu_ovl.@OBJEXT@_c $(srcdir)/emultempl/spu_icache.@OBJEXT@_c \ - ldemul-list.h \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_spu "$(tdir_elf32_spu)" -$(srcdir)/emultempl/spu_ovl.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_ovl.S - if ../gas/as-new --version \ - | grep 'target.*spu' >/dev/null 2>/dev/null; then \ - cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_ovl.S spu_ovl.s; \ - ../gas/as-new -o spu_ovl.@OBJEXT@ spu_ovl.s; \ - ../binutils/bin2c $@; \ - fi -$(srcdir)/emultempl/spu_icache.@OBJEXT@_c: @MAINT@ $(srcdir)/emultempl/spu_icache.S - if ../gas/as-new --version \ - | grep 'target.*spu' >/dev/null 2>/dev/null; then \ - cpp -DOVLY_IRQ_SAVE $(srcdir)/emultempl/spu_icache.S spu_icache.s; \ - ../gas/as-new -o spu_icache.@OBJEXT@ spu_icache.s; \ - ../binutils/bin2c $@; \ - fi -eelf32_i860.c: $(srcdir)/emulparams/elf32_i860.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_i860 "$(tdir_elf32_i860)" -eelf32_i960.c: $(srcdir)/emulparams/elf32_i960.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32_i960 "$(tdir_elf32_i960)" -eelf32b4300.c: $(srcdir)/emulparams/elf32b4300.sh \ - $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32b4300 "$(tdir_elf32b4300)" -eelf32cr16.c: $(srcdir)/emulparams/elf32cr16.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/cr16elf.em \ - $(srcdir)/scripttempl/elf32cr16.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32cr16 "$(tdir_elf32crx)" -eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + ${GENSCRIPTS} elf32bfin "$(tdir_elf32bfin)" bfin +eelf32bfinfd.c: $(srcdir)/emulparams/elf32bfinfd.sh $(srcdir)/emulparams/bfin.sh \ $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32bfinfd "$(tdir_elf32bfinfd)" elf32bfinfd eelf32bmip.c: $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32bmip "$(tdir_elf32bmip)" +eelf32bmipn32.c: $(srcdir)/emulparams/elf32bmipn32.sh \ + $(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)" eelf32bsmip.c: $(srcdir)/emulparams/elf32bsmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) $(srcdir)/emultempl/irix.em \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -2353,24 +2307,22 @@ eelf32btsmip.c: $(srcdir)/emulparams/elf32btsmip.sh \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ - $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32btsmipn32.c: $(srcdir)/emulparams/elf32btsmipn32.sh \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" -eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ - $(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)" +eelf32cr16.c: $(srcdir)/emulparams/elf32cr16.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/cr16elf.em \ + $(srcdir)/scripttempl/elf32cr16.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16 "$(tdir_elf32crx)" +eelf32cr16c.c: $(srcdir)/emulparams/elf32cr16c.sh \ + $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf32cr16c.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32cr16c "$(tdir_elf32cr16c)" +eelf32crx.c: $(srcdir)/emulparams/elf32crx.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/crxelf.em \ + $(srcdir)/scripttempl/elf32crx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32crx "$(tdir_elf32crx)" eelf32ebmip.c: $(srcdir)/emulparams/elf32ebmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -2390,36 +2342,44 @@ eelf32elmipvxworks.c: $(srcdir)/emulparams/elf32elmipvxworks.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)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32bmipn32 "$(tdir_elf32bmipn32)" +eelf32fr30.c: $(srcdir)/emulparams/elf32fr30.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32fr30 "$(tdir_fr30)" +eelf32frv.c: $(srcdir)/emulparams/elf32frv.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32frv "$(tdir_frv)" +eelf32frvfd.c: $(srcdir)/emulparams/elf32frvfd.sh \ + $(srcdir)/emulparams/elf32frv.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32frvfd "$(tdir_frv)" +eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" +eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" +eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" +eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" eelf32l4300.c: $(srcdir)/emulparams/elf32l4300.sh \ $(srcdir)/emulparams/elf32b4300.sh $(srcdir)/emulparams/elf32bmip.sh \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32l4300 "$(tdir_elf32l4300)" +eelf32lm32.c: $(srcdir)/emulparams/elf32lm32.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lm32 "$(tdir_elf32lm32)" +eelf32lm32fd.c: $(srcdir)/emulparams/elf32lm32fd.sh \ + $(srcdir)/emulparams/elf32lm32.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32lm32fd "$(tdir_elf32lm32fd)" eelf32lmip.c: $(srcdir)/emulparams/elf32lmip.sh \ $(srcdir)/emulparams/elf32bmip.sh $(ELF_DEPS) \ $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32lmip "$(tdir_elf32lmip)" -eelf32mb_linux.c: $(srcdir)/emulparams/elf32mb_linux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mb_linux "$(tdir_microblaze)" -eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32microblaze "$(tdir_microblaze)" -eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" -eelf32m32c.c: $(srcdir)/emulparams/elf32m32c.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32m32c "$(tdir_m32c)" -eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32mt "$(tdir_mt)" eelf32lppc.c: $(srcdir)/emulparams/elf32lppc.sh \ $(srcdir)/emulparams/elf32ppccommon.sh \ $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emultempl/ppc32elf.em \ @@ -2438,25 +2398,46 @@ eelf32lppcsim.c: $(srcdir)/emulparams/elf32lppcsim.sh \ ldemul-list.h \ $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" -eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ - $(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 $(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 \ $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} elf32lsmip "$(tdir_elf32lsmip)" +eelf32ltsmip.c: $(srcdir)/emulparams/elf32ltsmip.sh \ + $(srcdir)/emulparams/elf32btsmip.sh $(srcdir)/emulparams/elf32bmip.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} elf32ltsmip "$(tdir_elf32ltsmip)" +eelf32ltsmipn32.c: $(srcdir)/emulparams/elf32ltsmipn32.sh \ + $(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)" +eelf32m32c.c: $(srcdir)/emulparams/elf32m32c.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32m32c "$(tdir_m32c)" +eelf32mb_linux.c: $(srcdir)/emulparams/elf32mb_linux.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mb_linux "$(tdir_microblaze)" +eelf32mcore.c: $(srcdir)/emulparams/elf32mcore.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mcore "$(tdir_mcore)" +eelf32mep.c: $(srcdir)/emulparams/elf32mep.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/mep.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mep "$(tdir_mep)" +eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32microblaze "$(tdir_microblaze)" +eelf32mipswindiss.c: $(srcdir)/emulparams/elf32mipswindiss.sh $(ELF_DEPS) \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mipswindiss "$(tdir_elf32mipswindiss)" +eelf32moxie.c: $(srcdir)/emulparams/elf32moxie.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32moxie "$(tdir_moxie)" +eelf32mt.c: $(srcdir)/emulparams/elf32mt.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32mt "$(tdir_mt)" eelf32openrisc.c: $(srcdir)/emulparams/elf32openrisc.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32openrisc "$(tdir_openrisc)" @@ -2471,141 +2452,62 @@ eelf32ppc_fbsd.c: $(srcdir)/emulparams/elf32ppc_fbsd.sh \ ldemul-list.h \ $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(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 $(ELF_DEPS) \ - ldemul-list.h \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" -eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ - ldemul-list.h \ - $(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 \ - ldemul-list.h \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" -eelf32i370.c: $(srcdir)/emulparams/elf32i370.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elfi370.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32i370 "$(tdir_elf32i370)" -eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" -eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" -eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" -eelf32lm32.c: $(srcdir)/emulparams/elf32lm32.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32lm32 "$(tdir_elf32lm32)" -eelf32lm32fd.c: $(srcdir)/emulparams/elf32lm32fd.sh \ - $(srcdir)/emulparams/elf32lm32.sh $(ELF_DEPS) \ - $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf32lm32fd "$(tdir_elf32lm32fd)" -eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + ldemul-list.h \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64alpha_fbsd "$(tdir_elf64alpha_fbsd)" -eelf64alpha_nbsd.c: $(srcdir)/emulparams/elf64alpha_nbsd.sh \ - $(srcdir)/emulparams/elf64alpha.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + ${GENSCRIPTS} elf32ppclinux "$(tdir_elf32ppclinux)" +eelf32ppcnto.c: $(srcdir)/emulparams/elf32ppcnto.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ + ldemul-list.h \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" -eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf64hppa.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" -eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" -eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ - $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ - $(srcdir)/emultempl/needrelax.em \ + ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" +eelf32ppcsim.c: $(srcdir)/emulparams/elf32ppcsim.sh \ + $(srcdir)/emulparams/elf32ppc.sh $(srcdir)/emulparams/elf32ppccommon.sh \ + $(srcdir)/emultempl/ppc32elf.em $(ELF_DEPS) \ + ldemul-list.h \ $(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 \ - $(ELF_DEPS) $(srcdir)/emultempl/ia64elf.em \ - $(srcdir)/emultempl/needrelax.em \ + ${GENSCRIPTS} elf32ppcsim "$(tdir_elf32ppcsim)" +eelf32ppcvxworks.c: $(srcdir)/emulparams/elf32ppcvxworks.sh \ + $(srcdir)/emulparams/elf32ppccommon.sh $(srcdir)/emulparams/vxworks.sh \ + $(srcdir)/emultempl/vxworks.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_ia64_fbsd "$(tdir_elf64_ia64_fbsd)" -eelf64_s390.c: $(srcdir)/emulparams/elf64_s390.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" -eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ - $(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 \ + ${GENSCRIPTS} elf32ppcvxworks "$(tdir_elf32ppcvxworks)" +eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" -eelf64_sparc_sol2.c: $(srcdir)/emulparams/elf64_sparc_sol2.sh \ - $(srcdir)/emulparams/elf64_sparc.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em \ + ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" +eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32rx "$(tdir_elf32rx)" +eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64_sparc_sol2 "$(tdir_elf64_sparc_sol2)" -eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ - $(srcdir)/emulparams/elf64bmip-defs.sh \ - $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/irix.em $(srcdir)/emultempl/mipself.em \ + ${GENSCRIPTS} elf32vax "$(tdir_elf32vax)" +eelf32xc16x.c: $(srcdir)/emulparams/elf32xc16x.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64bmip "$(tdir_elf64bmip)" -eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ - $(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/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/elf64bmip-defs.sh \ - $(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/elf64bmip-defs.sh \ - $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ - $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" + ${GENSCRIPTS} elf32xc16x "$(tdir_xc16x)" +eelf32xc16xl.c: $(srcdir)/emulparams/elf32xc16xl.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xc16xl "$(tdir_xc16xl)" +eelf32xc16xs.c: $(srcdir)/emulparams/elf32xc16xs.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xc16xs "$(tdir_xc16xs)" +eelf32xstormy16.c: $(srcdir)/emulparams/elf32xstormy16.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/needrelax.em \ + $(srcdir)/scripttempl/xstormy16.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32xstormy16 "$(tdir_xstormy16)" +eelf32xtensa.c: $(srcdir)/emulparams/elf32xtensa.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)" eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)" -eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" -eelf_x86_64_sol2.c: $(srcdir)/emulparams/elf_x86_64_sol2.sh \ - $(srcdir)/emulparams/elf_x86_64.sh \ - $(srcdir)/emulparams/solaris2.sh \ - $(srcdir)/emultempl/solaris2.em \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_x86_64_sol2 "$(tdir_elf_x86_64_sol2)" -eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)" -eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ - $(srcdir)/emulparams/elf_l1om.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)" @@ -2640,47 +2542,47 @@ egld960coff.c: $(srcdir)/emulparams/gld960coff.sh \ eh8300.c: $(srcdir)/emulparams/h8300.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300 "$(tdir_h8300)" +eh8300elf.c: $(srcdir)/emulparams/h8300elf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" eh8300h.c: $(srcdir)/emulparams/h8300h.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300h.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300h "$(tdir_h8300h)" -eh8300s.c: $(srcdir)/emulparams/h8300s.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300s.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300s "$(tdir_h8300s)" +eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ + $(srcdir)/emulparams/h8300elf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" eh8300hn.c: $(srcdir)/emulparams/h8300hn.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300hn.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300hn "$(tdir_h8300hn)" -eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300sn "$(tdir_h8300sn)" -eh8300sx.c: $(srcdir)/emulparams/h8300sx.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sx.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300sx "$(tdir_h8300sx)" -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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300elf "$(tdir_h8300elf)" -eh8300helf.c: $(srcdir)/emulparams/h8300helf.sh \ +eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300helf "$(tdir_h8300helf)" + ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" +eh8300s.c: $(srcdir)/emulparams/h8300s.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300s.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300s "$(tdir_h8300s)" eh8300self.c: $(srcdir)/emulparams/h8300self.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300self "$(tdir_h8300self)" -eh8300hnelf.c: $(srcdir)/emulparams/h8300hnelf.sh \ - $(srcdir)/emulparams/h8300elf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} h8300hnelf "$(tdir_h8300hnelf)" +eh8300sn.c: $(srcdir)/emulparams/h8300sn.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sn.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sn "$(tdir_h8300sn)" eh8300snelf.c: $(srcdir)/emulparams/h8300snelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300snelf "$(tdir_h8300snelf)" +eh8300sx.c: $(srcdir)/emulparams/h8300sx.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sx.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sx "$(tdir_h8300sx)" eh8300sxelf.c: $(srcdir)/emulparams/h8300sxelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} h8300sxelf "$(tdir_h8300sxelf)" +eh8300sxn.c: $(srcdir)/emulparams/h8300sxn.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/h8300sxn.sc ${GEN_DEPENDS} + ${GENSCRIPTS} h8300sxn "$(tdir_h8300sxn)" eh8300sxnelf.c: $(srcdir)/emulparams/h8300sxnelf.sh \ $(srcdir)/emulparams/h8300elf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -2723,9 +2625,6 @@ ehppaobsd.c: $(srcdir)/emulparams/hppaobsd.sh \ $(ELF_DEPS) $(srcdir)/emultempl/hppaelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} hppaobsd "$(tdir_hppaobsd)" -ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ - $(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} ${GENSCRIPTS} i386aout "$(tdir_i386aout)" @@ -2777,6 +2676,18 @@ ei386pep.c: $(srcdir)/emulparams/i386pep.sh \ elnk960.c: $(srcdir)/emulparams/lnk960.sh \ $(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS} ${GENSCRIPTS} lnk960 "$(tdir_lnk960)" +em32relf.c: $(srcdir)/emulparams/m32relf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32relf "$(tdir_m32r)" +em32relf_linux.c: $(srcdir)/emulparams/m32relf_linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32relf_linux "$(tdir_m32relf_linux)" +em32rlelf.c: $(srcdir)/emulparams/m32rlelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32rlelf "$(tdir_m32rlelf)" +em32rlelf_linux.c: $(srcdir)/emulparams/m32rlelf_linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} m32rlelf_linux "$(tdir_m32rlelf_linux)" em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \ $(srcdir)/emultempl/m68hc1xelf.em $(ELF_DEPS) \ $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS} @@ -2852,21 +2763,17 @@ emipslnews.c: $(srcdir)/emulparams/mipslnews.sh \ emipspe.c: $(srcdir)/emulparams/mipspe.sh $(srcdir)/emultempl/pe.em \ $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} mipspe "$(tdir_mipspe)" +emn10200.c: $(srcdir)/emulparams/mn10200.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emn10300.c: $(srcdir)/emulparams/mn10300.sh \ $(srcdir)/emulparams/mn10200.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10300 "$(tdir_mn10300)" -emn10200.c: $(srcdir)/emulparams/mn10200.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" emsp430x110.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" msp430all -emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1101.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -2875,6 +2782,10 @@ emsp430x1111.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" msp430all +emsp430x112.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" msp430all emsp430x1121.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -2891,14 +2802,14 @@ emsp430x122.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" msp430all -emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1222.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" msp430all +emsp430x123.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" msp430all emsp430x1232.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -2907,14 +2818,14 @@ emsp430x133.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" msp430all -emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1331.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" msp430all +emsp430x135.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" msp430all emsp430x1351.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -2943,18 +2854,6 @@ emsp430x157.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" msp430all -emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all -emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all -emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x1610.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -2967,6 +2866,18 @@ emsp430x1612.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430x1612 "$(tdir_msp430x1612)" msp430all +emsp430x167.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" msp430all +emsp430x168.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" msp430all +emsp430x169.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" msp430all emsp430x2101.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -3022,19 +2933,43 @@ emsp430x337.c: $(srcdir)/emulparams/msp430all.sh \ emsp430x412.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all -emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" msp430all +emsp430x413.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all +emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all +emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all +emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all +emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all +emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ + $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all +emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" msp430all -emsp430x415.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all +emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x415 "$(tdir_msp430x415)" msp430all -emsp430x417.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all +emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x417 "$(tdir_msp430x417)" msp430all + ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all emsp430xE423.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -3047,18 +2982,6 @@ emsp430xE427.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xE427 "$(tdir_msp430xE427)" msp430all -emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all -emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all -emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all emsp430xG437.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} @@ -3071,30 +2994,18 @@ emsp430xG439.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} ${GENSCRIPTS} msp430xG439 "$(tdir_msp430xG439)" msp430all -emsp430x435.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" msp430all -emsp430x436.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" msp430all -emsp430x437.c: $(srcdir)/emulparams/msp430all.sh \ - $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ - ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" msp430all -emsp430x447.c: $(srcdir)/emulparams/msp430all.sh \ +emsp430xW423.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" msp430all -emsp430x448.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430xW423 "$(tdir_msp430xW423)" msp430all +emsp430xW425.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" msp430all -emsp430x449.c: $(srcdir)/emulparams/msp430all.sh \ + ${GENSCRIPTS} msp430xW425 "$(tdir_msp430xW425)" msp430all +emsp430xW427.c: $(srcdir)/emulparams/msp430all.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf32msp430.sc \ ${GEN_DEPENDS} - ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" msp430all + ${GENSCRIPTS} msp430xW427 "$(tdir_msp430xW427)" msp430all enews.c: $(srcdir)/emulparams/news.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} news "$(tdir_news)" @@ -3120,6 +3031,9 @@ epjelf.c: $(srcdir)/emulparams/pjelf.sh \ epjlelf.c: $(srcdir)/emulparams/pjlelf.sh $(srcdir)/emulparams/pjelf.sh \ $(ELF_GEN_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} pjlelf "$(tdir_pjlelf)" +eppclynx.c: $(srcdir)/emulparams/ppclynx.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} ppclynx "$(tdir_ppclynx)" eppcmacos.c: $(srcdir)/emulparams/ppcmacos.sh \ $(srcdir)/emultempl/aix.em $(srcdir)/scripttempl/aix.sc ${GEN_DEPENDS} ${GENSCRIPTS} ppcmacos "$(tdir_ppcmacos)" @@ -3129,9 +3043,6 @@ eppcnw.c: $(srcdir)/emulparams/ppcnw.sh \ 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 \ - $(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} ${GENSCRIPTS} riscix "$(tdir_riscix)" @@ -3166,26 +3077,13 @@ eshelf32_nbsd.c: $(srcdir)/emulparams/shelf32_nbsd.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf32_nbsd "$(tdir_shelf32_nbsd)" -eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ - $(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 \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" eshelf_fd.c: $(srcdir)/emulparams/shelf_fd.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_fd "$(tdir_shelf_fd)" -eshlelf_fd.c: $(srcdir)/emulparams/shlelf_fd.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_fd "$(tdir_shlelf_fd)" eshelf_linux.c: $(srcdir)/emulparams/shelf_linux.sh \ $(srcdir)/emulparams/shlelf_linux.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_linux "$(tdir_shelf_linux)" -eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ - $(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 \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -3193,34 +3091,21 @@ eshelf_nbsd.c: $(srcdir)/emulparams/shelf_nbsd.sh \ eshelf_nto.c: $(srcdir)/emulparams/shelf_nto.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shelf_nto "$(tdir_shelf_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)" eshelf_vxworks.c: $(srcdir)/emulparams/shelf_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc \ $(srcdir)/emultempl/vxworks.em ${GEN_DEPENDS} ${GENSCRIPTS} shelf_vxworks "$(tdir_shelf_vxworks)" -eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ - $(srcdir)/emulparams/shelf_nbsd.sh \ - $(srcdir)/emulparams/shelf.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" -eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" -eshlelf_vxworks.c: $(srcdir)/emulparams/shlelf_vxworks.sh \ - $(srcdir)/emulparams/shelf_vxworks.sh $(srcdir)/emulparams/vxworks.sh \ - $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/vxworks.em \ - ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf_vxworks "$(tdir_shlelf_vxworks)" -eshelf_uclinux.c: $(srcdir)/emulparams/shelf_uclinux.sh \ - $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shelf_uclinux "$(tdir_shelf_uclinux)" +eshl.c: $(srcdir)/emulparams/shl.sh \ + $(srcdir)/emulparams/sh.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shl "$(tdir_shl)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf "$(tdir_shlelf)" -eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ - $(srcdir)/emulparams/shelf.sh \ - $(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 \ @@ -3238,19 +3123,29 @@ eshlelf32_nbsd.c: $(srcdir)/emulparams/shlelf32_nbsd.sh \ $(srcdir)/emultempl/sh64elf.em $(INCDIR)/elf/sh.h $(BFDDIR)/elf-bfd.h \ $(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 \ +eshlelf_fd.c: $(srcdir)/emulparams/shlelf_fd.sh \ $(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 \ + ${GENSCRIPTS} shlelf_fd "$(tdir_shlelf_fd)" +eshlelf_linux.c: $(srcdir)/emulparams/shlelf_linux.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" -eshl.c: $(srcdir)/emulparams/shl.sh \ - $(srcdir)/emulparams/sh.sh \ - $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/sh.sc ${GEN_DEPENDS} - ${GENSCRIPTS} shl "$(tdir_shl)" + ${GENSCRIPTS} shlelf_linux "$(tdir_shlelf_linux)" +eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ + $(srcdir)/emulparams/shelf_nbsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nbsd "$(tdir_shlelf_nbsd)" +eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshlelf_vxworks.c: $(srcdir)/emulparams/shlelf_vxworks.sh \ + $(srcdir)/emulparams/shelf_vxworks.sh $(srcdir)/emulparams/vxworks.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/vxworks.em \ + ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_vxworks "$(tdir_shlelf_vxworks)" +eshlsymbian.c: $(srcdir)/emulparams/shlsymbian.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf32sh-symbian.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlsymbian "$(tdir_shlelf)" eshpe.c: $(srcdir)/emulparams/shpe.sh \ $(srcdir)/emultempl/pe.em $(srcdir)/scripttempl/pe.sc ${GEN_DEPENDS} ${GENSCRIPTS} shpe "$(tdir_shl)" @@ -3293,6 +3188,9 @@ etic54xcoff.c: $(srcdir)/emulparams/tic54xcoff.sh \ etic80coff.c: $(srcdir)/emulparams/tic80coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic80coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic80coff "$(tdir_tic80coff)" +ev850.c: $(srcdir)/emulparams/v850.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/v850.sc ${GEN_DEPENDS} + ${GENSCRIPTS} v850 "$(tdir_v850)" evanilla.c: $(srcdir)/emulparams/vanilla.sh \ $(srcdir)/emultempl/vanilla.em $(srcdir)/scripttempl/vanilla.sc ${GEN_DEPENDS} ${GENSCRIPTS} vanilla "$(tdir_vanilla)" @@ -3305,9 +3203,6 @@ evaxnbsd.c: $(srcdir)/emulparams/vaxnbsd.sh \ 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 \ - $(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} ${GENSCRIPTS} w65 "$(tdir_w65)" @@ -3322,6 +3217,130 @@ ez8002.c: $(srcdir)/emulparams/z8002.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/z8000.sc ${GEN_DEPENDS} ${GENSCRIPTS} z8002 "$(tdir_z8002)" +eelf32_x86_64.c: $(srcdir)/emulparams/elf32_x86_64.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32_x86_64 "$(tdir_elf32_x86_64)" +eelf64_aix.c: $(srcdir)/emulparams/elf64_aix.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_aix "$(tdir_elf64_aix)" +eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \ + $(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 \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_s390 "$(tdir_elf64_s390)" +eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_fbsd "$(tdir_elf64_sparc_fbsd)" +eelf64_sparc_sol2.c: $(srcdir)/emulparams/elf64_sparc_sol2.sh \ + $(srcdir)/emulparams/elf64_sparc.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64_sparc_sol2 "$(tdir_elf64_sparc_sol2)" +eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ + $(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 \ + $(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 \ + $(ELF_DEPS) $(srcdir)/emultempl/alphaelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64alpha_nbsd "$(tdir_elf64alpha_nbsd)" +eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(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)" +eelf64btsmip.c: $(srcdir)/emulparams/elf64btsmip.sh \ + $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64btsmip "$(tdir_elf64btsmip)" +eelf64hppa.c: $(srcdir)/emulparams/elf64hppa.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf64hppa.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64hppa "$(tdir_elf64hppa)" +eelf64lppc.c: $(srcdir)/emulparams/elf64lppc.sh \ + $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)" +eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \ + $(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \ + $(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \ + $(srcdir)/emultempl/mipself.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ltsmip "$(tdir_elf64ltsmip)" +eelf64mmix.c: $(srcdir)/emulparams/elf64mmix.sh \ + $(ELF_DEPS) $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(srcdir)/emultempl/mmixelf.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64mmix "$(tdir_elf64mmix)" +eelf64ppc.c: $(srcdir)/emulparams/elf64ppc.sh $(srcdir)/emultempl/ppc64elf.em \ + ldemul-list.h \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)" +eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)" +eelf_l1om_fbsd.c: $(srcdir)/emulparams/elf_l1om_fbsd.sh \ + $(srcdir)/emulparams/elf_l1om.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)" +eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_x86_64_fbsd "$(tdir_elf_x86_64_fbsd)" +eelf_x86_64_sol2.c: $(srcdir)/emulparams/elf_x86_64_sol2.sh \ + $(srcdir)/emulparams/elf_x86_64.sh \ + $(srcdir)/emulparams/solaris2.sh \ + $(srcdir)/emultempl/solaris2.em \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_x86_64_sol2 "$(tdir_elf_x86_64_sol2)" +ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)" +emmo.c: $(srcdir)/emulparams/mmo.sh $(srcdir)/emultempl/mmix-elfnmmo.em \ + $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em \ + $(srcdir)/emultempl/mmo.em \ + $(srcdir)/scripttempl/mmo.sc ${GEN_DEPENDS} + ${GENSCRIPTS} mmo "$(tdir_mmo)" +eshelf64.c: $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf64_nbsd "$(tdir_shelf64_nbsd)" +eshlelf64.c: $(srcdir)/emulparams/shlelf64.sh \ + $(srcdir)/emulparams/shelf64.sh $(srcdir)/emulparams/shelf32.sh \ + $(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 \ + $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf64_nbsd "$(tdir_shlelf64_nbsd)" + check-DEJAGNU: site.exp srcroot=`cd $(srcdir) && pwd`; export srcroot; \ r=`pwd`; export r; \ diff --git a/ld/configure b/ld/configure index 088c721de77..a24284064f4 100755 --- a/ld/configure +++ b/ld/configure @@ -638,6 +638,7 @@ INCINTL LIBINTL_DEP LIBINTL USE_NLS +CXXCPP OTOOL64 OTOOL LIPO @@ -654,6 +655,12 @@ LD FGREP SED LIBTOOL +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX NO_WERROR WARN_CFLAGS EGREP @@ -788,6 +795,10 @@ LDFLAGS LIBS CPPFLAGS CPP +CXX +CXXFLAGS +CCC +CXXCPP YACC YFLAGS' @@ -1446,6 +1457,9 @@ Some influential environment variables: CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor YACC The `Yet Another C Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. @@ -1653,6 +1667,44 @@ fi } # ac_fn_c_try_cpp +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval + +} # ac_fn_cxx_try_compile + # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using @@ -1880,6 +1932,89 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_func +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + return $ac_retval + +} # ac_fn_cxx_try_link + # ac_fn_c_check_decl LINENO SYMBOL VAR # ------------------------------------ # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. @@ -5124,168 +5259,402 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then : +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - ac_cv_header_stdc=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no + test -n "$CXX" && break + done fi -rm -f conftest* +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : + test -n "$ac_ct_CXX" && break +done -else - ac_cv_header_stdc=no + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi fi -rm -f conftest* + fi fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + rm -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; +#ifndef __GNUC__ + choke me +#endif + + ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_compiler_gnu=no fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -fi +int +main () +{ -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 + ; + return 0; +} _ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ -fi +int +main () +{ -done + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main () +{ - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = x""yes; then : - MINIX=yes + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi else - MINIX= + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +depcc="$CXX" am_compiler_list= - if test "$MINIX" = yes; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi -$as_echo "#define _MINIX 1" >>confdefs.h +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - fi + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +#include +#include +#include -# define __EXTENSIONS__ 1 - $ac_includes_default int main () { @@ -5295,36 +5664,186 @@ main () } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes + ac_cv_header_stdc=yes else - ac_cv_safe_to_define___extensions__=no + ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no +fi +rm -f conftest* -# The tests for host and target for $enable_largefile require -# canonical names. +fi +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : -# As the $enable_largefile decision depends on --enable-plugins we must set it -# even in directories otherwise not depending on the $plugins option. +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = x""yes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "#define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + + + + +# The tests for host and target for $enable_largefile require +# canonical names. + + + +# As the $enable_largefile decision depends on --enable-plugins we must set it +# even in directories otherwise not depending on the $plugins option. # Check whether --enable-plugins was given. @@ -8141,6 +8660,7 @@ done + # Set options @@ -11622,7 +12142,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11625 "configure" +#line 12145 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11728,7 +12248,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11731 "configure" +#line 12251 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11769,75 +12289,3109 @@ else # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -void fnord () __attribute__((visibility("default"))); -#endif +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +void fnord () __attribute__((visibility("default"))); +#endif + +void fnord () { int i=42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_CXX" >&6; } + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if test "${lt_cv_archive_cmds_need_lc_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + -void fnord () { int i=42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$lt_cv_dlopen_self_static" >&6; } - fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" - ;; - esac - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi @@ -11855,35 +15409,6 @@ fi -striplib= -old_striplib= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP" ; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - ;; - esac -fi @@ -11896,55 +15421,69 @@ fi - # Report which library types will actually be built - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi - aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no - fi - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } -fi + + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -CC="$lt_save_CC" - @@ -13430,6 +16969,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -14155,6 +17698,61 @@ enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_sub enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' @@ -14227,7 +17825,40 @@ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ -striplib; do +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_flag_spec_ld_CXX \ +hardcode_libdir_separator_CXX \ +fix_srcfile_path_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" @@ -14256,7 +17887,17 @@ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do +sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" @@ -14286,6 +17927,8 @@ fi + + # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. @@ -15075,7 +18718,7 @@ $as_echo X"$file" | # The names of the tagged configurations supported by this script. -available_tags="" +available_tags="CXX " # ### BEGIN LIBTOOL CONFIG @@ -15431,6 +19074,20 @@ file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + # ### END LIBTOOL CONFIG _LT_EOF @@ -15664,6 +19321,163 @@ _LT_EOF (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + ;; "default-1":C) for ac_file in $CONFIG_FILES; do diff --git a/ld/configure.in b/ld/configure.in index 85fe903d3b1..2ebdb4304db 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -131,6 +131,7 @@ fi # host-specific stuff: AC_PROG_CC +AC_PROG_CXX AC_GNU_SOURCE AC_USE_SYSTEM_EXTENSIONS ACX_LARGEFILE diff --git a/ld/emulparams/elf32mcore.sh b/ld/emulparams/elf32mcore.sh index 60479501bc9..512a9b0f3a7 100644 --- a/ld/emulparams/elf32mcore.sh +++ b/ld/emulparams/elf32mcore.sh @@ -49,11 +49,6 @@ PARSE_AND_LIST_ARGS_CASES=' case OPTION_BASE_FILE: link_info.base_file = fopen (optarg, FOPEN_WB); if (link_info.base_file == NULL) - { - /* xgettext:c-format */ - fprintf (stderr, _("%s: Cannot open base file %s\n"), - program_name, optarg); - xexit (1); - } + einfo (_("%F%P: cannot open base file %s\n"), optarg); break; ' diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em index 4dc36c30509..60c4fc651d3 100644 --- a/ld/emultempl/aix.em +++ b/ld/emultempl/aix.em @@ -608,6 +608,8 @@ gld${EMULATION_NAME}_after_open (void) bfd_boolean r; struct set_info *p; + after_open_default (); + /* Call ldctor_build_sets, after pretending that this is a relocatable link. We do this because AIX requires relocation entries for all references to symbols, even in a final @@ -1426,7 +1428,7 @@ gld${EMULATION_NAME}_open_dynamic_archive (const char *arch, { char *path; - if (!entry->is_archive) + if (!entry->maybe_archive) return FALSE; path = concat (search->name, "/lib", entry->filename, arch, ".a", NULL); diff --git a/ld/emultempl/armcoff.em b/ld/emultempl/armcoff.em index b3cdde90acd..20bff145c5e 100644 --- a/ld/emultempl/armcoff.em +++ b/ld/emultempl/armcoff.em @@ -133,6 +133,8 @@ gld${EMULATION_NAME}_before_allocation (void) static void gld${EMULATION_NAME}_after_open (void) { + after_open_default (); + if (strstr (bfd_get_target (link_info.output_bfd), "arm") == NULL) { /* The arm backend needs special fields in the output hash structure. diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em index 370dbacd0b3..6dc63754160 100644 --- a/ld/emultempl/beos.em +++ b/ld/emultempl/beos.em @@ -8,7 +8,7 @@ fi fragment <exp = exp_assign ("__image_base__", + exp_intop (pe.ImageBase)); } if (pe_def_file->stack_reserve != -1 @@ -2086,7 +2083,7 @@ gld_${EMULATION_NAME}_open_dynamic_archive unsigned int i; - if (! entry->is_archive) + if (! entry->maybe_archive) return FALSE; filename = entry->filename; diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index 39daa079c08..90793ea9b63 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -8,7 +8,7 @@ fi rm -f e${EMULATION_NAME}.c (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-) fragment <exp = exp_assign ("__image_base__", + exp_intop (pep.ImageBase)); } if (pep_def_file->stack_reserve != -1 @@ -1824,7 +1821,7 @@ gld_${EMULATION_NAME}_open_dynamic_archive unsigned int i; - if (! entry->is_archive) + if (! entry->maybe_archive) return FALSE; filename = entry->filename; diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em index cb8e7841e8d..0c995920f4e 100644 --- a/ld/emultempl/ppc64elf.em +++ b/ld/emultempl/ppc64elf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # # This file is part of the GNU Binutils. @@ -545,6 +545,7 @@ gld${EMULATION_NAME}_finish (void) config.stats ? &msg : NULL)) einfo ("%X%P: can not build stubs: %E\n"); + fflush (stdout); for (line = msg; line != NULL; line = endline) { endline = strchr (line, '\n'); @@ -552,6 +553,7 @@ gld${EMULATION_NAME}_finish (void) *endline++ = '\0'; fprintf (stderr, "%s: %s\n", program_name, line); } + fflush (stderr); if (msg != NULL) free (msg); } diff --git a/ld/emultempl/spuelf.em b/ld/emultempl/spuelf.em index ff6785ca6e2..92f2d163d3d 100644 --- a/ld/emultempl/spuelf.em +++ b/ld/emultempl/spuelf.em @@ -1,5 +1,6 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# Copyright 2006, 2007, 2008, 2009, 2010, 2011 +# Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -164,7 +165,7 @@ spu_place_special_section (asection *s, asection *o, const char *output_name) push_stat_ptr (&os->children); e_size = exp_intop (params.line_size - s->size); - lang_add_assignment (exp_assop ('=', ".", e_size)); + lang_add_assignment (exp_assign (".", e_size)); pop_stat_ptr (); } lang_add_section (&os->children, s, os); diff --git a/ld/emultempl/sunos.em b/ld/emultempl/sunos.em index bbd60751205..567b8e24505 100644 --- a/ld/emultempl/sunos.em +++ b/ld/emultempl/sunos.em @@ -157,7 +157,7 @@ gld${EMULATION_NAME}_find_so (lang_input_statement_type *inp) struct stat st; if (! inp->search_dirs_flag - || ! inp->is_archive + || ! inp->maybe_archive || ! inp->dynamic) return; @@ -366,6 +366,8 @@ gld${EMULATION_NAME}_after_open (void) { struct bfd_link_needed_list *needed, *l; + after_open_default (); + /* We only need to worry about this when doing a final link. */ if (link_info.relocatable || link_info.shared) return; @@ -889,7 +891,7 @@ gld${EMULATION_NAME}_count_need (lang_input_statement_type *inp) { ++need_entries; need_size += NEED_ENTRY_SIZE; - if (! inp->is_archive) + if (! inp->maybe_archive) need_size += strlen (inp->filename) + 1; else { @@ -917,7 +919,7 @@ gld${EMULATION_NAME}_set_need (lang_input_statement_type *inp) referential locality. */ bfd_put_32 (link_info.output_bfd, need_pnames - need_contents, need_pinfo); - if (! inp->is_archive) + if (! inp->maybe_archive) { bfd_put_32 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 4); bfd_put_16 (link_info.output_bfd, (bfd_vma) 0, need_pinfo + 8); diff --git a/ld/emultempl/vms.em b/ld/emultempl/vms.em index f21796b83fc..fb8fd53138f 100644 --- a/ld/emultempl/vms.em +++ b/ld/emultempl/vms.em @@ -52,7 +52,7 @@ gld${EMULATION_NAME}_open_dynamic_archive (const char *arch ATTRIBUTE_UNUSED, { char *string; - if (! entry->is_archive) + if (! entry->maybe_archive) return FALSE; string = (char *) xmalloc (strlen (search->name) diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em index b7da721d9a6..b37a67b2fe7 100644 --- a/ld/emultempl/xtensaelf.em +++ b/ld/emultempl/xtensaelf.em @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation, Inc. # # This file is part of the GNU Binutils. @@ -1817,8 +1817,10 @@ ld_local_file_relocations_fit (lang_statement_union_type *statement, bfd_vma target_addr = e->tgt->output_offset & ~3; if (l32r_addr < target_addr) { + fflush (stdout); fprintf (stderr, "Warning: " "l32r target section before l32r\n"); + fflush (stderr); return FALSE; } @@ -1885,7 +1887,7 @@ ld_xtensa_insert_page_offsets (bfd_vma dot, etree_type *name_op = exp_nameop (NAME, "."); etree_type *addend_op = exp_intop (1 << xtensa_page_power); etree_type *add_op = exp_binop ('+', name_op, addend_op); - etree_type *assign_op = exp_assop ('=', ".", add_op); + etree_type *assign_op = exp_assign (".", add_op); lang_assignment_statement_type *assign_stmt; lang_statement_union_type *assign_union; diff --git a/ld/emultempl/z80.em b/ld/emultempl/z80.em index 100ebd0eb95..eeb32138f35 100644 --- a/ld/emultempl/z80.em +++ b/ld/emultempl/z80.em @@ -79,6 +79,8 @@ gldz80_after_open (void) { unsigned long mach_type; + after_open_default (); + switch (result_mach_type) { case M_Z80STRICT: diff --git a/ld/ld.h b/ld/ld.h index aa0979d6f27..fa3c6c2a654 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -291,6 +291,10 @@ typedef struct { on the command line. */ bfd_boolean only_cmd_line_lib_dirs; + /* If set, numbers and absolute symbols are simply treated as + numbers everywhere. */ + bfd_boolean sane_expr; + /* The rpath separation character. Usually ':'. */ char rpath_separator; diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 4c58e4855c9..1a9862acc62 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -3344,6 +3344,13 @@ of the names used by the BFD library (@pxref{BFD}). You can see the architecture of an object file by using the @code{objdump} program with the @samp{-f} option. @end ifclear + +@item LD_FEATURE(@var{string}) +@kindex LD_FEATURE(@var{string}) +This command may be used to modify @command{ld} behavior. If +@var{string} is @code{"SANE_EXPR"} then absolute symbols and numbers +in a script are simply treated as numbers everywhere. +@xref{Expression Section}. @end table @node Assignments @@ -5497,17 +5504,17 @@ section relative symbols and for builtin functions that return an address, such as @code{ADDR}, @code{LOADADDR}, @code{ORIGIN} and @code{SEGMENT_START}. Other terms are simply numbers, or are builtin functions that return a non-address value, such as @code{LENGTH}. - -When the linker evaluates an expression, the result depends on where -the expression is located in a linker script. Expressions appearing -outside an output section definitions are evaluated with all terms -first being converted to absolute addresses before applying operators, -and evaluate to an absolute address result. Expressions appearing -inside an output section definition are evaluated with more complex -rules, but the aim is to treat terms as relative addresses and produce -a relative address result. In particular, an assignment of a number -to a symbol results in a symbol relative to the output section with an -offset given by the number. So, in the following simple example, +One complication is that unless you set @code{LD_FEATURE ("SANE_EXPR")} +(@pxref{Miscellaneous Commands}), numbers and absolute symbols are treated +differently depending on their location, for compatibility with older +versions of @code{ld}. Expressions appearing outside an output +section definition treat all numbers as absolute addresses. +Expressions appearing inside an output section definition treat +absolute symbols as numbers. If @code{LD_FEATURE ("SANE_EXPR")} is +given, then absolute symbols and numbers are simply treated as numbers +everywhere. + +In the following simple example, @smallexample @group @@ -5531,9 +5538,8 @@ address 0x100 in the first two assignments, then both @code{.} and @code{__data_start} are set to 0x10 relative to the @code{.data} section in the second two assignments. -For expressions appearing inside an output section definition -involving numbers, relative addresses and absolute addresses, ld -follows these rules to evaluate terms: +For expressions involving numbers, relative addresses and absolute +addresses, ld follows these rules to evaluate terms: @itemize @bullet @item @@ -5555,8 +5561,13 @@ An operation involving only numbers results in a number. @item The result of comparisons, @samp{&&} and @samp{||} is also a number. @item -The result of other operations on relative addresses (after above -conversions) is a relative address in the same section as the operand(s). +The result of other binary arithmetic and logical operations on two +relative addresses in the same section or two absolute addresess +(after above conversions) is also a number. +@item +The result of other operations on relative addresses or one +relative address and a number, is a relative address in the same +section as the relative operand(s). @item The result of other operations on absolute addresses (after above conversions) is an absolute address. diff --git a/ld/ldctor.c b/ld/ldctor.c index c4fd9e8f720..1a86eb38e89 100644 --- a/ld/ldctor.c +++ b/ld/ldctor.c @@ -1,6 +1,6 @@ /* ldctor.c -- constructor support routines Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. By Steve Chamberlain @@ -319,11 +319,11 @@ ldctor_build_sets (void) break; } - lang_add_assignment (exp_assop ('=', ".", - exp_unop (ALIGN_K, - exp_intop (reloc_size)))); - lang_add_assignment (exp_assop ('=', p->h->root.string, - exp_nameop (NAME, "."))); + lang_add_assignment (exp_assign (".", + exp_unop (ALIGN_K, + exp_intop (reloc_size)))); + lang_add_assignment (exp_assign (p->h->root.string, + exp_nameop (NAME, "."))); lang_add_data (size, exp_intop (p->count)); for (e = p->elements; e != NULL; e = e->next) diff --git a/ld/ldexp.c b/ld/ldexp.c index de7f9f29bc1..fc186016484 100644 --- a/ld/ldexp.c +++ b/ld/ldexp.c @@ -1,6 +1,6 @@ /* This module handles expression trees. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support . @@ -44,7 +44,6 @@ #include "safe-ctype.h" static void exp_fold_tree_1 (etree_type *); -static void exp_fold_tree_no_dot (etree_type *); static bfd_vma align_n (bfd_vma, bfd_vma); segment_type *segments; @@ -260,20 +259,22 @@ fold_unary (etree_type *tree) break; case DATA_SEGMENT_END: - if (expld.phase != lang_first_phase_enum - && expld.section == bfd_abs_section_ptr - && (expld.dataseg.phase == exp_dataseg_align_seen - || expld.dataseg.phase == exp_dataseg_relro_seen - || expld.dataseg.phase == exp_dataseg_adjust - || expld.dataseg.phase == exp_dataseg_relro_adjust - || expld.phase == lang_final_phase_enum)) + if (expld.phase == lang_first_phase_enum + || expld.section != bfd_abs_section_ptr) { - if (expld.dataseg.phase == exp_dataseg_align_seen - || expld.dataseg.phase == exp_dataseg_relro_seen) - { - expld.dataseg.phase = exp_dataseg_end_seen; - expld.dataseg.end = expld.result.value; - } + expld.result.valid_p = FALSE; + } + else if (expld.dataseg.phase == exp_dataseg_align_seen + || expld.dataseg.phase == exp_dataseg_relro_seen) + { + expld.dataseg.phase = exp_dataseg_end_seen; + expld.dataseg.end = expld.result.value; + } + else if (expld.dataseg.phase == exp_dataseg_done + || expld.dataseg.phase == exp_dataseg_adjust + || expld.dataseg.phase == exp_dataseg_relro_adjust) + { + /* OK. */ } else expld.result.valid_p = FALSE; @@ -334,36 +335,47 @@ fold_binary (etree_type *tree) { make_abs (); lhs.value += lhs.section->vma; + lhs.section = bfd_abs_section_ptr; } /* If the rhs is just a number, keep the lhs section. */ else if (expld.result.section == NULL) - expld.result.section = lhs.section; + { + expld.result.section = lhs.section; + /* Make this NULL so that we know one of the operands + was just a number, for later tests. */ + lhs.section = NULL; + } } + /* At this point we know that both operands have the same + section, or at least one of them is a plain number. */ switch (tree->type.node_code) { - case '%': - if (expld.result.value != 0) - expld.result.value = ((bfd_signed_vma) lhs.value - % (bfd_signed_vma) expld.result.value); - else if (expld.phase != lang_mark_phase_enum) - einfo (_("%F%S %% by zero\n")); - break; - - case '/': - if (expld.result.value != 0) - expld.result.value = ((bfd_signed_vma) lhs.value - / (bfd_signed_vma) expld.result.value); - else if (expld.phase != lang_mark_phase_enum) - einfo (_("%F%S / by zero\n")); - break; - + /* Arithmetic operators, bitwise AND, bitwise OR and XOR + keep the section of one of their operands only when the + other operand is a plain number. Losing the section when + operating on two symbols, ie. a result of a plain number, + is required for subtraction and XOR. It's justifiable + for the other operations on the grounds that adding, + multiplying etc. two section relative values does not + really make sense unless they are just treated as + numbers. + The same argument could be made for many expressions + involving one symbol and a number. For example, + "1 << x" and "100 / x" probably should not be given the + section of x. The trouble is that if we fuss about such + things the rules become complex and it is onerous to + document ld expression evaluation. */ #define BOP(x, y) \ case x: \ expld.result.value = lhs.value y expld.result.value; \ + if (expld.result.section == lhs.section) \ + expld.result.section = NULL; \ break; + /* Comparison operators, logical AND, and logical OR always + return a plain number. */ #define BOPN(x, y) \ case x: \ expld.result.value = lhs.value y expld.result.value; \ @@ -387,6 +399,26 @@ fold_binary (etree_type *tree) BOPN (ANDAND, &&); BOPN (OROR, ||); + case '%': + if (expld.result.value != 0) + expld.result.value = ((bfd_signed_vma) lhs.value + % (bfd_signed_vma) expld.result.value); + else if (expld.phase != lang_mark_phase_enum) + einfo (_("%F%S %% by zero\n")); + if (expld.result.section == lhs.section) + expld.result.section = NULL; + break; + + case '/': + if (expld.result.value != 0) + expld.result.value = ((bfd_signed_vma) lhs.value + / (bfd_signed_vma) expld.result.value); + else if (expld.phase != lang_mark_phase_enum) + einfo (_("%F%S / by zero\n")); + if (expld.result.section == lhs.section) + expld.result.section = NULL; + break; + case MAX_K: if (lhs.value > expld.result.value) expld.result.value = lhs.value; @@ -403,12 +435,10 @@ fold_binary (etree_type *tree) case DATA_SEGMENT_ALIGN: expld.dataseg.relro = exp_dataseg_relro_start; - if (expld.phase != lang_first_phase_enum - && expld.section == bfd_abs_section_ptr - && (expld.dataseg.phase == exp_dataseg_none - || expld.dataseg.phase == exp_dataseg_adjust - || expld.dataseg.phase == exp_dataseg_relro_adjust - || expld.phase == lang_final_phase_enum)) + if (expld.phase == lang_first_phase_enum + || expld.section != bfd_abs_section_ptr) + expld.result.valid_p = FALSE; + else { bfd_vma maxpage = lhs.value; bfd_vma commonpage = expld.result.value; @@ -416,10 +446,20 @@ fold_binary (etree_type *tree) expld.result.value = align_n (expld.dot, maxpage); if (expld.dataseg.phase == exp_dataseg_relro_adjust) expld.result.value = expld.dataseg.base; - else if (expld.dataseg.phase != exp_dataseg_adjust) + else if (expld.dataseg.phase == exp_dataseg_adjust) + { + if (commonpage < maxpage) + expld.result.value += ((expld.dot + commonpage - 1) + & (maxpage - commonpage)); + } + else { expld.result.value += expld.dot & (maxpage - 1); - if (expld.phase == lang_allocating_phase_enum) + if (expld.dataseg.phase == exp_dataseg_done) + { + /* OK. */ + } + else if (expld.dataseg.phase == exp_dataseg_none) { expld.dataseg.phase = exp_dataseg_align_seen; expld.dataseg.min_base = expld.dot; @@ -428,22 +468,21 @@ fold_binary (etree_type *tree) expld.dataseg.maxpagesize = maxpage; expld.dataseg.relro_end = 0; } + else + expld.result.valid_p = FALSE; } - else if (commonpage < maxpage) - expld.result.value += ((expld.dot + commonpage - 1) - & (maxpage - commonpage)); } - else - expld.result.valid_p = FALSE; break; case DATA_SEGMENT_RELRO_END: expld.dataseg.relro = exp_dataseg_relro_end; - if (expld.phase != lang_first_phase_enum - && (expld.dataseg.phase == exp_dataseg_align_seen - || expld.dataseg.phase == exp_dataseg_adjust - || expld.dataseg.phase == exp_dataseg_relro_adjust - || expld.phase == lang_final_phase_enum)) + if (expld.phase == lang_first_phase_enum + || expld.section != bfd_abs_section_ptr) + expld.result.valid_p = FALSE; + else if (expld.dataseg.phase == exp_dataseg_align_seen + || expld.dataseg.phase == exp_dataseg_adjust + || expld.dataseg.phase == exp_dataseg_relro_adjust + || expld.dataseg.phase == exp_dataseg_done) { if (expld.dataseg.phase == exp_dataseg_align_seen || expld.dataseg.phase == exp_dataseg_relro_adjust) @@ -553,7 +592,9 @@ fold_name (etree_type *tree) " referenced in expression\n"), tree->name.name); } - else if (output_section == bfd_abs_section_ptr) + else if (output_section == bfd_abs_section_ptr + && (expld.section != bfd_abs_section_ptr + || config.sane_expr)) new_number (h->u.def.value + h->u.def.section->output_offset); else new_rel (h->u.def.value + h->u.def.section->output_offset, @@ -700,7 +741,11 @@ exp_fold_tree_1 (etree_type *tree) switch (tree->type.node_class) { case etree_value: - new_number (tree->value.value); + if (expld.section == bfd_abs_section_ptr + && !config.sane_expr) + new_abs (tree->value.value); + else + new_number (tree->value.value); expld.result.str = tree->value.str; break; @@ -802,7 +847,10 @@ exp_fold_tree_1 (etree_type *tree) } exp_fold_tree_1 (tree->assign.src); - if (expld.result.valid_p) + if (expld.result.valid_p + || (expld.phase == lang_first_phase_enum + && tree->type.node_class == etree_assign + && tree->assign.hidden)) { if (h == NULL) { @@ -858,12 +906,6 @@ exp_fold_tree_1 (etree_type *tree) memset (&expld.result, 0, sizeof (expld.result)); break; } - - /* Any value not inside an output section statement is an - absolute value. */ - if (expld.result.valid_p - && expld.section == bfd_abs_section_ptr) - make_abs (); } void @@ -875,7 +917,7 @@ exp_fold_tree (etree_type *tree, asection *current_section, bfd_vma *dotp) exp_fold_tree_1 (tree); } -static void +void exp_fold_tree_no_dot (etree_type *tree) { expld.dot = 0; @@ -961,37 +1003,44 @@ exp_nameop (int code, const char *name) } -etree_type * -exp_assop (int code, const char *dst, etree_type *src) -{ - etree_type *new_e; - - new_e = (etree_type *) stat_alloc (sizeof (new_e->assign)); - new_e->type.node_code = code; - new_e->type.lineno = src->type.lineno; - new_e->type.node_class = etree_assign; - new_e->assign.src = src; - new_e->assign.dst = dst; - return new_e; -} - -/* Handle PROVIDE. */ - -etree_type * -exp_provide (const char *dst, etree_type *src, bfd_boolean hidden) +static etree_type * +exp_assop (const char *dst, + etree_type *src, + enum node_tree_enum class, + bfd_boolean hidden) { etree_type *n; n = (etree_type *) stat_alloc (sizeof (n->assign)); n->assign.type.node_code = '='; n->assign.type.lineno = src->type.lineno; - n->assign.type.node_class = etree_provide; + n->assign.type.node_class = class; n->assign.src = src; n->assign.dst = dst; n->assign.hidden = hidden; return n; } +etree_type * +exp_assign (const char *dst, etree_type *src) +{ + return exp_assop (dst, src, etree_assign, FALSE); +} + +etree_type * +exp_defsym (const char *dst, etree_type *src) +{ + return exp_assop (dst, src, etree_assign, TRUE); +} + +/* Handle PROVIDE. */ + +etree_type * +exp_provide (const char *dst, etree_type *src, bfd_boolean hidden) +{ + return exp_assop (dst, src, etree_provide, hidden); +} + /* Handle ASSERT. */ etree_type * diff --git a/ld/ldexp.h b/ld/ldexp.h index a15f64a79cf..6d98e756fdd 100644 --- a/ld/ldexp.h +++ b/ld/ldexp.h @@ -1,6 +1,6 @@ /* ldexp.h - Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2007 Free Software Foundation, Inc. + 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -46,7 +46,7 @@ enum node_tree_enum { typedef struct { int node_code; unsigned int lineno; - enum node_tree_enum node_class; + enum node_tree_enum node_class; } node_type; typedef union etree_union { @@ -103,12 +103,17 @@ typedef enum { union lang_statement_union; enum phase_enum { + /* We step through the first four states here as we see the + associated linker script tokens. */ exp_dataseg_none, exp_dataseg_align_seen, exp_dataseg_relro_seen, exp_dataseg_end_seen, + /* The last three states are final, and affect the value returned + by DATA_SEGMENT_ALIGN. */ exp_dataseg_relro_adjust, - exp_dataseg_adjust + exp_dataseg_adjust, + exp_dataseg_done }; enum relro_enum { @@ -173,6 +178,8 @@ etree_type *exp_relop (asection *, bfd_vma); void exp_fold_tree (etree_type *, asection *, bfd_vma *); +void exp_fold_tree_no_dot + (etree_type *); etree_type *exp_binop (int, etree_type *, etree_type *); etree_type *exp_trinop @@ -181,8 +188,10 @@ etree_type *exp_unop (int, etree_type *); etree_type *exp_nameop (int, const char *); -etree_type *exp_assop - (int, const char *, etree_type *); +etree_type *exp_assign + (const char *, etree_type *); +etree_type *exp_defsym + (const char *, etree_type *); etree_type *exp_provide (const char *, etree_type *, bfd_boolean); etree_type *exp_assert diff --git a/ld/ldfile.c b/ld/ldfile.c index 6364469071f..a9a69544d33 100644 --- a/ld/ldfile.c +++ b/ld/ldfile.c @@ -313,7 +313,7 @@ success: will be needed when and if we want to bfd_create a new one using this one as a template. */ if (bfd_check_format (entry->the_bfd, bfd_object) - && plugin_active_plugins_p ()) + && plugin_active_plugins_p ()) { int fd = open (attempt, O_RDONLY | O_BINARY); if (fd >= 0) @@ -330,7 +330,7 @@ success: file.handle = plugin_get_ir_dummy_bfd (attempt, entry->the_bfd); if (plugin_call_claim_file (&file, &claimed)) einfo (_("%P%F: %s: plugin reported error claiming file\n"), - plugin_error_plugin ()); + plugin_error_plugin ()); /* fd belongs to us, not the plugin; but we don't need it. */ close (fd); if (claimed) @@ -344,7 +344,7 @@ success: else { /* If plugin didn't claim the file, we don't need the dummy - bfd. Can't avoid speculatively creating it, alas. */ + bfd. Can't avoid speculatively creating it, alas. */ bfd_close_all_done (file.handle); entry->claimed = FALSE; } @@ -370,7 +370,7 @@ ldfile_open_file_search (const char *arch, /* If this is not an archive, try to open it in the current directory first. */ - if (! entry->is_archive) + if (! entry->maybe_archive) { if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename)) { @@ -407,7 +407,7 @@ ldfile_open_file_search (const char *arch, } } - if (entry->is_archive) + if (entry->maybe_archive) string = concat (search->name, slash, lib, entry->filename, arch, suffix, (const char *) NULL); else diff --git a/ld/ldgram.y b/ld/ldgram.y index 69a84c72982..edaa0c95b2f 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -1,6 +1,6 @@ /* A YACC grammar to parse a superset of the AT&T linker scripting language. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support (steve@cygnus.com). @@ -133,6 +133,7 @@ static int error_index; %token INCLUDE %token MEMORY %token REGION_ALIAS +%token LD_FEATURE %token NOLOAD DSECT COPY INFO OVERLAY %token DEFINED TARGET_K SEARCH_DIR MAP ENTRY %token NEXT @@ -175,7 +176,7 @@ defsym_expr: NAME '=' exp { ldlex_popstate(); - lang_add_assignment(exp_assop($3,$2,$4)); + lang_add_assignment (exp_defsym ($2, $4)); } ; @@ -356,6 +357,8 @@ ifile_p1: { lang_add_insert ($3, 1); } | REGION_ALIAS '(' NAME ',' NAME ')' { lang_memory_region_alias ($3, $5); } + | LD_FEATURE '(' NAME ')' + { lang_ld_feature ($3); } ; input_list: @@ -650,15 +653,15 @@ end: ';' | ',' assignment: NAME '=' mustbe_exp { - lang_add_assignment (exp_assop ($2, $1, $3)); + lang_add_assignment (exp_assign ($1, $3)); } | NAME assign_op mustbe_exp { - lang_add_assignment (exp_assop ('=', $1, - exp_binop ($2, - exp_nameop (NAME, - $1), - $3))); + lang_add_assignment (exp_assign ($1, + exp_binop ($2, + exp_nameop (NAME, + $1), + $3))); } | PROVIDE '(' NAME '=' mustbe_exp ')' { @@ -976,7 +979,7 @@ section: NAME { ldlex_expression(); } opt_exp_with_type { ldlex_popstate (); - lang_add_assignment (exp_assop ('=', ".", $3)); + lang_add_assignment (exp_assign (".", $3)); } '{' sec_or_group_p1 '}' | INCLUDE filename diff --git a/ld/ldlang.c b/ld/ldlang.c index deb70fd3954..72564953590 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1,6 +1,6 @@ /* Linker command language support. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -1015,7 +1015,7 @@ new_afile (const char *name, { case lang_input_file_is_symbols_only_enum: p->filename = name; - p->is_archive = FALSE; + p->maybe_archive = FALSE; p->real = TRUE; p->local_sym_name = name; p->just_syms_flag = TRUE; @@ -1023,14 +1023,14 @@ new_afile (const char *name, break; case lang_input_file_is_fake_enum: p->filename = name; - p->is_archive = FALSE; + p->maybe_archive = FALSE; p->real = FALSE; p->local_sym_name = name; p->just_syms_flag = FALSE; p->search_dirs_flag = FALSE; break; case lang_input_file_is_l_enum: - p->is_archive = TRUE; + p->maybe_archive = TRUE; p->filename = name; p->real = TRUE; p->local_sym_name = concat ("-l", name, (const char *) NULL); @@ -1039,7 +1039,7 @@ new_afile (const char *name, break; case lang_input_file_is_marker_enum: p->filename = name; - p->is_archive = FALSE; + p->maybe_archive = FALSE; p->real = FALSE; p->local_sym_name = name; p->just_syms_flag = FALSE; @@ -1048,7 +1048,7 @@ new_afile (const char *name, case lang_input_file_is_search_file_enum: p->sysrooted = ldlang_sysrooted_script; p->filename = name; - p->is_archive = FALSE; + p->maybe_archive = FALSE; p->real = TRUE; p->local_sym_name = name; p->just_syms_flag = FALSE; @@ -1056,7 +1056,7 @@ new_afile (const char *name, break; case lang_input_file_is_file_enum: p->filename = name; - p->is_archive = FALSE; + p->maybe_archive = FALSE; p->real = TRUE; p->local_sym_name = name; p->just_syms_flag = FALSE; @@ -1756,7 +1756,7 @@ lang_insert_orphan (asection *s, sprintf (symname + (symname[0] != 0), "__start_%s", secname); e_align = exp_unop (ALIGN_K, exp_intop ((bfd_vma) 1 << s->alignment_power)); - lang_add_assignment (exp_assop ('=', ".", e_align)); + lang_add_assignment (exp_assign (".", e_align)); lang_add_assignment (exp_provide (symname, exp_unop (ABSOLUTE, exp_nameop (NAME, ".")), @@ -2037,6 +2037,9 @@ static bfd_boolean sort_def_symbol (struct bfd_link_hash_entry *hash_entry, void *info ATTRIBUTE_UNUSED) { + if (hash_entry->type == bfd_link_hash_warning) + hash_entry = (struct bfd_link_hash_entry *) hash_entry->u.i.link; + if (hash_entry->type == bfd_link_hash_defined || hash_entry->type == bfd_link_hash_defweak) { @@ -2717,15 +2720,15 @@ load_symbols (lang_input_statement_type *entry, loaded = FALSE; } - subsbfd = NULL; - if (! ((*link_info.callbacks->add_archive_element) - (&link_info, member, "--whole-archive", &subsbfd))) + subsbfd = member; + if (!(*link_info.callbacks + ->add_archive_element) (&link_info, member, + "--whole-archive", &subsbfd)) abort (); /* Potentially, the add_archive_element hook may have set a substitute BFD for us. */ - if (! bfd_link_add_symbols (subsbfd ? subsbfd : member, - &link_info)) + if (!bfd_link_add_symbols (subsbfd, &link_info)) { einfo (_("%F%B: could not read symbols: %E\n"), member); loaded = FALSE; @@ -3196,6 +3199,11 @@ open_input_bfds (lang_statement_union_type *s, bfd_boolean force) } } break; + case lang_assignment_statement_enum: + if (s->assignment_statement.exp->assign.hidden) + /* This is from a --defsym on the command line. */ + exp_fold_tree_no_dot (s->assignment_statement.exp); + break; default: break; } @@ -3342,65 +3350,6 @@ lang_place_undefineds (void) insert_undefined (ptr->name); } -typedef struct bfd_sym_chain ldlang_def_chain_list_type; - -static ldlang_def_chain_list_type ldlang_def_chain_list_head; - -/* Insert NAME as defined in the symbol table. */ - -static void -insert_defined (const char *name) -{ - struct bfd_link_hash_entry *h; - - h = bfd_link_hash_lookup (link_info.hash, name, TRUE, FALSE, TRUE); - if (h == NULL) - einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); - if (h->type == bfd_link_hash_new - || h->type == bfd_link_hash_undefined - || h->type == bfd_link_hash_undefweak) - { - h->type = bfd_link_hash_defined; - h->u.def.section = bfd_abs_section_ptr; - h->u.def.value = 0; - } -} - -/* Like lang_add_undef, but this time for symbols defined on the - command line. */ - -static void -ldlang_add_def (const char *const name) -{ - if (link_info.output_bfd != NULL) - insert_defined (xstrdup (name)); - else - { - ldlang_def_chain_list_type *new_def; - - new_def = (ldlang_def_chain_list_type *) stat_alloc (sizeof (*new_def)); - new_def->next = ldlang_def_chain_list_head.next; - ldlang_def_chain_list_head.next = new_def; - - new_def->name = xstrdup (name); - } -} - -/* Run through the list of defineds created above and place them - into the linker hash table as defined symbols belonging to the - script file. */ - -static void -lang_place_defineds (void) -{ - ldlang_def_chain_list_type *ptr; - - for (ptr = ldlang_def_chain_list_head.next; - ptr != NULL; - ptr = ptr->next) - insert_defined (ptr->name); -} - /* Check for all readonly or some readwrite sections. */ static void @@ -3929,12 +3878,12 @@ scan_for_self_assignment (const char * dst, etree_type * rhs) switch (rhs->type.node_class) { case etree_binary: - return scan_for_self_assignment (dst, rhs->binary.lhs) - || scan_for_self_assignment (dst, rhs->binary.rhs); + return (scan_for_self_assignment (dst, rhs->binary.lhs) + || scan_for_self_assignment (dst, rhs->binary.rhs)); case etree_trinary: - return scan_for_self_assignment (dst, rhs->trinary.lhs) - || scan_for_self_assignment (dst, rhs->trinary.rhs); + return (scan_for_self_assignment (dst, rhs->trinary.lhs) + || scan_for_self_assignment (dst, rhs->trinary.rhs)); case etree_assign: case etree_provided: @@ -3989,7 +3938,7 @@ print_assignment (lang_assignment_statement_type *assignment, is_dot = (dst[0] == '.' && dst[1] == 0); tree = assignment->exp->assign.src; - computation_is_valid = is_dot || (scan_for_self_assignment (dst, tree) == FALSE); + computation_is_valid = is_dot || !scan_for_self_assignment (dst, tree); } osec = output_section->bfd_section; @@ -5428,9 +5377,11 @@ lang_size_sections (bfd_boolean *relax, bfd_boolean check_regions) lang_reset_memory_regions (); one_lang_size_sections_pass (relax, check_regions); } + else + expld.dataseg.phase = exp_dataseg_done; } - - expld.phase = lang_final_phase_enum; + else + expld.dataseg.phase = exp_dataseg_done; } /* Worker function for lang_do_assignments. Recursiveness goes here. */ @@ -6408,7 +6359,6 @@ lang_process (void) /* Add to the hash table all undefineds on the command line. */ lang_place_undefineds (); - lang_place_defineds (); if (!bfd_section_already_linked_table_init ()) einfo (_("%P%F: Failed to create hash table\n")); @@ -6418,22 +6368,22 @@ lang_process (void) open_input_bfds (statement_list.head, FALSE); #ifdef ENABLE_PLUGINS - { - union lang_statement_union **listend; - /* Now all files are read, let the plugin(s) decide if there - are any more to be added to the link before we call the - emulation's after_open hook. */ - listend = statement_list.tail; - ASSERT (!*listend); - if (plugin_call_all_symbols_read ()) - einfo (_("%P%F: %s: plugin reported error after all symbols read\n"), - plugin_error_plugin ()); - /* If any new files were added, they will be on the end of the - statement list, and we can open them now by getting open_input_bfds - to carry on from where it ended last time. */ - if (*listend) - open_input_bfds (*listend, FALSE); - } + { + union lang_statement_union **listend; + /* Now all files are read, let the plugin(s) decide if there + are any more to be added to the link before we call the + emulation's after_open hook. */ + listend = statement_list.tail; + ASSERT (!*listend); + if (plugin_call_all_symbols_read ()) + einfo (_("%P%F: %s: plugin reported error after all symbols read\n"), + plugin_error_plugin ()); + /* If any new files were added, they will be on the end of the + statement list, and we can open them now by getting open_input_bfds + to carry on from where it ended last time. */ + if (*listend) + open_input_bfds (*listend, FALSE); + } #endif /* ENABLE_PLUGINS */ link_info.gc_sym_list = &entry_symbol; @@ -6470,6 +6420,7 @@ lang_process (void) /* Run through the contours of the script and attach input sections to the correct output sections. */ + lang_statement_iteration++; map_input_to_output_sections (statement_list.head, NULL, NULL); process_insert_statements (); @@ -6523,7 +6474,7 @@ lang_process (void) /* Do all the assignments, now that we know the final resting places of all the symbols. */ - + expld.phase = lang_final_phase_enum; lang_do_assignments (); ldemul_finish (); @@ -6693,10 +6644,6 @@ lang_add_assignment (etree_type *exp) { lang_assignment_statement_type *new_stmt; - extern int parsing_defsym; - if (parsing_defsym) - ldlang_add_def (exp->assign.dst); - new_stmt = new_stat (lang_assignment_statement, stat_ptr); new_stmt->exp = exp; return new_stmt; @@ -7236,7 +7183,7 @@ lang_leave_overlay (etree_type *lma_expr, overlay region. */ if (overlay_list != NULL) overlay_list->os->update_dot_tree - = exp_assop ('=', ".", exp_binop ('+', overlay_vma, overlay_max)); + = exp_assign (".", exp_binop ('+', overlay_vma, overlay_max)); l = overlay_list; while (l != NULL) @@ -7852,3 +7799,32 @@ lang_append_dynamic_list_cpp_new (void) lang_append_dynamic_list (dynamic); } + +/* Scan a space and/or comma separated string of features. */ + +void +lang_ld_feature (char *str) +{ + char *p, *q; + + p = str; + while (*p) + { + char sep; + while (*p == ',' || ISSPACE (*p)) + ++p; + if (!*p) + break; + q = p + 1; + while (*q && *q != ',' && !ISSPACE (*q)) + ++q; + sep = *q; + *q = 0; + if (strcasecmp (p, "SANE_EXPR") == 0) + config.sane_expr = TRUE; + else + einfo (_("%X%P: unknown feature `%s'\n"), p); + *q = sep; + p = q; + } +} diff --git a/ld/ldlang.h b/ld/ldlang.h index 0b7b43b4151..9d4d41f4431 100644 --- a/ld/ldlang.h +++ b/ld/ldlang.h @@ -249,7 +249,7 @@ typedef struct lang_input_statement_struct const char *target; - unsigned int is_archive : 1; + unsigned int maybe_archive : 1; /* 1 means search a set of directories for this file. */ unsigned int search_dirs_flag : 1; @@ -650,4 +650,7 @@ extern bfd_boolean ldlang_override_segment_assignment (struct bfd_link_info *, bfd *, asection *, asection *, bfd_boolean); +extern void +lang_ld_feature (char *); + #endif diff --git a/ld/ldlex.l b/ld/ldlex.l index 7f038b32a4a..bb09bd92340 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -241,6 +241,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* ";" { RTOKEN(';');} "MEMORY" { RTOKEN(MEMORY);} "REGION_ALIAS" { RTOKEN(REGION_ALIAS);} +"LD_FEATURE" { RTOKEN(LD_FEATURE);} "ORIGIN" { RTOKEN(ORIGIN);} "VERSION" { RTOKEN(VERSIONK);} "BLOCK" { RTOKEN(BLOCK);} diff --git a/ld/ldmain.c b/ld/ldmain.c index e9b804a9e6f..19c42d98ac3 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -1,6 +1,6 @@ /* Main program of GNU linker. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Written by Steve Chamberlain steve@cygnus.com @@ -479,12 +479,6 @@ main (int argc, char **argv) lang_finish (); -#ifdef ENABLE_PLUGINS - /* Now everything is finished, we can tell the plugins to clean up. */ - if (plugin_call_cleanup ()) - info_msg (_("%P: %s: error in plugin cleanup (ignored)\n"), plugin_error_plugin ()); -#endif /* ENABLE_PLUGINS */ - /* Even if we're producing relocatable output, some non-fatal errors should be reported in the exit status. (What non-fatal errors, if any, do we want to ignore for relocatable output?) */ @@ -557,12 +551,14 @@ main (int argc, char **argv) #endif long run_time = get_run_time () - start_time; + fflush (stdout); fprintf (stderr, _("%s: total time in link: %ld.%06ld\n"), program_name, run_time / 1000000, run_time % 1000000); #ifdef HAVE_SBRK fprintf (stderr, _("%s: data size %ld\n"), program_name, (long) (lim - (char *) &environ)); #endif + fflush (stderr); } /* Prevent remove_output from doing anything, after a successful link. */ @@ -830,7 +826,7 @@ add_archive_element (struct bfd_link_info *info, file.handle = plugin_get_ir_dummy_bfd (abfd->filename, abfd); if (plugin_call_claim_file (&file, &claimed)) einfo (_("%P%F: %s: plugin reported error claiming file\n"), - plugin_error_plugin ()); + plugin_error_plugin ()); /* fd belongs to us, not the plugin; but we don't need it. */ close (fd); if (claimed) @@ -955,15 +951,15 @@ multiple_definition (struct bfd_link_info *info ATTRIBUTE_UNUSED, it will let us know not to continue by returning TRUE even if this is not an IR-only vs. non-IR symbol conflict. */ if (plugin_multiple_definition (info, name, obfd, osec, oval, nbfd, - nsec, nval)) + nsec, nval)) return TRUE; #endif /* ENABLE_PLUGINS */ /* If either section has the output_section field set to bfd_abs_section_ptr, it means that the section is being discarded, and this is not really a multiple definition at all. - FIXME: It would be cleaner to somehow ignore symbols defined in - sections which are being discarded. */ +FIXME: It would be cleaner to somehow ignore symbols defined in +sections which are being discarded. */ if ((osec->output_section != NULL && ! bfd_is_abs_section (osec) && bfd_is_abs_section (osec->output_section)) diff --git a/ld/ldmisc.c b/ld/ldmisc.c index 74baa985839..369580001d0 100644 --- a/ld/ldmisc.c +++ b/ld/ldmisc.c @@ -1,6 +1,6 @@ /* ldmisc.c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support. @@ -440,9 +440,11 @@ einfo (const char *fmt, ...) { va_list arg; + fflush (stdout); va_start (arg, fmt); vfinfo (stderr, fmt, arg, TRUE); va_end (arg); + fflush (stderr); } void diff --git a/ld/ldver.c b/ld/ldver.c index df4fdcaa1ab..9f6632b471b 100644 --- a/ld/ldver.c +++ b/ld/ldver.c @@ -40,7 +40,7 @@ ldversion (int noisy) if (noisy & 2) { - printf (_("Copyright 2010 Free Software Foundation, Inc.\n")); + printf (_("Copyright 2011 Free Software Foundation, Inc.\n")); printf (_("\ This program is free software; you may redistribute it under the terms of\n\ the GNU General Public License version 3 or (at your option) a later version.\n\ diff --git a/ld/lexsup.c b/ld/lexsup.c index 39ca32683b1..b6274f89217 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -1056,7 +1056,8 @@ parse_args (unsigned argc, char **argv) #ifdef ENABLE_PLUGINS case OPTION_PLUGIN: if (plugin_opt_plugin (optarg)) - einfo(_("%P%F: bad -plugin option\n")); + einfo (_("%P%F: %s: error loading plugin\n"), + plugin_error_plugin ()); break; case OPTION_PLUGIN_OPT: if (plugin_opt_plugin_arg (optarg)) diff --git a/ld/mri.c b/ld/mri.c index 1932a939ed6..ce1406af339 100644 --- a/ld/mri.c +++ b/ld/mri.c @@ -1,6 +1,6 @@ /* mri.c -- handle MRI style linker scripts Copyright 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. + 2002, 2003, 2004, 2005, 2007, 2011 Free Software Foundation, Inc. Contributed by Steve Chamberlain . This file is part of the GNU Binutils. @@ -295,7 +295,7 @@ mri_format (const char *name) void mri_public (const char *name, etree_type *exp) { - lang_add_assignment (exp_assop ('=', name, exp)); + lang_add_assignment (exp_assign (name, exp)); } void diff --git a/ld/plugin.c b/ld/plugin.c index 79b39e8b285..b285787694b 100644 --- a/ld/plugin.c +++ b/ld/plugin.c @@ -1,5 +1,5 @@ /* Plugin control for the GNU linker. - Copyright 2010 Free Software Foundation, Inc. + Copyright 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU Binutils. @@ -108,6 +108,9 @@ static bfd_boolean no_more_claiming = FALSE; TRUE is returned from the hook. */ static bfd_boolean plugin_cached_allow_multiple_defs = FALSE; +/* Call 'cleanup' hook for all plugins at exit. */ +static void plugin_call_cleanup (void); + /* List of tags to set in the constant leading part of the tv array. */ static const enum ld_plugin_tag tv_header_tags[] = { @@ -234,6 +237,8 @@ plugin_get_ir_dummy_bfd (const char *name, bfd *srctemplate) srctemplate); bfd_set_arch_info (abfd, bfd_get_arch_info (srctemplate)); bfd_make_writable (abfd); + bfd_copy_private_bfd_data (srctemplate, abfd); + bfd_set_gp_size (abfd, bfd_get_gp_size (abfd)); /* Create a minimal set of sections to own the symbols. */ sec = bfd_make_section_old_way (abfd, ".text"); bfd_set_section_flags (abfd, sec, @@ -261,15 +266,15 @@ is_ir_dummy_bfd (const bfd *abfd) /* Helpers to convert between BFD and GOLD symbol formats. */ static enum ld_plugin_status asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym, - const struct ld_plugin_symbol *ldsym) + const struct ld_plugin_symbol *ldsym) { flagword flags = BSF_NO_FLAGS; struct bfd_section *section; asym->the_bfd = abfd; - asym->name = ldsym->version + asym->name = (ldsym->version ? concat (ldsym->name, "@", ldsym->version, NULL) - : ldsym->name; + : ldsym->name); asym->value = 0; switch (ldsym->def) { @@ -292,6 +297,9 @@ asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym, flags = BSF_GLOBAL; section = bfd_com_section_ptr; asym->value = ldsym->size; + /* For ELF targets, set alignment of common symbol to 1. */ + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) + ((elf_symbol_type *) asym)->internal_elf_sym.st_value = 1; break; default: @@ -304,10 +312,31 @@ asymbol_from_plugin_symbol (bfd *abfd, asymbol *asym, if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) { elf_symbol_type *elfsym = elf_symbol_from (abfd, asym); + unsigned char visibility; + if (!elfsym) - einfo (_("%P%F: %s: non-ELF symbol in ELF BFD!"), asym->name); - elfsym->internal_elf_sym.st_other &= ~3; - elfsym->internal_elf_sym.st_other |= ldsym->visibility; + einfo (_("%P%F: %s: non-ELF symbol in ELF BFD!\n"), asym->name); + switch (ldsym->visibility) + { + default: + einfo (_("%P%F: unknown ELF symbol visibility: %d!\n"), + ldsym->visibility); + case LDPV_DEFAULT: + visibility = STV_DEFAULT; + break; + case LDPV_PROTECTED: + visibility = STV_PROTECTED; + break; + case LDPV_INTERNAL: + visibility = STV_INTERNAL; + break; + case LDPV_HIDDEN: + visibility = STV_HIDDEN; + break; + } + elfsym->internal_elf_sym.st_other + = (visibility | (elfsym->internal_elf_sym.st_other + & ~ELF_ST_VISIBILITY (-1))); } return LDPS_OK; @@ -386,7 +415,7 @@ release_input_file (const void *handle) universe of claimed objects. */ static inline bfd_boolean is_visible_from_outside (struct ld_plugin_symbol *lsym, asection *section, - struct bfd_link_hash_entry *blhe) + struct bfd_link_hash_entry *blhe) { /* Section's owner may be NULL if it is the absolute section, fortunately is_ir_dummy_bfd handles that. */ @@ -404,7 +433,7 @@ is_visible_from_outside (struct ld_plugin_symbol *lsym, asection *section, return vis == STV_DEFAULT || vis == STV_PROTECTED; } /* On non-ELF targets, we can safely make inferences by considering - what visibility the plugin would have liked to apply when it first + what visibility the plugin would have liked to apply when it first sent us the symbol. During ELF symbol processing, visibility only ever becomes more restrictive, not less, when symbols are merged, so this is a conservative estimate; it may give false positives, @@ -413,8 +442,8 @@ is_visible_from_outside (struct ld_plugin_symbol *lsym, asection *section, opportunities during LTRANS at worst; it will not give false negatives, which can lead to the disastrous conclusion that the related symbol is IRONLY. (See GCC PR46319 for an example.) */ - return lsym->visibility == LDPV_DEFAULT - || lsym->visibility == LDPV_PROTECTED; + return (lsym->visibility == LDPV_DEFAULT + || lsym->visibility == LDPV_PROTECTED); } return FALSE; } @@ -433,7 +462,7 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms) asection *owner_sec; blhe = bfd_link_hash_lookup (link_info.hash, syms[n].name, - FALSE, FALSE, TRUE); + FALSE, FALSE, TRUE); if (!blhe) { syms[n].resolution = LDPR_UNKNOWN; @@ -442,48 +471,50 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms) /* Determine resolution from blhe type and symbol's original type. */ if (blhe->type == bfd_link_hash_undefined - || blhe->type == bfd_link_hash_undefweak) + || blhe->type == bfd_link_hash_undefweak) { syms[n].resolution = LDPR_UNDEF; continue; } if (blhe->type != bfd_link_hash_defined - && blhe->type != bfd_link_hash_defweak - && blhe->type != bfd_link_hash_common) + && blhe->type != bfd_link_hash_defweak + && blhe->type != bfd_link_hash_common) { /* We should not have a new, indirect or warning symbol here. */ - einfo ("%P%F: %s: plugin symbol table corrupt (sym type %d)", - called_plugin->name, blhe->type); + einfo ("%P%F: %s: plugin symbol table corrupt (sym type %d)\n", + called_plugin->name, blhe->type); } /* Find out which section owns the symbol. Since it's not undef, it must have an owner; if it's not a common symbol, both defs and weakdefs keep it in the same place. */ owner_sec = (blhe->type == bfd_link_hash_common) - ? blhe->u.c.p->section - : blhe->u.def.section; + ? blhe->u.c.p->section + : blhe->u.def.section; /* We need to know if the sym is referenced from non-IR files. Or - even potentially-referenced, perhaps in a future final link if + even potentially-referenced, perhaps in a future final link if this is a partial one, perhaps dynamically at load-time if the symbol is externally visible. */ ironly = !is_visible_from_outside (&syms[n], owner_sec, blhe) && !bfd_hash_lookup (non_ironly_hash, syms[n].name, FALSE, FALSE); /* If it was originally undefined or common, then it has been - resolved; determine how. */ - if (syms[n].def == LDPK_UNDEF || syms[n].def == LDPK_WEAKUNDEF + resolved; determine how. */ + if (syms[n].def == LDPK_UNDEF + || syms[n].def == LDPK_WEAKUNDEF || syms[n].def == LDPK_COMMON) { if (owner_sec->owner == link_info.output_bfd) syms[n].resolution = LDPR_RESOLVED_EXEC; else if (owner_sec->owner == abfd) - syms[n].resolution = (ironly) - ? LDPR_PREVAILING_DEF_IRONLY - : LDPR_PREVAILING_DEF; + syms[n].resolution = (ironly + ? LDPR_PREVAILING_DEF_IRONLY + : LDPR_PREVAILING_DEF); else if (is_ir_dummy_bfd (owner_sec->owner)) syms[n].resolution = LDPR_RESOLVED_IR; - else if (owner_sec->owner->flags & DYNAMIC) + else if (owner_sec->owner != NULL + && (owner_sec->owner->flags & DYNAMIC) != 0) syms[n].resolution = LDPR_RESOLVED_DYN; else syms[n].resolution = LDPR_RESOLVED_EXEC; @@ -491,22 +522,22 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms) } /* Was originally def, or weakdef. Does it prevail? If the - owner is the original dummy bfd that supplied it, then this + owner is the original dummy bfd that supplied it, then this is the definition that has prevailed. */ if (owner_sec->owner == link_info.output_bfd) syms[n].resolution = LDPR_PREEMPTED_REG; else if (owner_sec->owner == abfd) { - syms[n].resolution = (ironly) + syms[n].resolution = (ironly ? LDPR_PREVAILING_DEF_IRONLY - : LDPR_PREVAILING_DEF; + : LDPR_PREVAILING_DEF); continue; } /* Was originally def, weakdef, or common, but has been pre-empted. */ syms[n].resolution = is_ir_dummy_bfd (owner_sec->owner) - ? LDPR_PREEMPTED_IR - : LDPR_PREEMPTED_REG; + ? LDPR_PREEMPTED_IR + : LDPR_PREEMPTED_REG; } return LDPS_OK; } @@ -517,7 +548,7 @@ add_input_file (const char *pathname) { ASSERT (called_plugin); if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_file_enum, - NULL)) + NULL)) return LDPS_ERR; return LDPS_OK; } @@ -528,7 +559,7 @@ add_input_library (const char *pathname) { ASSERT (called_plugin); if (!lang_add_input_file (xstrdup (pathname), lang_input_file_is_l_enum, - NULL)) + NULL)) return LDPS_ERR; return LDPS_OK; } @@ -554,18 +585,23 @@ message (int level, const char *format, ...) { case LDPL_INFO: vfinfo (stdout, format, args, FALSE); + putchar ('\n'); break; case LDPL_WARNING: vfinfo (stdout, format, args, TRUE); + putchar ('\n'); break; case LDPL_FATAL: case LDPL_ERROR: default: - { - char *newfmt = ACONCAT ((level == LDPL_FATAL ? "%F" : "%X", - format, NULL)); - vfinfo (stderr, newfmt, args, TRUE); - } + { + char *newfmt = ACONCAT ((level == LDPL_FATAL + ? "%P%F: " : "%P%X: ", + format, "\n", NULL)); + fflush (stdout); + vfinfo (stderr, newfmt, args, TRUE); + fflush (stderr); + } break; } @@ -592,56 +628,57 @@ set_tv_header (struct ld_plugin_tv *tv) #define TVU(x) tv[i].tv_u.tv_ ## x switch (tv[i].tv_tag) { - case LDPT_MESSAGE: - TVU(message) = message; - break; - case LDPT_API_VERSION: - TVU(val) = LD_PLUGIN_API_VERSION; - break; - case LDPT_GNU_LD_VERSION: - TVU(val) = major * 100 + minor; - break; - case LDPT_LINKER_OUTPUT: - TVU(val) = link_info.relocatable ? LDPO_REL - : (link_info.shared ? LDPO_DYN : LDPO_EXEC); - break; - case LDPT_OUTPUT_NAME: - TVU(string) = output_filename; - break; - case LDPT_REGISTER_CLAIM_FILE_HOOK: - TVU(register_claim_file) = register_claim_file; - break; - case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK: - TVU(register_all_symbols_read) = register_all_symbols_read; - break; - case LDPT_REGISTER_CLEANUP_HOOK: - TVU(register_cleanup) = register_cleanup; - break; - case LDPT_ADD_SYMBOLS: - TVU(add_symbols) = add_symbols; - break; - case LDPT_GET_INPUT_FILE: - TVU(get_input_file) = get_input_file; - break; - case LDPT_RELEASE_INPUT_FILE: - TVU(release_input_file) = release_input_file; - break; - case LDPT_GET_SYMBOLS: - TVU(get_symbols) = get_symbols; - break; - case LDPT_ADD_INPUT_FILE: - TVU(add_input_file) = add_input_file; - break; - case LDPT_ADD_INPUT_LIBRARY: - TVU(add_input_library) = add_input_library; - break; - case LDPT_SET_EXTRA_LIBRARY_PATH: - TVU(set_extra_library_path) = set_extra_library_path; - break; - default: - /* Added a new entry to the array without adding - a new case to set up its value is a bug. */ - FAIL (); + case LDPT_MESSAGE: + TVU(message) = message; + break; + case LDPT_API_VERSION: + TVU(val) = LD_PLUGIN_API_VERSION; + break; + case LDPT_GNU_LD_VERSION: + TVU(val) = major * 100 + minor; + break; + case LDPT_LINKER_OUTPUT: + TVU(val) = (link_info.relocatable + ? LDPO_REL + : (link_info.shared ? LDPO_DYN : LDPO_EXEC)); + break; + case LDPT_OUTPUT_NAME: + TVU(string) = output_filename; + break; + case LDPT_REGISTER_CLAIM_FILE_HOOK: + TVU(register_claim_file) = register_claim_file; + break; + case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK: + TVU(register_all_symbols_read) = register_all_symbols_read; + break; + case LDPT_REGISTER_CLEANUP_HOOK: + TVU(register_cleanup) = register_cleanup; + break; + case LDPT_ADD_SYMBOLS: + TVU(add_symbols) = add_symbols; + break; + case LDPT_GET_INPUT_FILE: + TVU(get_input_file) = get_input_file; + break; + case LDPT_RELEASE_INPUT_FILE: + TVU(release_input_file) = release_input_file; + break; + case LDPT_GET_SYMBOLS: + TVU(get_symbols) = get_symbols; + break; + case LDPT_ADD_INPUT_FILE: + TVU(add_input_file) = add_input_file; + break; + case LDPT_ADD_INPUT_LIBRARY: + TVU(add_input_library) = add_input_library; + break; + case LDPT_SET_EXTRA_LIBRARY_PATH: + TVU(set_extra_library_path) = set_extra_library_path; + break; + default: + /* Added a new entry to the array without adding + a new case to set up its value is a bug. */ + FAIL (); } #undef TVU } @@ -684,6 +721,8 @@ plugin_load_plugins (void) if (!curplug) return 0; + xatexit (plugin_call_cleanup); + /* First pass over plugins to find max # args needed so that we can size and allocate the tv array. */ while (curplug) @@ -706,13 +745,13 @@ plugin_load_plugins (void) if (!onloadfn) onloadfn = dlsym (curplug->dlhandle, "_onload"); if (!onloadfn) - return set_plugin_error (curplug->name); + return set_plugin_error (curplug->name); set_tv_plugin_args (curplug, &my_tv[tv_header_size]); called_plugin = curplug; rv = (*onloadfn) (my_tv); called_plugin = NULL; if (rv != LDPS_OK) - return set_plugin_error (curplug->name); + return set_plugin_error (curplug->name); curplug = curplug->next; } @@ -780,8 +819,8 @@ plugin_call_all_symbols_read (void) return plugin_error_p () ? -1 : 0; } -/* Call 'cleanup' hook for all plugins. */ -int +/* Call 'cleanup' hook for all plugins at exit. */ +static void plugin_call_cleanup (void) { plugin_t *curplug = plugins_list; @@ -800,7 +839,9 @@ plugin_call_cleanup (void) } curplug = curplug->next; } - return plugin_error_p () ? -1 : 0; + if (plugin_error_p ()) + info_msg (_("%P: %s: error in plugin cleanup (ignored)\n"), + plugin_error_plugin ()); } /* Lazily init the non_ironly hash table. */ @@ -810,7 +851,7 @@ init_non_ironly_hash (void) if (non_ironly_hash == NULL) { non_ironly_hash = - (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table)); + (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table)); if (!bfd_hash_table_init_n (non_ironly_hash, bfd_hash_newfunc, sizeof (struct bfd_hash_entry), @@ -829,8 +870,8 @@ init_non_ironly_hash (void) contributed by IR files. */ bfd_boolean plugin_notice (struct bfd_link_info *info ATTRIBUTE_UNUSED, - const char *name, bfd *abfd, - asection *section, bfd_vma value ATTRIBUTE_UNUSED) + const char *name, bfd *abfd, + asection *section, bfd_vma value ATTRIBUTE_UNUSED) { bfd_boolean is_ref = bfd_is_und_section (section); bfd_boolean is_dummy = is_ir_dummy_bfd (abfd); @@ -841,10 +882,10 @@ plugin_notice (struct bfd_link_info *info ATTRIBUTE_UNUSED, if (is_ref && !is_dummy) { /* This is a ref from a non-IR file, so note the ref'd symbol - in the non-IR-only hash. */ + in the non-IR-only hash. */ if (!bfd_hash_lookup (non_ironly_hash, name, TRUE, TRUE)) - einfo (_("%P%X: %s: hash table failure adding symbol %s"), - abfd->filename, name); + einfo (_("%P%X: %s: hash table failure adding symbol %s\n"), + abfd->filename, name); } else if (!is_ref && is_dummy) { @@ -867,19 +908,19 @@ plugin_notice (struct bfd_link_info *info ATTRIBUTE_UNUSED, effect (before we disabled it to ensure we got called back). */ bfd_boolean plugin_multiple_definition (struct bfd_link_info *info, const char *name, - bfd *obfd, asection *osec ATTRIBUTE_UNUSED, - bfd_vma oval ATTRIBUTE_UNUSED, - bfd *nbfd, asection *nsec, bfd_vma nval) + bfd *obfd, asection *osec ATTRIBUTE_UNUSED, + bfd_vma oval ATTRIBUTE_UNUSED, + bfd *nbfd, asection *nsec, bfd_vma nval) { if (is_ir_dummy_bfd (obfd)) { - struct bfd_link_hash_entry *blhe = bfd_link_hash_lookup (info->hash, - name, FALSE, FALSE, FALSE); + struct bfd_link_hash_entry *blhe + = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, FALSE); if (!blhe) - einfo (_("%P%X: %s: can't find IR symbol '%s'"), nbfd->filename, - name); + einfo (_("%P%X: %s: can't find IR symbol '%s'\n"), nbfd->filename, + name); else if (blhe->type != bfd_link_hash_defined) - einfo (_("%P%x: %s: bad IR symbol type %d"), name, blhe->type); + einfo (_("%P%x: %s: bad IR symbol type %d\n"), name, blhe->type); /* Replace it with new details. */ blhe->u.def.section = nsec; blhe->u.def.value = nval; diff --git a/ld/plugin.h b/ld/plugin.h index b79e739223e..eafdb07635b 100644 --- a/ld/plugin.h +++ b/ld/plugin.h @@ -50,9 +50,6 @@ extern int plugin_call_claim_file (const struct ld_plugin_input_file *file, /* Call 'all symbols read' hook for all plugins. */ extern int plugin_call_all_symbols_read (void); -/* Call 'cleanup' hook for all plugins. */ -extern int plugin_call_cleanup (void); - /* Generate a dummy BFD to represent an IR file, for any callers of plugin_call_claim_file to use as the handle in the ld_plugin_input_file struct that they build to pass in. The BFD is initially writable, so diff --git a/ld/testplug.c b/ld/testplug.c index ee3652b3083..f04df10fa05 100644 --- a/ld/testplug.c +++ b/ld/testplug.c @@ -349,12 +349,12 @@ dump_tv_tag (size_t n, struct ld_plugin_tv *tv) break; sprintf (unknownbuf, "unknown tag #%d", tv->tv_tag); name = (tag < ARRAY_SIZE (tag_names)) ? tag_names[tag].name : unknownbuf; - TV_MESSAGE (LDPL_INFO, "tv[%d]: %s ", n, name); switch (tv->tv_tag) { case LDPT_OPTION: case LDPT_OUTPUT_NAME: - TV_MESSAGE (LDPL_INFO, "'%s'\n", tv->tv_u.tv_string); + TV_MESSAGE (LDPL_INFO, "tv[%d]: %s '%s'", n, name, + tv->tv_u.tv_string); break; case LDPT_REGISTER_CLAIM_FILE_HOOK: case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK: @@ -367,8 +367,8 @@ dump_tv_tag (size_t n, struct ld_plugin_tv *tv) case LDPT_RELEASE_INPUT_FILE: case LDPT_ADD_INPUT_LIBRARY: case LDPT_SET_EXTRA_LIBRARY_PATH: - TV_MESSAGE (LDPL_INFO, "func@0x%p\n", - (void *)(tv->tv_u.tv_message)); + TV_MESSAGE (LDPL_INFO, "tv[%d]: %s func@0x%p", n, name, + (void *)(tv->tv_u.tv_message)); break; case LDPT_NULL: case LDPT_API_VERSION: @@ -376,8 +376,8 @@ dump_tv_tag (size_t n, struct ld_plugin_tv *tv) case LDPT_LINKER_OUTPUT: case LDPT_GNU_LD_VERSION: default: - TV_MESSAGE (LDPL_INFO, "value %W (%d)\n", - (bfd_vma)tv->tv_u.tv_val, tv->tv_u.tv_val); + TV_MESSAGE (LDPL_INFO, "tv[%d]: %s value %W (%d)", n, name, + (bfd_vma)tv->tv_u.tv_val, tv->tv_u.tv_val); break; } } @@ -469,21 +469,19 @@ onload (struct ld_plugin_tv *tv) tv_message = tv[0].tv_u.tv_message; fflush (NULL); - TV_MESSAGE (LDPL_INFO, "Hello from testplugin.\n"); + TV_MESSAGE (LDPL_INFO, "Hello from testplugin."); do if ((rv = parse_and_dump_tv_tag (n++, tv)) != LDPS_OK) return rv; while ((tv++)->tv_tag != LDPT_NULL); - TV_MESSAGE (LDPL_INFO, "\n"); - /* Register hooks only if instructed by options. */ if (register_claimfile_hook) { if (!tv_register_claim_file) { - TV_MESSAGE (LDPL_FATAL, "No register_claim_file hook\n"); + TV_MESSAGE (LDPL_FATAL, "No register_claim_file hook"); fflush (NULL); return LDPS_ERR; } @@ -493,7 +491,7 @@ onload (struct ld_plugin_tv *tv) { if (!tv_register_all_symbols_read) { - TV_MESSAGE (LDPL_FATAL, "No register_all_symbols_read hook\n"); + TV_MESSAGE (LDPL_FATAL, "No register_all_symbols_read hook"); fflush (NULL); return LDPS_ERR; } @@ -503,7 +501,7 @@ onload (struct ld_plugin_tv *tv) { if (!tv_register_cleanup) { - TV_MESSAGE (LDPL_FATAL, "No register_cleanup hook\n"); + TV_MESSAGE (LDPL_FATAL, "No register_cleanup hook"); fflush (NULL); return LDPS_ERR; } @@ -527,9 +525,9 @@ onclaim_file (const struct ld_plugin_input_file *file, int *claimed) } /* Inform the user/testsuite. */ - TV_MESSAGE (LDPL_INFO, "hook called: claim_file %s [@%ld/%ld] %s\n", - file->name, (long)file->offset, (long)file->filesize, - claimfile ? "CLAIMED" : "not claimed"); + TV_MESSAGE (LDPL_INFO, "hook called: claim_file %s [@%ld/%ld] %s", + file->name, (long)file->offset, (long)file->filesize, + claimfile ? "CLAIMED" : "not claimed"); fflush (NULL); /* If we decided to claim it, record that fact, and add any symbols @@ -567,7 +565,7 @@ onall_symbols_read (void) }; claim_file_t *claimfile = dumpresolutions ? claimfiles_list : NULL; add_file_t *addfile = addfiles_list; - TV_MESSAGE (LDPL_INFO, "hook called: all symbols read.\n"); + TV_MESSAGE (LDPL_INFO, "hook called: all symbols read."); for ( ; claimfile; claimfile = claimfile->next) { enum ld_plugin_status rv; @@ -581,12 +579,12 @@ onall_symbols_read (void) if (rv != LDPS_OK) return rv; for (n = 0; n < claimfile->n_syms_used; n++) - TV_MESSAGE (LDPL_INFO, "Sym: '%s%s%s' Resolution: %s\n", - claimfile->symbols[n].name, - claimfile->symbols[n].version ? "@" : "", - claimfile->symbols[n].version ? claimfile->symbols[n].version - : "", - resolutions[claimfile->symbols[n].resolution]); + TV_MESSAGE (LDPL_INFO, "Sym: '%s%s%s' Resolution: %s", + claimfile->symbols[n].name, + claimfile->symbols[n].version ? "@" : "", + (claimfile->symbols[n].version + ? claimfile->symbols[n].version : ""), + resolutions[claimfile->symbols[n].resolution]); } for ( ; addfile ; addfile = addfile->next) { @@ -610,8 +608,7 @@ onall_symbols_read (void) static enum ld_plugin_status oncleanup (void) { - TV_MESSAGE (LDPL_INFO, "hook called: cleanup.\n"); + TV_MESSAGE (LDPL_INFO, "hook called: cleanup."); fflush (NULL); return cleanup_ret; } - diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 33b62203db0..10264f2eec6 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2010-12-20 Alan Modra + PR ld/12001 + * ld-scripts/default-script2.d: Revert 2010-11-03 change. + + 2010-12-05 H.J. Lu + * ld-plugin/plugin-vis-1.d: Updated. + 2010-11-25 Matthew Gretton-Dann * ld-arm/arm-elf.exp (armeabitests): Replace --defsym argument in diff --git a/ld/testsuite/ld-plugin/plugin-vis-1.d b/ld/testsuite/ld-plugin/plugin-vis-1.d index 41f49713fdd..02c0e222aa5 100644 --- a/ld/testsuite/ld-plugin/plugin-vis-1.d +++ b/ld/testsuite/ld-plugin/plugin-vis-1.d @@ -1,9 +1,9 @@ #... -.*(PROTECTED.*func3|DEFAULT.*func|HIDDEN.*func2|INTERNAL.*func1) +.*(PROTECTED.*func1|DEFAULT.*func|HIDDEN.*func3|INTERNAL.*func2) #... -.*(PROTECTED.*func3|DEFAULT.*func|HIDDEN.*func2|INTERNAL.*func1) +.*(PROTECTED.*func1|DEFAULT.*func|HIDDEN.*func3|INTERNAL.*func2) #... -.*(PROTECTED.*func3|DEFAULT.*func|HIDDEN.*func2|INTERNAL.*func1) +.*(PROTECTED.*func1|DEFAULT.*func|HIDDEN.*func3|INTERNAL.*func2) #... -.*(PROTECTED.*func3|DEFAULT.*func|HIDDEN.*func2|INTERNAL.*func1) +.*(PROTECTED.*func1|DEFAULT.*func|HIDDEN.*func3|INTERNAL.*func2) #... diff --git a/ld/testsuite/ld-scripts/default-script2.d b/ld/testsuite/ld-scripts/default-script2.d index 829718d8a97..68ce2aa9fe2 100644 --- a/ld/testsuite/ld-scripts/default-script2.d +++ b/ld/testsuite/ld-scripts/default-script2.d @@ -5,5 +5,5 @@ #... 0*8000000 . _START #... -0*8000000 T text +0*9000000 T text #pass diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 3487c114334..212a7bfbd39 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,12 @@ +2011-02-01 Alan Modra + + Backport from mainline + 2011-01-21 Dave Murphy + * ppc-opc.c (NON32, NO371): Remove PPC_OPCODE_PPCPS. + + 2011-01-01 H.J. Lu + * i386-gen.c (process_copyright): Update copyright to 2011. + 2010-11-25 Alan Modra * po/es.po: Update. diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index ee0633863d4..a0d0627a1ac 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -466,7 +466,7 @@ static void process_copyright (FILE *fp) { fprintf (fp, "/* This file is automatically generated by i386-gen. Do not edit! */\n\ -/* Copyright 2007, 2008, 2009, 2010\n\ +/* Copyright 2007, 2008, 2009, 2010, 2010\n\ Free Software Foundation, Inc.\n\ \n\ This file is part of the GNU opcodes library.\n\ diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h index fe546b60e14..d8ef268a211 100644 --- a/opcodes/i386-init.h +++ b/opcodes/i386-init.h @@ -1,5 +1,5 @@ /* This file is automatically generated by i386-gen. Do not edit! */ -/* Copyright 2007, 2008, 2009, 2010 +/* Copyright 2007, 2008, 2009, 2010, 2010 Free Software Foundation, Inc. This file is part of the GNU opcodes library. diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 5c4e7e8e6ad..602ee2f9de1 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -1,5 +1,5 @@ /* This file is automatically generated by i386-gen. Do not edit! */ -/* Copyright 2007, 2008, 2009, 2010 +/* Copyright 2007, 2008, 2009, 2010, 2010 Free Software Foundation, Inc. This file is part of the GNU opcodes library. diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c index 972d3d9e223..f877a54001c 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c @@ -1,6 +1,7 @@ /* ppc-opc.c -- PowerPC opcode list Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008, 2009, 2010, 2011 + Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support This file is part of the GNU opcodes library. @@ -1909,7 +1910,7 @@ extract_dm (unsigned long insn, #define POWER7 PPC_OPCODE_POWER7 #define CELL PPC_OPCODE_CELL #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE -#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_PPCPS \ +#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \ | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN) #define PPC403 PPC_OPCODE_403 #define PPC405 PPC_OPCODE_405 @@ -1932,7 +1933,7 @@ extract_dm (unsigned long insn, #define MFDEC1 PPC_OPCODE_POWER #define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE | PPC_OPCODE_TITAN #define BOOKE PPC_OPCODE_BOOKE -#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS +#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_EFS #define PPCE300 PPC_OPCODE_E300 #define PPCSPE PPC_OPCODE_SPE #define PPCISEL PPC_OPCODE_ISEL