OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /open8_urisc/trunk/gnu/binutils/ld
    from Rev 148 to Rev 157
    Reverse comparison

Rev 148 → Rev 157

/Makefile.in
787,6 → 787,8
eelf64tilegx.c \
eelf_l1om.c \
eelf_l1om_fbsd.c \
eelf_k1om.c \
eelf_k1om_fbsd.c \
eelf_x86_64.c \
eelf_x86_64_fbsd.c \
eelf_x86_64_sol2.c \
1152,6 → 1154,8
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppcvxworks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppcwindiss.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32rx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32tilegx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32tilepro.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32vax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16x.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32xc16xl.Po@am__quote@
1177,6 → 1181,7
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ltsmip_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64mmix.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64ppc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf64tilegx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_chaos.Po@am__quote@
1184,6 → 1189,8
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_vxworks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_k1om.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_k1om_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_l1om.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_l1om_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_s390.Po@am__quote@
2342,6 → 2349,14
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_be "$(tdir_elf32_tic6x_be)"
eelf32_tic6x_elf_be.c: $(srcdir)/emulparams/elf32_tic6x_elf_be.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_be "$(tdir_elf32_tic6x_elf_be)"
eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_le "$(tdir_elf32_tic6x_elf_le)"
eelf32_tic6x_le.c: $(srcdir)/emulparams/elf32_tic6x_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
2354,14 → 2369,6
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_linux_le "$(tdir_elf32_tic6x_linux_le)"
eelf32_tic6x_elf_be.c: $(srcdir)/emulparams/elf32_tic6x_elf_be.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_be "$(tdir_elf32_tic6x_elf_be)"
eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_le "$(tdir_elf32_tic6x_elf_le)"
eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
$(srcdir)/emulparams/elf32am33lin.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
3406,10 → 3413,6
ldemul-list.h \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64lppc "$(tdir_elf64lppc)"
eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64tilegx "$(tdir_tilegx)"
eelf64ltsmip.c: $(srcdir)/emulparams/elf64ltsmip.sh \
$(srcdir)/emulparams/elf64btsmip.sh $(srcdir)/emulparams/elf64bmip-defs.sh \
$(srcdir)/emulparams/elf32bmipn32-defs.sh $(ELF_DEPS) \
3428,6 → 3431,10
ldemul-list.h \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64ppc "$(tdir_elf64ppc)"
eelf64tilegx.c: $(srcdir)/emulparams/elf64tilegx.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf64tilegx "$(tdir_tilegx)"
eelf_l1om.c: $(srcdir)/emulparams/elf_l1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_l1om "$(tdir_elf_l1om)"
3435,6 → 3442,13
$(srcdir)/emulparams/elf_l1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)"
eelf_k1om.c: $(srcdir)/emulparams/elf_k1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_k1om "$(tdir_elf_k1om)"
eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
$(srcdir)/emulparams/elf_k1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_k1om_fbsd "$(tdir_elf_k1om_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)"
/lexsup.c
175,6 → 175,7
OPTION_PLUGIN_OPT,
#endif /* ENABLE_PLUGINS */
OPTION_DEFAULT_SCRIPT,
OPTION_PRINT_OUTPUT_FORMAT,
};
 
/* The long options. This structure is used for both the option
491,6 → 492,8
{ {"oformat", required_argument, NULL, OPTION_OFORMAT},
'\0', N_("TARGET"), N_("Specify target of output file"),
EXACTLY_TWO_DASHES },
{ {"print-output-format", no_argument, NULL, OPTION_PRINT_OUTPUT_FORMAT},
'\0', NULL, N_("Print default output format"), TWO_DASHES },
{ {"qmagic", no_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for Linux compatibility"), ONE_DASH },
{ {"reduce-memory-overheads", no_argument, NULL,
1059,6 → 1062,9
case OPTION_OFORMAT:
lang_add_output_format (optarg, NULL, NULL, 0);
break;
case OPTION_PRINT_OUTPUT_FORMAT:
command_line.print_output_format = TRUE;
break;
#ifdef ENABLE_PLUGINS
case OPTION_PLUGIN:
if (plugin_opt_plugin (optarg))
/emultempl/elf32.em
2106,8 → 2106,6
fi
fi
 
if test -n "$PARSE_AND_LIST_ARGS_CASES" -o x"$GENERATE_SHLIB_SCRIPT" = xyes; then
 
if test -n "$PARSE_AND_LIST_PROLOGUE" ; then
fragment <<EOF
$PARSE_AND_LIST_PROLOGUE
2130,30 → 2128,43
(int ns, char **shortopts, int nl, struct option **longopts,
int nrl ATTRIBUTE_UNUSED, struct option **really_longopts ATTRIBUTE_UNUSED)
{
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
static const char xtra_short[] = "${PARSE_AND_LIST_SHORTOPTS}z:P:";
EOF
else
fragment <<EOF
static const char xtra_short[] = "${PARSE_AND_LIST_SHORTOPTS}z:";
EOF
fi
fragment <<EOF
static const struct option xtra_long[] = {
{"build-id", optional_argument, NULL, OPTION_BUILD_ID},
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
{"audit", required_argument, NULL, OPTION_AUDIT},
{"depaudit", required_argument, NULL, 'P'},
{"Bgroup", no_argument, NULL, OPTION_GROUP},
EOF
 
fi
fragment <<EOF
{"build-id", optional_argument, NULL, OPTION_BUILD_ID},
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
{"depaudit", required_argument, NULL, 'P'},
{"disable-new-dtags", no_argument, NULL, OPTION_DISABLE_NEW_DTAGS},
{"enable-new-dtags", no_argument, NULL, OPTION_ENABLE_NEW_DTAGS},
{"eh-frame-hdr", no_argument, NULL, OPTION_EH_FRAME_HDR},
{"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS},
{"hash-style", required_argument, NULL, OPTION_HASH_STYLE},
{"Bgroup", no_argument, NULL, OPTION_GROUP},
EOF
fi
 
if test -n "$PARSE_AND_LIST_LONGOPTS" ; then
fragment <<EOF
$PARSE_AND_LIST_LONGOPTS
EOF
fi
 
fragment <<EOF
{NULL, no_argument, NULL, 0}
};
2186,17 → 2197,19
if (strcmp (optarg, "none"))
link_info.emit_note_gnu_build_id = xstrdup (optarg);
break;
 
EOF
 
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
case OPTION_AUDIT:
gld${EMULATION_NAME}_append_to_separated_string (&audit, optarg);
break;
 
case 'P':
gld${EMULATION_NAME}_append_to_separated_string (&depaudit, optarg);
break;
 
EOF
 
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
case OPTION_DISABLE_NEW_DTAGS:
link_info.new_dtags = FALSE;
break;
2236,8 → 2249,46
einfo (_("%P%F: invalid hash style \`%s'\n"), optarg);
break;
 
EOF
fi
fragment <<EOF
case 'z':
if (strcmp (optarg, "initfirst") == 0)
if (strcmp (optarg, "defs") == 0)
link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
else if (strcmp (optarg, "muldefs") == 0)
link_info.allow_multiple_definition = TRUE;
else if (CONST_STRNEQ (optarg, "max-page-size="))
{
char *end;
 
config.maxpagesize = strtoul (optarg + 14, &end, 0);
if (*end || (config.maxpagesize & (config.maxpagesize - 1)) != 0)
einfo (_("%P%F: invalid maxium page size \`%s'\n"),
optarg + 14);
}
else if (CONST_STRNEQ (optarg, "common-page-size="))
{
char *end;
config.commonpagesize = strtoul (optarg + 17, &end, 0);
if (*end
|| (config.commonpagesize & (config.commonpagesize - 1)) != 0)
einfo (_("%P%F: invalid common page size \`%s'\n"),
optarg + 17);
}
else if (strcmp (optarg, "execstack") == 0)
{
link_info.execstack = TRUE;
link_info.noexecstack = FALSE;
}
else if (strcmp (optarg, "noexecstack") == 0)
{
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
else if (strcmp (optarg, "initfirst") == 0)
link_info.flags_1 |= (bfd_vma) DF_1_INITFIRST;
else if (strcmp (optarg, "interpose") == 0)
link_info.flags_1 |= (bfd_vma) DF_1_INTERPOSE;
2266,10 → 2317,6
link_info.flags |= (bfd_vma) DF_ORIGIN;
link_info.flags_1 |= (bfd_vma) DF_1_ORIGIN;
}
else if (strcmp (optarg, "defs") == 0)
link_info.unresolved_syms_in_objects = RM_GENERATE_ERROR;
else if (strcmp (optarg, "muldefs") == 0)
link_info.allow_multiple_definition = TRUE;
else if (strcmp (optarg, "combreloc") == 0)
link_info.combreloc = TRUE;
else if (strcmp (optarg, "nocombreloc") == 0)
2276,50 → 2323,18
link_info.combreloc = FALSE;
else if (strcmp (optarg, "nocopyreloc") == 0)
link_info.nocopyreloc = TRUE;
else if (strcmp (optarg, "execstack") == 0)
{
link_info.execstack = TRUE;
link_info.noexecstack = FALSE;
}
else if (strcmp (optarg, "noexecstack") == 0)
{
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
EOF
 
if test -n "$COMMONPAGESIZE"; then
fragment <<EOF
else if (strcmp (optarg, "relro") == 0)
link_info.relro = TRUE;
else if (strcmp (optarg, "norelro") == 0)
link_info.relro = FALSE;
EOF
fi
fi
 
fragment <<EOF
else if (CONST_STRNEQ (optarg, "max-page-size="))
{
char *end;
 
config.maxpagesize = strtoul (optarg + 14, &end, 0);
if (*end || (config.maxpagesize & (config.maxpagesize - 1)) != 0)
einfo (_("%P%F: invalid maxium page size \`%s'\n"),
optarg + 14);
}
else if (CONST_STRNEQ (optarg, "common-page-size="))
{
char *end;
config.commonpagesize = strtoul (optarg + 17, &end, 0);
if (*end
|| (config.commonpagesize & (config.commonpagesize - 1)) != 0)
einfo (_("%P%F: invalid common page size \`%s'\n"),
optarg + 17);
}
/* What about the other Solaris -z options? FIXME. */
else
einfo (_("%P: warning: -z %s ignored.\n"), optarg);
break;
EOF
fi
 
if test -n "$PARSE_AND_LIST_ARGS_CASES" ; then
fragment <<EOF
2341,19 → 2356,24
static void
gld${EMULATION_NAME}_list_options (FILE * file)
{
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
--build-id[=STYLE] Generate build ID note\n"));
fprintf (file, _("\
--audit=AUDITLIB Specify a library to use for auditing\n"));
fprintf (file, _("\
-P AUDITLIB, --depaudit=AUDITLIB\n" "\
Specify a library to use for auditing dependencies\n"));
-Bgroup Selects group name lookup rules for DSO\n"));
EOF
 
fi
fragment <<EOF
fprintf (file, _("\
--build-id[=STYLE] Generate build ID note\n"));
EOF
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
-Bgroup Selects group name lookup rules for DSO\n"));
-P AUDITLIB, --depaudit=AUDITLIB\n" "\
Specify a library to use for auditing dependencies\n"));
fprintf (file, _("\
--disable-new-dtags Disable new dynamic tags\n"));
fprintf (file, _("\
2361,13 → 2381,25
fprintf (file, _("\
--eh-frame-hdr Create .eh_frame_hdr section\n"));
fprintf (file, _("\
--exclude-libs=LIBS Make all symbols in LIBS hidden\n"));
fprintf (file, _("\
--hash-style=STYLE Set hash style to sysv, gnu or both\n"));
fprintf (file, _("\
-z combreloc Merge dynamic relocs into one section and sort\n"));
EOF
fi
 
fragment <<EOF
fprintf (file, _("\
-z common-page-size=SIZE Set common page size to SIZE\n"));
fprintf (file, _("\
-z defs Report unresolved symbols in object files.\n"));
fprintf (file, _("\
-z execstack Mark executable as requiring executable stack\n"));
EOF
 
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
-z initfirst Mark DSO to be initialized first at runtime\n"));
fprintf (file, _("\
2376,8 → 2408,18
-z lazy Mark object lazy runtime binding (default)\n"));
fprintf (file, _("\
-z loadfltr Mark object requiring immediate process\n"));
EOF
fi
 
fragment <<EOF
fprintf (file, _("\
-z max-page-size=SIZE Set maximum page size to SIZE\n"));
fprintf (file, _("\
-z muldefs Allow multiple definitions\n"));
EOF
 
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
-z nocombreloc Don't merge dynamic relocs into one section\n"));
fprintf (file, _("\
2390,40 → 2432,24
-z nodlopen Mark DSO not available to dlopen\n"));
fprintf (file, _("\
-z nodump Mark DSO not available to dldump\n"));
EOF
fi
fragment <<EOF
fprintf (file, _("\
-z noexecstack Mark executable as not requiring executable stack\n"));
EOF
 
if test -n "$COMMONPAGESIZE"; then
if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
fragment <<EOF
fprintf (file, _("\
-z norelro Don't create RELRO program header\n"));
EOF
fi
 
fragment <<EOF
fprintf (file, _("\
-z now Mark object non-lazy runtime binding\n"));
fprintf (file, _("\
-z origin Mark object requiring immediate \$ORIGIN\n\
processing at runtime\n"));
EOF
 
if test -n "$COMMONPAGESIZE"; then
fragment <<EOF
fprintf (file, _("\
-z relro Create RELRO program header\n"));
EOF
fi
 
fragment <<EOF
fprintf (file, _("\
-z max-page-size=SIZE Set maximum page size to SIZE\n"));
fprintf (file, _("\
-z common-page-size=SIZE Set common page size to SIZE\n"));
fprintf (file, _("\
-z KEYWORD Ignored for Solaris compatibility\n"));
EOF
fi
 
if test -n "$PARSE_AND_LIST_OPTIONS" ; then
2442,17 → 2468,6
EOF
fi
fi
else
fragment <<EOF
#define gld${EMULATION_NAME}_add_options NULL
#define gld${EMULATION_NAME}_handle_option NULL
EOF
if test x"$LDEMUL_LIST_OPTIONS" != xgld"$EMULATION_NAME"_list_options; then
fragment <<EOF
#define gld${EMULATION_NAME}_list_options NULL
EOF
fi
fi
 
fragment <<EOF
 
/emultempl/ppc64elf.em
61,6 → 61,9
/* Whether to sort input toc and got sections. */
static int no_toc_sort = 0;
 
/* Set if PLT call stubs should load r11. */
static int plt_static_chain = 0;
 
/* Whether to emit symbols for stubs. */
static int emit_stub_syms = -1;
 
500,7 → 503,7
einfo ("%P: .init/.fini fragments use differing TOC pointers\n");
 
/* Call into the BFD backend to do the real work. */
if (!ppc64_elf_size_stubs (&link_info, group_size))
if (!ppc64_elf_size_stubs (&link_info, group_size, plt_static_chain))
einfo ("%X%P: can not size stub section: %E\n");
}
}
649,9 → 652,11
# Define some shell vars to insert bits of code into the standard elf
# parse_args and list_options functions.
#
PARSE_AND_LIST_PROLOGUE='
#define OPTION_STUBGROUP_SIZE 301
#define OPTION_STUBSYMS (OPTION_STUBGROUP_SIZE + 1)
PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}'
#define OPTION_STUBGROUP_SIZE 321
#define OPTION_PLT_STATIC_CHAIN (OPTION_STUBGROUP_SIZE + 1)
#define OPTION_NO_PLT_STATIC_CHAIN (OPTION_PLT_STATIC_CHAIN + 1)
#define OPTION_STUBSYMS (OPTION_NO_PLT_STATIC_CHAIN + 1)
#define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1)
#define OPTION_DOTSYMS (OPTION_NO_STUBSYMS + 1)
#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1)
664,8 → 669,10
#define OPTION_NON_OVERLAPPING_OPD (OPTION_NO_TOC_SORT + 1)
'
 
PARSE_AND_LIST_LONGOPTS='
PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
{ "stub-group-size", required_argument, NULL, OPTION_STUBGROUP_SIZE },
{ "plt-static-chain", no_argument, NULL, OPTION_PLT_STATIC_CHAIN },
{ "no-plt-static-chain", no_argument, NULL, OPTION_NO_PLT_STATIC_CHAIN },
{ "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
{ "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS },
{ "dotsyms", no_argument, NULL, OPTION_DOTSYMS },
679,7 → 686,7
{ "non-overlapping-opd", no_argument, NULL, OPTION_NON_OVERLAPPING_OPD },
'
 
PARSE_AND_LIST_OPTIONS='
PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
fprintf (file, _("\
--stub-group-size=N Maximum size of a group of input sections that\n\
can be handled by one stub section. A negative\n\
691,6 → 698,12
choose suitable defaults.\n"
));
fprintf (file, _("\
--plt-static-chain PLT call stubs should load r11.\n"
));
fprintf (file, _("\
--no-plt-static-chain PLT call stubs should not load r11. (default)\n"
));
fprintf (file, _("\
--emit-stub-syms Label linker stubs with a symbol.\n"
));
fprintf (file, _("\
729,7 → 742,7
));
'
 
PARSE_AND_LIST_ARGS_CASES='
PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
case OPTION_STUBGROUP_SIZE:
{
const char *end;
739,6 → 752,14
}
break;
 
case OPTION_PLT_STATIC_CHAIN:
plt_static_chain = 1;
break;
 
case OPTION_NO_PLT_STATIC_CHAIN:
plt_static_chain = 0;
break;
 
case OPTION_STUBSYMS:
emit_stub_syms = 1;
break;
/emultempl/armelf.em
42,6 → 42,7
static int no_wchar_size_warning = 0;
static int pic_veneer = 0;
static int merge_exidx_entries = -1;
static int fix_arm1176 = 1;
 
static void
gld${EMULATION_NAME}_before_parse (void)
464,7 → 465,8
target2_type, fix_v4bx, use_blx,
vfp11_denorm_fix, no_enum_size_warning,
no_wchar_size_warning,
pic_veneer, fix_cortex_a8);
pic_veneer, fix_cortex_a8,
fix_arm1176);
 
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
529,6 → 531,8
#define OPTION_FIX_CORTEX_A8 314
#define OPTION_NO_FIX_CORTEX_A8 315
#define OPTION_NO_MERGE_EXIDX_ENTRIES 316
#define OPTION_FIX_ARM1176 317
#define OPTION_NO_FIX_ARM1176 318
'
 
PARSE_AND_LIST_SHORTOPTS=p
551,6 → 555,8
{ "fix-cortex-a8", no_argument, NULL, OPTION_FIX_CORTEX_A8 },
{ "no-fix-cortex-a8", no_argument, NULL, OPTION_NO_FIX_CORTEX_A8 },
{ "no-merge-exidx-entries", no_argument, NULL, OPTION_NO_MERGE_EXIDX_ENTRIES },
{ "fix-arm1176", no_argument, NULL, OPTION_FIX_ARM1176 },
{ "no-fix-arm1176", no_argument, NULL, OPTION_NO_FIX_ARM1176 },
'
 
PARSE_AND_LIST_OPTIONS='
579,7 → 585,7
));
fprintf (file, _(" --[no-]fix-cortex-a8 Disable/enable Cortex-A8 Thumb-2 branch erratum fix\n"));
fprintf (file, _(" --no-merge-exidx-entries Disable merging exidx entries\n"));
fprintf (file, _(" --[no-]fix-arm1176 Disable/enable ARM1176 BLX immediate erratum fix\n"));
'
 
PARSE_AND_LIST_ARGS_CASES='
662,7 → 668,15
 
case OPTION_NO_MERGE_EXIDX_ENTRIES:
merge_exidx_entries = 0;
break;
 
case OPTION_FIX_ARM1176:
fix_arm1176 = 1;
break;
 
case OPTION_NO_FIX_ARM1176:
fix_arm1176 = 0;
break;
'
 
# We have our own before_allocation etc. functions, but they call
/emultempl/ppc32elf.em
1,5 → 1,6
# This shell script emits a C file. -*- C -*-
# Copyright 2003, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
# Copyright 2003, 2005, 2007, 2008, 2009, 2010, 2011
# Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
176,8 → 177,8
# Define some shell vars to insert bits of code into the standard elf
# parse_args and list_options functions.
#
PARSE_AND_LIST_PROLOGUE='
#define OPTION_NO_TLS_OPT 301
PARSE_AND_LIST_PROLOGUE=${PARSE_AND_LIST_PROLOGUE}'
#define OPTION_NO_TLS_OPT 321
#define OPTION_NO_TLS_GET_ADDR_OPT (OPTION_NO_TLS_OPT + 1)
#define OPTION_NEW_PLT (OPTION_NO_TLS_GET_ADDR_OPT + 1)
#define OPTION_OLD_PLT (OPTION_NEW_PLT + 1)
186,7 → 187,7
#define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1)
'
 
PARSE_AND_LIST_LONGOPTS='
PARSE_AND_LIST_LONGOPTS=${PARSE_AND_LIST_LONGOPTS}'
{ "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS },
{ "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS },
{ "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
196,7 → 197,7
{ "sdata-got", no_argument, NULL, OPTION_OLD_GOT },
'
 
PARSE_AND_LIST_OPTIONS='
PARSE_AND_LIST_OPTIONS=${PARSE_AND_LIST_OPTIONS}'
fprintf (file, _("\
--emit-stub-syms Label linker stubs with a symbol.\n\
--no-emit-stub-syms Don'\''t label linker stubs with a symbol.\n\
208,7 → 209,7
));
'
 
PARSE_AND_LIST_ARGS_CASES='
PARSE_AND_LIST_ARGS_CASES=${PARSE_AND_LIST_ARGS_CASES}'
case OPTION_STUBSYMS:
emit_stub_syms = 1;
break;
/mri.c
215,6 → 215,7
tmp->spec.name = p->name;
tmp->spec.exclude_name_list = NULL;
tmp->spec.sorted = none;
tmp->spec.section_flag_list = NULL;
lang_add_wild (NULL, tmp, FALSE);
 
/* If there is an alias for this section, add it too. */
226,6 → 227,7
tmp->spec.name = aptr->name;
tmp->spec.exclude_name_list = NULL;
tmp->spec.sorted = none;
tmp->spec.section_flag_list = NULL;
lang_add_wild (NULL, tmp, FALSE);
}
 
/NEWS
1,5 → 1,13
-*- text -*-
 
* --copy-dt-needed-entries is no longer enabled by default. Instead
--no-copy-dt-needed-entries is the default.
 
* INPUT_SECTION_FLAGS has been added to the linker script language
to allow selection of input sections by section header section flags.
 
* Add support for the Tilera TILEPRO and TILE-Gx architectures.
 
* Added SORT_BY_INIT_PRIORITY to the linker script language to permit
sorting sections by numerical value of the GCC init_priority attribute
encoded in the section name.
6,7 → 14,6
 
Changes in 2.21:
 
 
* Linker script expression evaluation is somewhat more sane. This may
break scripts that depend on quirks of the old expression evaluation.
 
/ld.h
96,6 → 96,7
const char *name;
struct name_list *exclude_name_list;
sort_type sorted;
struct flag_info *section_flag_list;
};
 
struct wildcard_list {
199,6 → 200,9
input files. */
bfd_boolean accept_unknown_input_arch;
 
/* If TRUE we'll just print the default output on stdout. */
bfd_boolean print_output_format;
 
/* Big or little endian as set on command line. */
enum endian_enum endian;
 
/ChangeLog
1,3 → 1,189
2011-08-26 Nick Clifton <nickc@redhat.com>
 
* po/es.po: Updated Spanish translation.
 
2011-08-26 Nick Clifton <nickc@redhat.com>
 
* NEWS: Mention that --no-copy-dt-needed-entries is now the
default.
 
2011-08-22 Michael Matz <matz@suse.de>
 
* ldmain.c (add_DT_NEEDED_for_dynamic): Default to FALSE.
* ld.texinfo (--copy-dt-needed-entries): Mention new default.
 
2011-08-17 Alan Modra <amodra@gmail.com>
 
PR ld/12762
* ldlang.c (section_already_linked): Revert 2011-07-09 changes.
* plugin.c: Likewise.
(asymbol_from_plugin_symbol): Create linkonce section for syms
with comdat_key.
 
2011-08-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
 
* emultempl/armelf.em (fix_arm1176): New variable.
(arm_elf_create_output_section_statements): Pass
fix_arm1176 option to bfd backend.
(OPTION_FIX_ARM1176): New define.
(OPTION_NO_FIX_ARM1176): Likewise.
(PARSE_AND_LIST_LONGOPTS): Add new command line options.
(PARSE_AND_LIST_OPTIONS): Likewise.
(PARSE_AND_LIST_ARGS_CASES): Likewise.
* ld.texinfo: Document new command line options.
 
2011-08-09 Alan Modra <amodra@gmail.com>
 
PR ld/13066
* plugin.c (add_symbols): Revert 2011-08-05.
 
2011-08-06 Kai Tietz <ktietz@redhat.com>
 
* scripttempl/pep.sc: Add .debug_macro section.
* scripttempl/pe.sc: Likewise.
 
2011-08-05 Alan Modra <amodra@gmail.com>
 
PR ld/12762
* plugin.c (add_symbols): Exclude comdat_key symbols from symbol
table if already seen.
 
2011-08-04 H.J. Lu <hongjiu.lu@intel.com>
 
* ldmain.c (main): Replace remove_output with ld_cleanup in
comments.
 
2011-07-26 Alan Modra <amodra@gmail.com>
 
* emulparams/elf32ppc.sh: Source plt_unwind.sh.
* emulparams/elf64ppc.sh: Likewise.
* emultempl/ppc32elf.em (OPTION_NO_TLS_OPT): Adjust.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
existing values.
* emultempl/ppc64elf.em (OPTION_STUBGROUP_SIZE): Adjust.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Append to
existing values.
 
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
 
* Makefile.am (ALL_64_EMULATIONS): Add eelf_k1om.o and
eelf_k1om_fbsd.o
(eelf_k1om.c): New.
(eelf_k1om_fbsd.c): Likewise.
* Makefile.in: Regenerated.
 
* configure.tgt (targ64_extra_emuls): Add elf_k1om if elf_x86_64
is supported. Add elf_k1om_fbsd if elf_x86_64_fbsd is supported.
(targ_extra_emuls): Likewise.
 
* emulparams/elf_k1om.sh: New.
* emulparams/elf_k1om_fbsd.sh: Likewise.
 
2011-07-16 Roland McGrath <roland@hack.frob.com>
 
* ld.h (args_type): New field print_output_format.
* lexsup.c (enum option_values, ld_options, parse_args):
Handle --print-output-format.
* ldmain.c (main): Implement --print-output-format.
* ld.texinfo (Options): Document it.
 
* ldlang.c (lang_get_output_target): Don't return current_target
when it's NULL.
 
2011-07-15 Alan Modra <amodra@gmail.com>
 
* Makefile.am (e*.c): Sort.
* Makefile.in: Regenerate.
 
2011-07-14 Alan Modra <amodra@gmail.com>
 
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option,
gld${EMULATION_NAME}_list_options): Don't condition -z relro
and -z norelro on COMMONPAGESIZE being defined.
 
2011-07-14 Alan Modra <amodra@gmail.com>
 
* emultempl/ppc64elf.em (plt_static_chain): New var.
(gld${EMULATION_NAME}_after_allocation): Pass to ppc64_elf_size_stubs.
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES): Handle
--plt-static-chain and --no-plt-static-chain.
 
2011-07-14 Alan Modra <amodra@gmail.com>
 
* emultempl/elf32.em (gld${EMULATION_NAME}_add_options,
gld${EMULATION_NAME}_handle_option, gld${EMULATION_NAME}_list_options):
Provide --build-id, -z defs, -z muldefs, -z max-page-size,
-z common-page-size, -z execstack, -z noexecstack for all targets.
Add help for --exclude-libs.
(OPTION_LD_GENERATED_UNWIND_INFO,
OPTION_NO_LD_GENERATED_UNWIND_INFO): Move this..
(gld${EMULATION_NAME}_handle_option): ..and code handling
--ld-generated-unwind-info and --no-ld-generated-unwind-info..
* emulparams/plt_unwind.sh: ..to here. New file. Add help.
* emulparams/elf32_x86_64.sh: Include plt_unwind.sh.
* emulparams/elf_i386.sh: Likewise.
* emulparams/elf_i386_chaos.sh: Likewise.
* emulparams/elf_i386_ldso.sh: Likewise.
* emulparams/elf_l1om.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.
 
2011-07-11 Catherine Moore <clm@codesourcery.com>
 
* ld.h (section_flag_list): Add field to struct wildcard_spec.
* ld.texinfo (INPUT_SECTION_FLAGS): Document.
* ldgram.y (flag_info_list, flag_info): Add to union.
(INPUT_SECTION_FLAGS): New token.
(wildcard_spec): Initialize section_flag_list to NULL for
each alternative.
(sect_flag_list, sect_flags): New rules.
(input_section_spec_no_keep): Add alternatives to recognize
sect_flags.
* ldlang.c (walk_wild_consider_section): Initialize
section_flag_info field of the section struct.
(lang_add_section): Check input section flags.
(lang_add_wild): Initialize section_flag_list field of
the statement struct.
* ldlang.h (lang_input_statement_struct): Add section_flag_list field.
(lang_wild_statement_struct): Likewise.
* ldlex.l (INPUT_SECTION_FLAGS): New token.
* mri.c (mri_draw_tree): Initialize section_flag_list to NULL.
* NEWS: Announce INPUT_SECTION_FLAGS enhancement.
 
2011-07-09 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/12942
* ldlang.c (section_already_linked): Pass "struct already_linked *"
to bfd_section_already_linked.
(lang_process): Set link_info.loading_lto_outputs before
loading LTO outputs.
* plugin.c: Include "libbfd.h".
(add_symbols): Call bfd_section_already_linked with comdat_key.
 
2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
 
* configure.tgt: Revert x32 change.
 
2011-06-20 Jakub Jelinek <jakub@redhat.com>
 
PR ld/12570
* emultempl/elf32.em (OPTION_LD_GENERATED_UNWIND_INFO,
OPTION_NO_LD_GENERATED_UNWIND_INFO): Define.
(gld${EMULATION_NAME}_handle_option): Handle
--ld-generated-unwind-info and --no-ld-generated-unwind-info.
* ld.texinfo (--ld-generated-unwind-info,
--no-ld-generated-unwind-info): Document.
 
2011-06-19 H.J. Lu <hongjiu.lu@intel.com>
 
* configure.tgt: Support x32.
 
2011-06-15 Nick Clifton <nickc@redhat.com>
 
* NEWS: Mention addition of TILEPRO and TIKE-Gx support.
 
2011-06-13 Walter Lee <walt@tilera.com>
 
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf32tilegx.c and
350,7 → 536,7
2011-03-31 H.J. Lu <hongjiu.lu@intel.com>
 
* configure.tgt: Add elf_l1om to targ_extra_libpath for
x86_64-*-linux-*.
x86_64-*-linux-*.
 
* emulparams/elf_l1om.sh: Remove duplicates.
 
/testsuite/ld-shared/shared.exp
234,7 → 234,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "sparc*-*-linux*"
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "x86_64-*-linux*"
}
setup_xfail "s390x-*-linux*"
if [ string match $shared_needs_pic "yes" ] {
setup_xfail "arm*-*-linux*"
257,7 → 259,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "sparc*-*-linux*"
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "x86_64-*-linux*"
}
setup_xfail "s390x-*-linux*"
if [ string match $shared_needs_pic "yes" ] {
setup_xfail "arm*-*-linux*"
310,7 → 314,9
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } {
setup_xfail "sparc*-*-linux*"
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainp.o] } {
setup_xfail "x86_64-*-linux*"
}
setup_xfail "s390x-*-linux*"
if [ string match $shared_needs_pic "yes" ] {
setup_xfail "arm*-*-linux*"
/testsuite/ld-arm/fix-arm1176-on.d
0,0 → 1,20
 
.+: file format elf32-littlearm
 
 
Disassembly of section .foo:
 
[0-9a-f]+ <_start>:
[0-9a-f]+: f000 f800 bl 2001018 <__func_to_branch_to_veneer>
 
[0-9a-f]+ <__func_to_branch_to_veneer>:
[0-9a-f]+: 4778 bx pc
[0-9a-f]+: 46c0 nop ; \(mov r8, r8\)
[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 2001020 <__func_to_branch_to_veneer\+0x8>
[0-9a-f]+: 00008000 .word 0x00008000
[0-9a-f]+: 00000000 .word 0x00000000
 
Disassembly of section .text:
 
[0-9a-f]+ <func_to_branch_to>:
[0-9a-f]+: e12fff1e bx lr
/testsuite/ld-arm/fix-arm1176.s
0,0 → 1,15
.syntax unified
.globl _start
.globl func_to_branch_to
 
.arm
.text
func_to_branch_to:
bx lr
 
.thumb
.section .foo, "xa"
.thumb_func
_start:
bl func_to_branch_to
 
/testsuite/ld-arm/arm-elf.exp
137,7 → 137,7
{"arm-rel32" "-shared -T arm-dyn.ld" "" {arm-rel32.s}
{{objdump -Rsj.data arm-rel32.d}}
"arm-rel32"}
{"arm-call" "-static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s}
{"arm-call" "--no-fix-arm1176 -static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s}
{{objdump -d arm-call.d}}
"arm-call"}
{"TLS shared library" "-shared -T arm-lib.ld" "" {tls-lib.s}
149,16 → 149,16
{"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" {tls-gdesc-got.s}
{{objdump "-fDR -j .got" tls-gdesc-got.d}}
"tls-lib2-got.so"}
{"TLS gnu shared library inlined trampoline" "-shared -T arm-dyn.ld" "" {tls-descseq.s}
{"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-descseq.s}
{{objdump -fdw tls-descseq.d} {objdump -Rw tls-descseq.r}}
"tls-lib2inline.so"}
{"TLS shared library gdesc local" "-shared -T arm-dyn.ld" "" {tls-lib-loc.s}
{"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-lib-loc.s}
{{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}}
"tls-lib-loc.so"}
{"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" {tls-gdierelax.s}
{{objdump -fdw tls-gdierelax.d}}
"tls-app-rel-ie"}
{"TLS gnu GD to IE shared relaxation" "-shared -T arm-dyn.ld" "" {tls-gdierelax2.s}
{"TLS gnu GD to IE shared relaxation" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdierelax2.s}
{{objdump -fdw tls-gdierelax2.d}}
"tls-app-rel-ie2"}
{"TLS gnu GD to LE relaxation" "-T arm-dyn.ld" "" {tls-gdlerelax.s}
507,7 → 507,7
{"MOVW/MOVT against shared libraries" "tmpdir/arm-lib.so" "" {arm-app-movw.s}
{{objdump -Rw arm-app.r}}
"arm-app-movw"}
{"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s}
{"Thumb-2-as-Thumb-1 BL" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-as-thumb1-bad.s}
{{objdump -d thumb2-bl-as-thumb1-bad.d}}
"thumb2-bl-as-thumb1-bad"}
{"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" {thumb2-bl-bad.s}
530,7 → 530,7
{"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s}
{{objdump -d farcall-arm-thumb.d}}
"farcall-arm-thumb"}
{"ARM-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-arm-thumb.s}
{"ARM-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-arm-thumb.s}
{{objdump -d farcall-arm-thumb-blx.d}}
"farcall-arm-thumb-blx"}
{"ARM-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "" {farcall-arm-thumb.s}
540,7 → 540,7
{{objdump -d farcall-arm-thumb-blx-pic-veneer.d}}
"farcall-arm-thumb-blx-pic-veneer"}
 
{"Thumb-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s}
{"Thumb-Thumb farcall with BLX" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-blx.d}}
"farcall-thumb-thumb-blx"}
{"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv7-m" {farcall-thumb-thumb.s}
552,7 → 552,7
{"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv4t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb.d}}
"farcall-thumb-thumb"}
{"Thumb-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s}
{"Thumb-Thumb farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-blx-pic-veneer.d}}
"farcall-thumb-thumb-blx-pic-veneer"}
{"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv7-m" {farcall-thumb-thumb.s}
574,10 → 574,10
{"Thumb-ARM (short) call" "-Ttext 0x1000 --section-start .foo=0x0002014" "-W" {farcall-thumb-arm-short.s}
{{objdump -d farcall-thumb-arm-short.d}}
"farcall-thumb-arm-short"}
{"Thumb-ARM farcall with BLX" "-Ttext 0x1c01010 --section-start .foo=0x2001014" "-W -march=armv5t" {farcall-thumb-arm.s}
{"Thumb-ARM farcall with BLX" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014" "-W -march=armv5t" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm-blx.d}}
"farcall-thumb-arm-blx"}
{"Thumb-ARM farcall with BLX (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W -march=armv5t" {farcall-thumb-arm.s}
{"Thumb-ARM farcall with BLX (PIC veneer)" "--no-fix-arm1176 -Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W -march=armv5t" {farcall-thumb-arm.s}
{{objdump -d farcall-thumb-arm-blx-pic-veneer.d}}
"farcall-thumb-arm-blx-pic-veneer"}
{"Thumb-ARM farcall (PIC veneer)" "-Ttext 0x1c01010 --section-start .foo=0x2001014 --pic-veneer" "-W" {farcall-thumb-arm.s}
617,7 → 617,7
{{objdump -fdw farcall-mixed-lib-v4t.d}}
"farcall-mixed-lib.so"}
 
{"Mixed ARM/Thumb shared library with long branches (v5t)" "-shared -T arm-lib.ld" "-march=armv5t"
{"Mixed ARM/Thumb shared library with long branches (v5t)" "--no-fix-arm1176 -shared -T arm-lib.ld" "-march=armv5t"
{farcall-mixed-lib1.s farcall-mixed-lib2.s}
{{objdump -fdw farcall-mixed-lib.d}}
"farcall-mixed-lib.so"}
627,24 → 627,24
"farcall-data"}
 
{"R_ARM_THM_JUMP24 Relocation veneers: Short 1"
"--section-start destsect=0x00009000 --section-start .text=0x8000"
"--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000"
"-march=armv7-a -mthumb"
{jump-reloc-veneers.s}
{{objdump -d jump-reloc-veneers-short1.d}}
"jump-reloc-veneers-short1"}
{"R_ARM_THM_JUMP24 Relocation veneers: Short 2"
"--section-start destsect=0x00900000 --section-start .text=0x8000"
"--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000"
"-march=armv7-a -mthumb"
{jump-reloc-veneers.s}
{{objdump -d jump-reloc-veneers-short2.d}}
"jump-reloc-veneers-short2"}
{"R_ARM_THM_JUMP24 Relocation veneers: Long"
"--section-start destsect=0x09000000 --section-start .text=0x8000"
"--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000"
"-march=armv7-a -mthumb"
{jump-reloc-veneers.s}
{{objdump -d jump-reloc-veneers-long.d}}
"jump-reloc-veneers-long"}
{"TLS gnu shared library" "-shared -T arm-dyn.ld" "" {tls-gdesc.s}
{"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdesc.s}
{{objdump -fdw tls-gdesc.d} {objdump -Rw tls-gdesc.r}}
"tls-lib2.so"}
{"TLS gnu shared library non-lazy" "-z now -shared -T arm-dyn.ld" "" {tls-gdesc.s}
659,6 → 659,31
{"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-thumb1.s}
{{objdump -fdw tls-thumb1.d}}
"tls-thumb1"}
 
{"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014"
"-march=armv6z" {fix-arm1176.s}
{{objdump -d fix-arm1176-on.d}}
"fix-arm1176-1"}
{"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176"
"-march=armv6z" {fix-arm1176.s}
{{objdump -d fix-arm1176-on.d}}
"fix-arm1176-2"}
{"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176"
"-march=armv6z" {fix-arm1176.s}
{{objdump -d fix-arm1176-off.d}}
"fix-arm1176-3"}
{"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 "
"-march=armv5te" {fix-arm1176.s}
{{objdump -d fix-arm1176-on.d}}
"fix-arm1176-4"}
{"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 "
"-march=armv7-a" {fix-arm1176.s}
{{objdump -d fix-arm1176-off.d}}
"fix-arm1176-5"}
{"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 "
"-mcpu=arm1156t2f-s" {fix-arm1176.s}
{{objdump -d fix-arm1176-off.d}}
"fix-arm1176-6"}
}
 
run_ld_link_tests $armeabitests
/testsuite/ld-arm/fix-arm1176-off.d
0,0 → 1,17
 
.*: file format elf32-littlearm
 
 
Disassembly of section .foo:
 
[0-9a-f]+ <_start>:
[0-9a-f]+: f000 e800 blx 2001018 <__func_to_branch_to_veneer>
 
[0-9a-f]+ <__func_to_branch_to_veneer>:
[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 200101c <__func_to_branch_to_veneer\+0x4>
[0-9a-f]+: 00008000 .word 0x00008000
 
Disassembly of section .text:
 
[0-9a-f]+ <func_to_branch_to>:
[0-9a-f]+: e12fff1e bx lr
/testsuite/ld-powerpc/tlsexe.d
21,7 → 21,6
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 48 ld r11,-32696\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 58 ld r11,-32680\(r2\)
.* e8 42 80 50 ld r2,-32688\(r2\)
.* 4e 80 04 21 bctrl
.* e9 61 00 20 ld r11,32\(r1\)
34,7 → 33,7
.* 60 00 00 00 nop
.* 7c 63 6a 14 add r3,r3,r13
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff a5 bl .*
.* 4b ff ff a9 bl .*
.* 60 00 00 00 nop
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
68,7 → 67,6
.* e9 4d 90 2a lwa r10,-28632\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 90 30 lha r10,-28624\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 00 .*
.* <__glink_PLTresolve>:
/testsuite/ld-powerpc/tlsexe.g
7,6 → 7,6
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 10018618 ffffffff ffff8018 .*
.* 00000000 10018610 ffffffff ffff8018 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
/testsuite/ld-powerpc/tlsexe.r
16,11 → 16,10
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+130 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.text +PROGBITS .* 0+128 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+160 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt + PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+30 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
47,7 → 46,7
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+03 +\.tdata \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
87,7 → 86,6
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* SECTION +LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
/testsuite/ld-powerpc/tocopt3.d
0,0 → 1,5
 
.*: file format .*
 
Contents of section \.text:
100000b0 3d22effe 39297f4a .*
/testsuite/ld-powerpc/tocopt3.s
0,0 → 1,9
.section .toc,"aw"
0:
.quad x
 
.globl _start
.text
_start:
addis 9,2,0b@toc@ha
ld 9,0b@toc@l(9)
/testsuite/ld-powerpc/powerpc.exp
113,11 → 113,11
"tls32"}
{"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {}
{} "libtlslib32.so"}
{"TLS32 dynamic exec" "-melf32ppc tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
{"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
{{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
{objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
"tlsexe32"}
{"TLS32 shared" "-shared -melf32ppc tmpdir/tls32.o" "" {}
{"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" {}
{{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
{objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
"tls32.so"}
156,15 → 156,15
{} "libtlslib.so"}
{"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s}
{} "liboldlib.so"}
{"TLS dynamic exec" "-melf64ppc tmpdir/tls.o tmpdir/libtlslib.so" "" {}
{"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexe"}
{"TLS dynamic old" "-melf64ppc tmpdir/tls.o tmpdir/liboldlib.so" "" {}
{"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" {}
{{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
{objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
"tlsexeold"}
{"TLS shared" "-shared -melf64ppc tmpdir/tls.o" "" {}
{"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" {}
{{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
{objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
"tls.so"}
172,17 → 172,17
{{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
{objdump -sj.tdata tlstoc.t}}
"tlstoc"}
{"TLSTOC dynamic exec" "-melf64ppc tmpdir/tlstoc.o tmpdir/libtlslib.so"
{"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so"
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetoc"}
{"TLSTOC dynamic old" "-melf64ppc tmpdir/tlstoc.o tmpdir/liboldlib.so"
{"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so"
"" {}
{{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
{objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
"tlsexetocold"}
{"TLSTOC shared" "-shared -melf64ppc tmpdir/tlstoc.o" "" {}
{"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" {}
{{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
{objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
"tlstoc.so"}
204,7 → 204,13
{"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
{"TOC opt" "-melf64ppc" "-a64" {tocopt.s}
{{objdump -s tocopt.d}} "tocopt"}
{{objdump -s tocopt.d}} "tocopt"}
{"TOC opt2" "-melf64ppc --defsym x=2" "-a64" {tocopt2.s}
{{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"}
{"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "-a64" {tocopt3.s}
{{objdump -s tocopt3.d}} "tocopt3"}
{"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "-a64"
{tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"}
}
 
 
/testsuite/ld-powerpc/tocopt4.d
0,0 → 1,7
 
.*: file format .*
 
Contents of section \.text:
100000b0 e9298000 .*
Contents of section \.got:
100100b8 00000000 00000002 .*
/testsuite/ld-powerpc/tlsso.d
12,22 → 12,21
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 78 ld r11,-32648\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 88 ld r11,-32632\(r2\)
.* e8 42 80 80 ld r2,-32640\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 20 addi r3,r2,-32736
.* 4b ff ff e5 bl .*
.* 4b ff ff e9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff d9 bl .*
.* 4b ff ff dd bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff cd bl .*
.* 4b ff ff d1 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff c1 bl .*
.* 4b ff ff c5 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
40,10 → 39,10
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff 8d bl .*
.* 4b ff ff 91 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 50 addi r3,r2,-32688
.* 4b ff ff 81 bl .*
.* 4b ff ff 85 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* f9 43 80 08 std r10,-32760\(r3\)
.* 3d 23 00 00 addis r9,r3,0
55,6 → 54,7
.* e9 4d 00 02 lwa r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* a9 49 00 00 lha r10,0\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 20 .*
.* <__glink_PLTresolve>:
/testsuite/ld-powerpc/relbrlt.d
1,6 → 1,6
#source: relbrlt.s
#as: -a64
#ld: -melf64ppc --emit-relocs
#ld: -melf64ppc --no-ld-generated-unwind-info --emit-relocs
#objdump: -Dr
 
.*: file format elf64-powerpc
/testsuite/ld-powerpc/tocopt2.out
0,0 → 1,6
.*: xt defined on removed toc entry
/testsuite/ld-powerpc/tlsso.r
18,7 → 18,6
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
40,7 → 39,7
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+01 +\.tdata \.dynamic .got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
101,7 → 100,6
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
/testsuite/ld-powerpc/tlsexetoc.d
21,7 → 21,6
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 21 bctrl
.* e9 61 00 20 ld r11,32\(r1\)
31,10 → 30,10
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff b1 bl .*
.* 4b ff ff b5 bl .*
.* 60 00 00 00 nop
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff a5 bl .*
.* 4b ff ff a9 bl .*
.* 60 00 00 00 nop
.* 3c 6d 00 00 addis r3,r13,0
.* 60 00 00 00 nop
52,7 → 51,6
.* 89 4d 90 60 lbz r10,-28576\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 90 68 stb r10,-28568\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 28 .*
.* <__glink_PLTresolve>:
/testsuite/ld-powerpc/tlsexetoc.g
7,7 → 7,7
.*: +file format elf64-powerpc
 
Contents of section \.got:
.* 00000000 100185b0 00000000 00000000 .*
.* 00000000 100185a8 00000000 00000000 .*
.* 00000000 00000000 00000000 00000000 .*
.* 00000000 00000000 00000000 00000001 .*
.* 00000000 00000000 00000000 00000001 .*
/testsuite/ld-powerpc/tlsexetoc.r
16,11 → 16,10
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rela\.dyn +.*
+\[[ 0-9]+\] \.rela\.plt +.*
+\[[ 0-9]+\] \.text +PROGBITS .* 0+f0 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.text +PROGBITS .* 0+e8 0+ +AX +0 +0 +8
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic +DYNAMIC .* 0+160 10 +WA +4 +0 +8
+\[[ 0-9]+\] \.branch_lt +PROGBITS .* 0+ 0+ +WA +0 +0 +8
+\[[ 0-9]+\] \.got +PROGBITS .* 0+58 08 +WA +0 +0 +8
+\[[ 0-9]+\] \.plt +.*
+\[[ 0-9]+\] \.shstrtab +.*
47,7 → 46,7
+0+ +
+01 +\.interp
+02 +\.interp \.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+03 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+03 +\.tdata \.dynamic \.got \.plt
+04 +\.dynamic
+05 +\.tdata \.tbss
 
86,7 → 85,6
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* SECTION +LOCAL +DEFAULT +13
.* TLS +LOCAL +DEFAULT +8 gd4
.* TLS +LOCAL +DEFAULT +8 ld4
.* TLS +LOCAL +DEFAULT +8 ld5
94,7 → 92,7
.* TLS +LOCAL +DEFAULT +8 ie4
.* TLS +LOCAL +DEFAULT +8 le4
.* TLS +LOCAL +DEFAULT +8 le5
.* NOTYPE +LOCAL +DEFAULT +12 \.Lie0
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0
.* OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
.* (NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0|(FUNC|NOTYPE) +LOCAL +DEFAULT +UND \.__tls_get_addr(|_opt))
.* (NOTYPE +LOCAL +DEFAULT +7 __glink_PLTresolve|NOTYPE +LOCAL +DEFAULT +7 00000010\.plt_call\.__tls_get_addr(|_opt)\+0)
/testsuite/ld-powerpc/tlstocso.d
12,22 → 12,21
.* f8 41 00 28 std r2,40\(r1\)
.* e9 62 80 70 ld r11,-32656\(r2\)
.* 7d 69 03 a6 mtctr r11
.* e9 62 80 80 ld r11,-32640\(r2\)
.* e8 42 80 78 ld r2,-32648\(r2\)
.* 4e 80 04 20 bctr
 
.* <_start>:
.* 38 62 80 08 addi r3,r2,-32760
.* 4b ff ff e5 bl .*
.* 4b ff ff e9 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 18 addi r3,r2,-32744
.* 4b ff ff d9 bl .*
.* 4b ff ff dd bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 28 addi r3,r2,-32728
.* 4b ff ff cd bl .*
.* 4b ff ff d1 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 38 62 80 38 addi r3,r2,-32712
.* 4b ff ff c1 bl .*
.* 4b ff ff c5 bl .*
.* e8 41 00 28 ld r2,40\(r1\)
.* 39 23 80 40 addi r9,r3,-32704
.* 3d 23 00 00 addis r9,r3,0
39,6 → 38,7
.* 89 4d 00 00 lbz r10,0\(r13\)
.* 3d 2d 00 00 addis r9,r13,0
.* 99 49 00 00 stb r10,0\(r9\)
.* 60 00 00 00 nop
.* 00 00 00 00 .*
.* 00 01 02 18 .*
.* <__glink_PLTresolve>:
/testsuite/ld-powerpc/tocopt4a.s
0,0 → 1,4
.globl _start
.text
_start:
ld 9,xt@toc(9)
/testsuite/ld-powerpc/tlstocso.r
18,7 → 18,6
+\[[ 0-9]+\] \.tdata +PROGBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.tbss +NOBITS .* 0+38 0+ WAT +0 +0 +8
+\[[ 0-9]+\] \.dynamic .*
+\[[ 0-9]+\] \.branch_lt .*
+\[[ 0-9]+\] \.got .*
+\[[ 0-9]+\] \.plt .*
+\[[ 0-9]+\] \.shstrtab .*
40,7 → 39,7
Section to Segment mapping:
+Segment Sections\.\.\.
+0+ +\.hash \.dynsym \.dynstr \.rela\.dyn \.rela\.plt \.text
+01 +\.tdata \.dynamic (\.branch_lt |)\.got \.plt
+01 +\.tdata \.dynamic \.got \.plt
+02 +\.dynamic
+03 +\.tdata \.tbss
 
96,7 → 95,6
.* SECTION +LOCAL +DEFAULT +9
.* SECTION +LOCAL +DEFAULT +10
.* SECTION +LOCAL +DEFAULT +11
.* SECTION +LOCAL +DEFAULT +12
.* TLS +LOCAL +DEFAULT +7 gd4
.* TLS +LOCAL +DEFAULT +7 ld4
.* TLS +LOCAL +DEFAULT +7 ld5
104,7 → 102,7
.* TLS +LOCAL +DEFAULT +7 ie4
.* TLS +LOCAL +DEFAULT +7 le4
.* TLS +LOCAL +DEFAULT +7 le5
.* NOTYPE +LOCAL +DEFAULT +11 \.Lie0
.* NOTYPE +LOCAL +DEFAULT +10 \.Lie0
.* OBJECT +LOCAL +DEFAULT +ABS _DYNAMIC
.* NOTYPE +LOCAL +DEFAULT +6 00000010\.plt_call\.__tls_get_addr\+0
.* NOTYPE +LOCAL +DEFAULT +6 __glink_PLTresolve
/testsuite/ld-powerpc/tocopt2.d
0,0 → 1,5
 
.*: file format .*
 
Contents of section \.text:
100000b0 3d22effe 39297f4a .*
/testsuite/ld-powerpc/tocopt2.s
0,0 → 1,10
.globl xt
.section .toc,"aw"
xt:
.quad x
 
.globl _start
.text
_start:
addis 9,2,xt@toc@ha
ld 9,xt@toc@l(9)
/testsuite/ld-powerpc/tocopt4b.s
0,0 → 1,17
.section .toc,"aw"
.globl xt
xt:
.quad x
#
# This testcase will fail with a warning "xt defined on removed toc entry"
# if a large-toc access like the following is added to this file, because
# toc analysis only considers toc accesses from the current object file.
# The small-toc access from tocopt4a.s doesn't cause xt entry to be marked
# !can_optimize. The testcase only passes because toc analysis considers
# *no* access from the current file as being sufficiently unusual to
# warrant keeping the toc entry. So, if you use global symbols on toc
# entries, don't mix code models.
#
# .text
# addis 9,2,xt@toc@ha
# ld 9,xt@toc@l(9)
/testsuite/ld-i386/pr12921.s
0,0 → 1,25
.text
.balign 4096
vtext:
.p2align 4,,15
.globl _start
.type _start, @function
_start:
ret
.size _start, .-_start
.globl vdata
.data
.align 4096
.type vdata, @object
.size vdata, 4
vdata:
.long 5
.comm vbss,65536,4096
.align 16
.type local, @object
.size local, 24
local:
.byte 77
.zero 7
.dc.a local
.dc.a 0
/testsuite/ld-i386/tlsnopic.dd
1,7 → 1,7
#source: tlsnopic1.s
#source: tlsnopic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbindesc.sd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -sj.got
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbin.rd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ld-i386/tlsdesc.rd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbindesc.dd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/i386.exp
118,12 → 118,14
# readelf: Apply readelf options on result. Compare with regex (last arg).
 
set i386tests {
{"TLS -fpic -shared transitions" "-shared -melf_i386"
{"TLS -fpic -shared transitions"
"-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlspic1.s tlspic2.s}
{{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"TLS descriptor -fpic -shared transitions" "-shared -melf_i386"
{"TLS descriptor -fpic -shared transitions"
"-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlsdesc.s tlspic2.s}
{{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}}
131,21 → 133,24
{"Helper shared library" "-shared -melf_i386"
"--32" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbinpic.s tlsbin.s}
"-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
"--32" {tlsbinpic.s tlsbin.s}
{{readelf -Ssrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS descriptor -fpic and -fno-pic exec transitions"
"-melf_i386 tmpdir/libtlslib.so" "--32" {tlsbindesc.s tlsbin.s}
"-melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
"--32" {tlsbindesc.s tlsbin.s}
{{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
"tlsbindesc"}
{"TLS -fno-pic -shared" "-shared -melf_i386"
{"TLS -fno-pic -shared" "-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlsnopic1.s tlsnopic2.s}
{{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd}
{objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"}
{"TLS with global dynamic and descriptors"
"-shared -melf_i386" "--32" {tlsgdesc.s}
"-shared -melf_i386 --no-ld-generated-unwind-info"
"--32" {tlsgdesc.s}
{{readelf -Ssrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
"libtlsgdesc.so"}
{"TLS in debug sections" "-melf_i386"
195,6 → 200,7
run_dump_test "nogot2"
run_dump_test "discarded1"
run_dump_test "pr12718"
run_dump_test "pr12921"
 
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
/testsuite/ld-i386/tlsgdesc.dd
1,6 → 1,6
#source: tlsgdesc.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbin.sd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -sj.got
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbindesc.td
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: i?86-*-*
 
/testsuite/ld-i386/tlspic.rd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ld-i386/tlsdesc.sd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -s -j.got -j.got.plt
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbin.dd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/tlsdesc.dd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/tlsnopic.rd
1,7 → 1,7
#source: tlsnopic1.s
#source: tlsnopic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbin.td
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: i?86-*-*
 
/testsuite/ld-i386/tlspic.sd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -sj.got
#target: i?86-*-*
 
/testsuite/ld-i386/tlsdesc.td
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: i?86-*-*
 
/testsuite/ld-i386/vxworks1-lib.rd
1,4 → 1,9
 
Relocation section '\.rel\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name
0008140c .*07 R_386_JUMP_SLOT 00000000 sexternal
00081410 .*07 R_386_JUMP_SLOT 00080c27 sglobal
 
Relocation section '\.rel\.dyn' at offset .* contains 4 entries:
Offset Info Type Sym\.Value Sym\. Name
00081800 00000008 R_386_RELATIVE *
5,8 → 10,3
00080c03 .*01 R_386_32 00000000 __GOTT_BASE__
00080c09 .*01 R_386_32 00000000 __GOTT_INDEX__
00081414 .*06 R_386_GLOB_DAT 00081c00 x
 
Relocation section '\.rel\.plt' at offset .* contains 2 entries:
Offset Info Type Sym\.Value Sym\. Name
0008140c .*07 R_386_JUMP_SLOT 00000000 sexternal
00081410 .*07 R_386_JUMP_SLOT 00080c27 sglobal
/testsuite/ld-i386/tlspic.dd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: i?86-*-*
 
/testsuite/ld-i386/tlsbindesc.rd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --32
#ld: -melf_i386 tmpdir/libtlslib.so
#ld: -melf_i386 tmpdir/libtlslib.so --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ld-i386/tlsnopic.sd
1,7 → 1,7
#source: tlsnopic1.s
#source: tlsnopic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -sj.got
#target: i?86-*-*
 
/testsuite/ld-i386/pr12921.d
0,0 → 1,21
#name: PR ld/12921
#as: --32
#ld: -melf_i386
#readelf: -S --wide
 
There are 7 section headers, starting at offset 0x204c:
 
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] .text PROGBITS 08049000 001000 000001 00 AX 0 0 4096
\[ 2\] .data PROGBITS 0804b000 002000 000020 00 WA 0 0 4096
\[ 3\] .bss NOBITS 0804c000 002020 010000 00 WA 0 0 4096
\[ 4\] .shstrtab STRTAB 00000000 002020 00002c 00 0 0 1
\[ 5\] .symtab SYMTAB 00000000 002164 0000c0 10 6 6 4
\[ 6\] .strtab STRTAB 00000000 002224 000037 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
#pass
/testsuite/ld-i386/tlspic.td
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: i?86-*-*
 
/testsuite/ld-i386/tlsgdesc.rd
1,6 → 1,6
#source: tlsgdesc.s
#as: --32
#ld: -shared -melf_i386
#ld: -shared -melf_i386 --no-ld-generated-unwind-info
#readelf: -Ssrl
#target: i?86-*-*
 
/testsuite/ChangeLog
1,3 → 1,269
2011-08-22 Alan Modra <amodra@gmail.com>
 
* ld-powerpc/tocopt4a.s, * ld-powerpc/tocopt4b.s,
* ld-powerpc/tocopt4.d: New test.
* ld-powerpc/powerpc.exp: Run it.
 
2011-08-12 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/13082
* ld-x86-64/pr13082-1.s: New.
* ld-x86-64/pr13082-1a.d: Likewise.
* ld-x86-64/pr13082-1b.d: Likewise.
* ld-x86-64/pr13082-2.s: Likewise.
* ld-x86-64/pr13082-2a.d: Likewise.
* ld-x86-64/pr13082-2b.d: Likewise.
* ld-x86-64/pr13082-3.s: Likewise.
* ld-x86-64/pr13082-3a.d: Likewise.
* ld-x86-64/pr13082-3b.d: Likewise.
* ld-x86-64/pr13082-4.s: Likewise.
* ld-x86-64/pr13082-4a.d: Likewise.
* ld-x86-64/pr13082-4b.d: Likewise.
* ld-x86-64/pr13082-5.s: Likewise.
* ld-x86-64/pr13082-5a.d: Likewise.
* ld-x86-64/pr13082-5b.d: Likewise.
* ld-x86-64/pr13082-6.s: Likewise.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.
 
* ld-x86-64/x86-64.exp: Run pr13082-[1-6][ab].
 
2011-08-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
 
* ld-arm/arm-elf.exp (armelftests): Update for new command-line
options.
(armeabitests): Update for new command-line options, and add
new test cases.
* ld-arm/fix-arm1176.s: Add test case.
* ld-arm/fix-arm1176-off.d: Likewise.
* ld-arm/fix-arm1176-on.d: Likewise.
 
2011-08-05 Alan Modra <amodra@gmail.com>
 
* ld-powerpc/tlsexe.r: Update for stripped .branch_lt.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsso.r: Likewise.
* ld-powerpc/tlstocso.r: Likewise.
 
2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/13048
* ld-x86-64/ilp32-6.d: New.
* ld-x86-64/ilp32-6.s: Likewise.
* ld-x86-64/ilp32-7.d: Likewise.
* ld-x86-64/ilp32-7.s: Likewise.
* ld-x86-64/ilp32-8.d: Likewise.
* ld-x86-64/ilp32-8.s: Likewise.
* ld-x86-64/ilp32-9.d: Likewise.
* ld-x86-64/ilp32-9.s: Likewise.
 
* ld-x86-64/x86-64.exp: Run ilp32-6, ilp32-7, ilp32-8 and ilp32-9.
 
2011-07-27 Roland McGrath <mcgrathr@google.com>
 
* ld-i386/vxworks1-lib.rd: Swap order of sections expected in output.
 
2011-07-26 Alan Modra <amodra@gmail.com>
 
* ld-powerpc/powerpc.exp: Use --no-ld-generated-unwind-info
with some tests.
* ld-powerpc/relbrlt.d: Likewise.
 
2011-07-25 Hans-Peter Nilsson <hp@bitrange.com>
 
PR ld/12815
* ld-mmix/pr12815-1.d, ld-mmix/pr12815-1.s, ld-mmix/pr12815-1.ld,
ld-mmix/pr12815-2.d, ld-mmix/pr12815-2.s: New tests.
 
2011-07-24 Catherine Moore <clm@codesourcery.com>
Chao-ying Fu <fu@mips.com>
Maciej W. Rozycki <macro@codesourcery.com>
 
* lib/ld-lib.exp (run_dump_test): Support distinct assembler
flags for the same source named multiple times.
* ld-mips-elf/jalx-1.s: New test source.
* ld-mips-elf/jalx-1.d: New test output.
* ld-mips-elf/jalx-1.ld: New test linker script.
* ld-mips-elf/jalx-2-main.s: New test source.
* ld-mips-elf/jalx-2-ex.s: Likewise.
* ld-mips-elf/jalx-2-printf.s: Likewise.
* ld-mips-elf/jalx-2.dd: New test output.
* ld-mips-elf/jalx-2.ld: New test linker script.
* ld-mips-elf/mips16-and-micromips.d: New test.
* ld-mips-elf/mips-elf.exp: Run the new tests
 
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
 
* ld-x86-64/abs-k1om.d: New.
* ld-x86-64/protected2-k1om.d: Likewise.
* ld-x86-64/protected3-k1om.d: Likewise.
 
* ld-x86-64/x86-64.exp: Run abs-k1om, protected2-k1om and
protected3-k1om.
 
2011-07-14 H.J. Lu <hongjiu.lu@intel.com>
 
* ld-elf/binutils.exp (binutils_test): Also check ignored
"-z relro".
 
2011-07-14 Alan Modra <amodra@gmail.com>
 
* ld-scripts/section-flags.exp: Pass --local-store 0:0 for
spu. Rewrite using foreach.
 
2011-07-14 Alan Modra <amodra@gmail.com>
 
* ld-powerpc/tlsexe.d, * ld-powerpc/tlsexe.g. *ld-powerpc/tlsexe.r,
* ld-powerpc/tlsexetoc.d, * ld-powerpc/tlsexetoc.g,
* ld-powerpc/tlsexetoc.r, * ld-powerpc/tlsso.d,
* ld-powerpc/tlstocso.d: Update for plt stub change.
 
2011-07-11 Catherine Moore <clm@cm00re.com>
 
* ld-scripts/section-flags-1.s: New.
* ld-scripts/section-flags-1.t: New.
* ld-scripts/section-flags-2.s: New.
* ld-scripts/section-flags-2.t: New.
* ld-scripts/section-flags.exp: New.
 
2011-07-11 Alan Modra <amodra@gmail.com>
 
* ld-powerpc/tocopt2.s, * ld-powerpc/tocopt2.out,
* ld-powerpc/tocopt2.d: New test.
* ld-powerpc/tocopt3.s, * ld-powerpc/tocopt3.d: New test.
* ld-powerpc/powerpc.exp (ppc64elftests) Run them.
 
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
 
PR binutils/12913
* ld-ifunc/ifunc.exp: Update for changed output.
* ld-unique/unique.exp: Likewise.
 
2011-06-27 Nick Clifton <nickc@redhat.com>
 
* ld-elf/elf.exp: Exlcude all v850 targets from note-3 test.
 
2011-06-27 Alan Modra <amodra@gmail.com>
 
* ld-elf/elf.exp: Exclude more targets from note-3 test.
 
2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/12921
* ld-i386/i386.exp: Run pr12921.
* ld-x86-64/x86-64.exp: Likewise.
 
* ld-i386/pr12921.d: New.
* ld-i386/pr12921.s: Likewise.
* ld-x86-64/pr12921.d: Likewise.
* ld-x86-64/pr12921.s: Likewise.
 
2011-06-22 Thomas Schwinge <thomas@schwinge.name>
 
* ld-elf/elf.exp: Execute array_tests_pie tests on *-*-gnu*, too.
 
2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
 
* ld-ifunc/ifunc-1-local-x86.d: Adjusted.
* ld-ifunc/ifunc-1-x86.d: Likewise.
* ld-ifunc/ifunc-3a-x86.d: Likewise.
 
2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
 
* ld-elf/eh1.d: Revert x32 change.
* ld-elf/eh2.d: Likewise.
* ld-elf/eh3.d: Likewise.
* ld-elf/eh4.d: Likewise.
 
2011-06-20 Jakub Jelinek <jakub@redhat.com>
 
PR ld/12570
* ld-x86-64/x86-64.exp: Link some testcases with
--no-ld-generated-unwind-info.
* ld-x86-64/tlsbin.rd: Add --no-ld-generated-unwind-info to ld
comment.
* ld-x86-64/tlsdesc.dd: Likewise.
* ld-x86-64/tlspic.dd: Likewise.
* ld-x86-64/tlsdesc.sd: Likewise.
* ld-x86-64/tlspic.rd: Likewise.
* ld-x86-64/tlsbindesc.rd: Likewise.
* ld-x86-64/tlsbindesc.sd: Likewise.
* ld-x86-64/tlsbin.td: Likewise.
* ld-x86-64/tlsdesc.pd: Likewise.
* ld-x86-64/tlsdesc.td: Likewise.
* ld-x86-64/tlsbindesc.dd: Likewise.
* ld-x86-64/tlsbin.dd: Likewise.
* ld-x86-64/tlsgdesc.rd: Likewise.
* ld-x86-64/tlspic.sd: Likewise.
* ld-x86-64/tlsbindesc.td: Likewise.
* ld-x86-64/tlspic.td: Likewise.
* ld-x86-64/tlsbin.sd: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/tlsgdesc.dd: Add --no-ld-generated-unwind-info to ld
comment. Adjust.
* ld-x86-64/tlsdesc.rd: Likewise.
* ld-x86-64/tlsgd6.dd: Adjust.
* ld-x86-64/tlsgd5.dd: Likewise.
* ld-i386/i386.exp: Link some testcases with
--no-ld-generated-unwind-info.
* ld-i386/tlsbin.rd: Add --no-ld-generated-unwind-info to ld
comment..
* ld-i386/tlsdesc.dd: Likewise.
* ld-i386/tlspic.dd: Likewise.
* ld-i386/tlsdesc.sd: Likewise.
* ld-i386/tlsgdesc.dd: Likewise.
* ld-i386/tlsnopic.sd: Likewise.
* ld-i386/tlspic.rd: Likewise.
* ld-i386/tlsdesc.rd: Likewise.
* ld-i386/tlsbindesc.rd: Likewise.
* ld-i386/tlsbindesc.sd: Likewise.
* ld-i386/tlsbin.td: Likewise.
* ld-i386/tlsdesc.td: Likewise.
* ld-i386/tlsnopic.dd: Likewise.
* ld-i386/tlsbindesc.dd: Likewise.
* ld-i386/tlsbin.dd: Likewise.
* ld-i386/tlsgdesc.rd: Likewise.
* ld-i386/tlspic.sd: Likewise.
* ld-i386/tlsnopic.rd: Likewise.
* ld-i386/tlsbindesc.td: Likewise.
* ld-i386/tlspic.td: Likewise.
* ld-i386/tlsbin.sd: Likewise.
 
2011-06-19 H.J. Lu <hongjiu.lu@intel.com>
 
* ld-elf/eh1.d: Skip x32.
* ld-elf/eh2.d: Likewise.
* ld-elf/eh3.d: Likewise.
* ld-elf/eh4.d: Likewise.
 
* ld-elfvsb/elfvsb.exp: Only xfail 64bit x86_64-*-linux*.
* ld-shared/shared.exp: Likewise.
 
* ld-ifunc/ifunc-1-local-x86.d: Support x32.
* ld-ifunc/ifunc-1-x86.d: Likewise.
* ld-ifunc/ifunc-3a-x86.d: Likewise.
* ld-x86-64/pcrel16.d: Likewise.
 
* ld-x86-64/x86-64.exp (x86_64tests): Add missing -melf_x86_64.
 
2011-06-16 Alan Modra <amodra@gmail.com>
 
* ld-elfvers/vers2.ver: Don't assume any particular index for
version reference.
* ld-elfvers/vers3.ver: Likewise.
* ld-elfvers/vers19.ver: Likewise.
* ld-elfvers/vers22.ver: Likewise.
* ld-elfvers/vers27d4.ver: Likewise.
* ld-elfvers/vers28c.ver: Likewise.
 
2011-06-14 Alan Modra <amodra@gmail.com>
 
* ld-elf/elf.exp: Don't attempt to build symbol3.a for hppa64-hpux.
* ld-elf/warn3.d: Correct target selection and comment.
 
* ld-elf/pr12851.d: Correct target selection and comment.
 
2011-06-13 Walter Lee <walt@tilera.com>
 
* ld-elf/eh5.d: Don't run on tile*.
/testsuite/ld-unique/unique.exp
149,8 → 149,8
}
 
# Check the object file.
if {! [check_osabi tmpdir/unique.o {UNIX - Linux}]} {
fail "Object containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique.o {UNIX - GNU}]} {
fail "Object containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
 
164,8 → 164,8
}
 
# Check the executable.
if {! [check_osabi tmpdir/unique_prog {UNIX - Linux}]} {
fail "Executable containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique_prog {UNIX - GNU}]} {
fail "Executable containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
 
194,8 → 194,8
}
 
# Check the unique PIC file.
if {! [check_osabi tmpdir/unique_shared.o {UNIX - Linux}]} {
fail "PIC Object containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique_shared.o {UNIX - GNU}]} {
fail "PIC Object containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
 
209,8 → 209,8
}
 
# Check the unique shared library.
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - Linux}]} {
fail "Shared library containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - GNU}]} {
fail "Shared library containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
 
/testsuite/ld-elfvers/vers3.ver
1,4 → 1,4
Version References:
required from tmpdir/vers1.so:
0x0a7922b0 0x00 0[23] VERS_2.0
0x0a7922b0 0x00 ?? VERS_2.0
 
/testsuite/ld-elfvers/vers28c.ver
1,4 → 1,4
Version References:
required from tmpdir/vers28b.so:
0x05aa7610 0x00 02 VERS.0
0x05aa7610 0x00 ?? VERS.0
 
/testsuite/ld-elfvers/vers2.ver
4,5 → 4,5
 
Version References:
required from tmpdir/vers1.so:
0x0a7922b0 0x00 03 VERS_2.0
0x0a7922b0 0x00 ?? VERS_2.0
 
/testsuite/ld-elfvers/vers27d4.ver
1,3 → 1,3
Version References:
required from tmpdir/vers27a.so:
0x05aa7610 0x00 02 VERS.0
0x05aa7610 0x00 ?? VERS.0
/testsuite/ld-elfvers/vers19.ver
1,3 → 1,3
Version References:
required from tmpdir/vers18.so:
0x0a7922b0 0x00 0[23] VERS_2.0
0x0a7922b0 0x00 ?? VERS_2.0
/testsuite/ld-elfvers/vers22.ver
1,4 → 1,4
Version References:
required from tmpdir/vers22b.so:
0x05aa7610 0x00 02 VERS.0
0x05aa7610 0x00 ?? VERS.0
 
/testsuite/ld-elf/pr12851.d
3,11 → 3,8
#ld: --gc-sections
#readelf: -s --wide
#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
#notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
#xfail: cr16-*-* crx-*-*
#notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
# generic linker targets don't support --gc-sections, nor do a bunch of others
# cr16 and crx use non-standard scripts with memory regions, which don't play
# well with unique group sections under ld -r.
 
#...
+.* _.stapsdt.base
/testsuite/ld-elf/binutils.exp
53,7 → 53,8
 
if { ![ld_simple_link $ld tmpdir/$test "$ld_options tmpdir/$test.o"] } {
if { [string match "*not supported*" $link_output]
|| [string match "*unrecognized option*" $link_output] } {
|| [string match "*unrecognized option*" $link_output]
|| [string match "*-z relro ignored*" $link_output] } {
unsupported "$ld_options is not supported by this target"
} else {
unresolved "$test_name"
/testsuite/ld-elf/elf.exp
1,5 → 1,6
# Expect script for various ELF tests.
# Copyright 2002, 2003, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
# Copyright 2002, 2003, 2005, 2007, 2009, 2010, 2011
# Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
40,13 → 41,15
remote_download host merge.ld
}
 
run_ld_link_tests {
{"Build symbol3.a"
"" ""
{symbol3.s} {} "symbol3.a"}
{"Build symbol3w.a"
"" ""
{symbol3w.s} {} "symbol3w.a"}
if { ![istarget hppa64*-hpux*] } {
run_ld_link_tests {
{"Build symbol3.a"
"" ""
{symbol3.s} {} "symbol3.a"}
{"Build symbol3w.a"
"" ""
{symbol3w.s} {} "symbol3w.a"}
}
}
 
# Run a test to check linking a shared library with a broken linker
66,16 → 69,27
&& ! [istarget fr30-*-*]
&& ! [istarget frv-*-*]
&& ! [istarget h8300-*-*]
&& ! [istarget i860-*-*]
&& ! [istarget i960-*-*]
&& ! [istarget ip2k-*-*]
&& ! [istarget iq2000-*-*]
&& ! [istarget lm32-*-*]
&& ! [istarget m32c-*-*]
&& ! [istarget m32r-*-*]
&& ! [istarget mcore*-*-*]
&& ! [istarget mep-*-*]
&& ! [istarget microblaze-*-*]
&& ! [istarget mn10200-*-*]
&& ! [istarget moxie-*-*]
&& ! [istarget ms1-*-*]
&& ! [istarget msp430-*-*]
&& ! [istarget openrisc-*-*]
&& ! [istarget or32-*-*]
&& ! [istarget pj-*-*]
&& ! [istarget rx-*-*]
&& ! [istarget v850-*-*]
&& ! [istarget spu-*-*]
&& ! [istarget v850*-*-*]
&& ! [istarget xstormy16-*-*]
&& ! [istarget *-*-irix*]
&& ! [istarget *-*-rtems] } {
run_ld_link_tests {
147,8 → 161,8
set xfails [list "*-*-netbsdelf*"]
run_ld_link_exec_tests $xfails $array_tests
 
# Run PIE tests only on Linux.
if { [istarget "*-*-linux*"] } {
if { [istarget *-*-linux*]
|| [istarget *-*-gnu*] } {
run_ld_link_exec_tests $xfails $array_tests_pie
}
 
/testsuite/ld-elf/warn3.d
2,10 → 2,9
#ld: tmpdir/symbol3w.o tmpdir/symbol3.a
#warning: .*: warning: badsym warning$
#readelf: -s
#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*"
#xfail: arc-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-elf i860-*-* i960-*-*
#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* or32-*-* pj*-*-*
# if not using elf32.em, you don't get fancy section handling
#notarget: hppa64*-hpux*
#xfail: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
# generic linker targets don't support .gnu.warning sections.
 
# Check that warnings are generated for the symbols in .gnu.warning
# construct and that the symbol still appears as expected.
/testsuite/lib/ld-lib.exp
552,7 → 552,6
set opts(error) {}
set opts(warning) {}
set opts(objcopy_linked_file) {}
set asflags(${file}.s) {}
 
foreach i $opt_array {
set opt_name [lindex $i 0]
570,13 → 569,13
warning {}
error {}
source {
# Move any source-specific as-flags to a separate array to
# Move any source-specific as-flags to a separate list to
# simplify processing.
if { [llength $opt_val] > 1 } {
set asflags([lindex $opt_val 0]) [lrange $opt_val 1 end]
lappend asflags [lrange $opt_val 1 end]
set opt_val [lindex $opt_val 0]
} else {
set asflags($opt_val) {}
lappend asflags {}
}
}
default {
669,6 → 668,7
 
if { $opts(source) == "" } {
set sourcefiles [list ${file}.s]
set asflags [list ""]
} else {
set sourcefiles {}
foreach sf $opts(source) {
677,8 → 677,6
} else {
lappend sourcefiles "$srcdir/$subdir/$sf"
}
# Must have asflags indexed on source name.
set asflags($srcdir/$subdir/$sf) $asflags($sf)
}
}
 
691,11 → 689,12
set objfiles {}
for { set i 0 } { $i < [llength $sourcefiles] } { incr i } {
set sourcefile [lindex $sourcefiles $i]
set sourceasflags [lindex $asflags $i]
 
set objfile "tmpdir/dump$i.o"
catch "exec rm -f $objfile" exec_output
lappend objfiles $objfile
set cmd "$AS $ASFLAGS $opts(as) $asflags($sourcefile) -o $objfile $sourcefile"
set cmd "$AS $ASFLAGS $opts(as) $sourceasflags -o $objfile $sourcefile"
 
send_log "$cmd\n"
set cmdret [remote_exec host [concat sh -c [list "$cmd 2>&1"]] "" "/dev/null" "ld.tmp"]
/testsuite/ld-mips-elf/jalx-2.ld
0,0 → 1,8
ENTRY (internal_function)
_start_text_phys = 0x4400000;
_start_text = _start_text_phys;
 
SECTIONS
{
.text _start_text : AT (ADDR (.text)) { *(.text) }
}
/testsuite/ld-mips-elf/jalx-1.d
0,0 → 1,16
#name: MIPS jalx-1
#source: jalx-1.s
#ld: -T jalx-1.ld
#objdump: -d
 
.*: +file format .*mips.*
 
Disassembly of section \.text:
 
88000000 <test>:
88000000: f200 0002 jalx 88000008 <test1>
88000004: 0000 0000 nop
 
88000008 <test1>:
88000008: 00851821 addu v1,a0,a1
\.\.\.
/testsuite/ld-mips-elf/jalx-1.s
0,0 → 1,15
.set noreorder
.set micromips
.ent test
.globl test
test:
jalx test1
nop
 
.set nomicromips
test1:
addu $3, $4, $5
.end test
 
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
.space 8
/testsuite/ld-mips-elf/jalx-2-main.s
0,0 → 1,74
.file 1 "jalx-2-main.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.option pic0
.text
.align 2
.globl internal_function
.set nomips16
.set micromips
.ent internal_function
.type internal_function, @function
internal_function:
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x40000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
 
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
move $sp,$fp
lw $fp,4($sp)
jraddiusp 8
.set macro
.set reorder
.end internal_function
.size internal_function, .-internal_function
.rdata
.align 2
$LC0:
.ascii "hello world\012\000"
.text
.align 2
.globl main
.set nomips16
.set micromips
.ent main
.type main, @function
main:
.frame $fp,32,$31 # vars= 0, regs= 2/0, args= 16, gp= 8
.mask 0xc0000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
 
addiu $sp,$sp,-32
sw $31,28($sp)
sw $fp,24($sp)
move $fp,$sp
sw $4,32($fp)
sw $5,36($fp)
lui $2,%hi($LC0)
addiu $4,$2,%lo($LC0)
jal printf
nop
 
jal internal_function
nop
 
jal external_function
nop
 
move $sp,$fp
lw $31,28($sp)
lw $fp,24($sp)
jraddiusp 32
.set macro
.set reorder
.end main
.size main, .-main
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1"
/testsuite/ld-mips-elf/jalx-2.dd
0,0 → 1,58
.*: +file format .*mips.*
 
Disassembly of section \.text:
 
04400000 <external_function>:
4400000: 27bdfff8 addiu sp,sp,-8
4400004: afbe0004 sw s8,4\(sp\)
4400008: 03a0f021 move s8,sp
440000c: 03c0e821 move sp,s8
4400010: 8fbe0004 lw s8,4\(sp\)
4400014: 27bd0008 addiu sp,sp,8
4400018: 03e00008 jr ra
440001c: 00000000 nop
 
04400020 <internal_function>:
4400020: 4fb0 addiu sp,sp,-8
4400022: cbc1 sw s8,4\(sp\)
4400024: 0fdd move s8,sp
4400026: 0fbe move sp,s8
4400028: 4bc1 lw s8,4\(sp\)
440002a: 4702 jraddiusp 8
 
0440002c <main>:
440002c: 4ff1 addiu sp,sp,-32
440002e: cbe7 sw ra,28\(sp\)
4400030: cbc6 sw s8,24\(sp\)
4400032: 0fdd move s8,sp
4400034: f89e 0020 sw a0,32\(s8\)
4400038: f8be 0024 sw a1,36\(s8\)
440003c: 41a2 0440 lui v0,0x440
4400040: 3082 02a0 addiu a0,v0,672
4400044: f110 0028 jalx 44000a0 <_PROCEDURE_LINKAGE_TABLE_\+0x20>
4400048: 0000 0000 nop
440004c: f620 0010 jal 4400020 <internal_function>
4400050: 0000 0000 nop
4400054: f110 0000 jalx 4400000 <external_function>
4400058: 0000 0000 nop
440005c: 0fbe move sp,s8
440005e: 4be7 lw ra,28\(sp\)
4400060: 4bc6 lw s8,24\(sp\)
4400062: 4708 jraddiusp 32
\.\.\.
 
Disassembly of section \.plt:
 
04400080 <_PROCEDURE_LINKAGE_TABLE_>:
4400080: 3c1c0440 lui gp,0x440
4400084: 8f9900d8 lw t9,216\(gp\)
4400088: 279c00d8 addiu gp,gp,216
440008c: 031cc023 subu t8,t8,gp
4400090: 03e07821 move t7,ra
4400094: 0018c082 srl t8,t8,0x2
4400098: 0320f809 jalr t9
440009c: 2718fffe addiu t8,t8,-2
44000a0: 3c0f0440 lui t7,0x440
44000a4: 8df900e0 lw t9,224\(t7\)
44000a8: 03200008 jr t9
44000ac: 25f800e0 addiu t8,t7,224
/testsuite/ld-mips-elf/jalx-2-ex.s
0,0 → 1,34
.file 1 "jalx-2-ex.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.option pic0
.text
.align 2
.globl external_function
.set nomips16
.set nomicromips
.ent external_function
.type external_function, @function
external_function:
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x40000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
 
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
move $sp,$fp
lw $fp,4($sp)
addiu $sp,$sp,8
j $31
nop
 
.set macro
.set reorder
.end external_function
.size external_function, .-external_function
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1"
/testsuite/ld-mips-elf/jalx-1.ld
0,0 → 1,8
ENTRY (test)
_start_text_phys = 0x88000000;
_start_text = _start_text_phys;
 
SECTIONS
{
.text _start_text : AT (ADDR (.text)) { *(.text) }
}
/testsuite/ld-mips-elf/mips16-and-micromips.d
0,0 → 1,5
#name: MIPS16 and microMIPS interlink
#source: ../../../gas/testsuite/gas/mips/nop.s -mips16
#source: ../../../gas/testsuite/gas/mips/nop.s -mmicromips
#ld: -e0
#error: \A.*: .*\.o: ASE mismatch: linking microMIPS module with previous MIPS16 modules[\n\r]+.*: failed to merge target specific data of file .*\.o\Z
/testsuite/ld-mips-elf/mips-elf.exp
123,6 → 123,31
# MIPS branch offset final link checking.
run_dump_test "branch-misc-1"
 
# Jalx test
run_dump_test "jalx-1"
 
if { $linux_gnu } {
run_ld_link_tests [list \
[list "Dummy shared library for JALX test 2" \
"-shared -nostdlib -melf32btsmip" \
"-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -KPIC" \
{ jalx-2-printf.s } \
{} \
"libjalx-2.so"] \
[list "Dummy external function for JALX test 2" \
"-r -melf32btsmip" \
"-G0 -EB -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \
{ jalx-2-ex.s } \
{} \
"jalx-2-ex.o.r"] \
[list "MIPS JALX test 2" \
"-nostdlib -T jalx-2.ld tmpdir/libjalx-2.so tmpdir/jalx-2-ex.o.r -melf32btsmip" \
"-G0 -EB -mmicromips -no-mdebug -mabi=32 -march=mips32r2 -mno-shared -call_nonpic" \
{ jalx-2-main.s } \
{ { objdump -d jalx-2.dd } } \
"jalx-2"]]
}
 
# Test multi-got link. We only do this on GNU/Linux because it requires
# the "traditional" emulations.
if { $linux_gnu } {
549,3 → 574,6
run_dump_test "jr-to-b-1"
run_dump_test "jr-to-b-2"
}
 
# MIPS16 and microMIPS interlinking test.
run_dump_test "mips16-and-micromips"
/testsuite/ld-mips-elf/jalx-2-printf.s
0,0 → 1,35
.file 1 "jalx-2-printf.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.text
.align 2
.globl printf
.set nomips16
.set micromips
.ent printf
.type printf, @function
printf:
.frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x40000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
 
addiu $sp,$sp,-8
sw $fp,4($sp)
move $fp,$sp
sw $5,12($fp)
sw $6,16($fp)
sw $7,20($fp)
sw $4,8($fp)
move $2,$0
move $sp,$fp
lw $fp,4($sp)
jraddiusp 8
.set macro
.set reorder
.end printf
.size printf, .-printf
.ident "GCC: (Sourcery G++ Lite 4.4-999999 - Preview) 4.4.1"
/testsuite/ld-scripts/section-flags-1.s
0,0 → 1,2
.text
.space 16
/testsuite/ld-scripts/section-flags-1.t
0,0 → 1,21
MEMORY
{
ram (rwx) : ORIGIN = 0x100000, LENGTH = 144M
}
 
SECTIONS
{
.text :
{
INPUT_SECTION_FLAGS (!SHF_TLS) *(.text .text.* .text_* .gnu.linkonce.t.*)
} >ram
 
.text_vle :
{
INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS & SHF_LINK_ORDER) *(.text .text.* .text_* .gnu.linkonce.t.*)
} >ram
.text_other :
{
INPUT_SECTION_FLAGS (SHF_MERGE & !SHF_STRINGS) *(.text .text.* .text_* .gnu.linkonce.t.*)
}
}
/testsuite/ld-scripts/section-flags.exp
0,0 → 1,41
# Test SECTION_FLAGS in a linker script.
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
 
# These tests only work for ELF targets
if {! [is_elf_format]} {
return
}
 
set ldcmd $ld
if { [istarget spu*-*-*] } {
set ldcmd "$ldcmd --local-store 0:0"
}
 
foreach test {"section-flags-1" "section-flags-2"} {
if ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o] {
unresolved $test
} else {
if ![ld_simple_link $ldcmd tmpdir/$test \
"-T $srcdir/$subdir/$test.t tmpdir/$test.o"] {
fail $test
} else {
pass $test
}
}
}
/testsuite/ld-scripts/section-flags-2.s
0,0 → 1,2
.text
.space 16
/testsuite/ld-scripts/section-flags-2.t
0,0 → 1,12
MEMORY
{
ram (rwx) : ORIGIN = 0x100000, LENGTH = 144M
}
 
SECTIONS
{
.text :
{
INPUT_SECTION_FLAGS (!SHF_TLS) *(EXCLUDE_FILE (section-flags-1.o) .text .text.* .text_* .gnu.linkonce.t.*)
} >ram
}
/testsuite/ld-ifunc/ifunc-3a-x86.d
4,5 → 4,5
#target: x86_64-*-* i?86-*-*
 
#...
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x258|)@plt>
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x1b0|\+0x260|)@plt>
#pass
/testsuite/ld-ifunc/ifunc.exp
244,19 → 244,19
# Check the executables and shared libraries
#
# The linked ifunc using executables and the shared library containing
# ifunc should have an OSABI field of LINUX. The linked non-ifunc using
# ifunc should have an OSABI field of GNU. The linked non-ifunc using
# executable should have an OSABI field of NONE (aka System V).
 
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - Linux}]} {
fail "Shared libraries containing ifunc does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - GNU}]} {
fail "Shared libraries containing ifunc does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/local_prog {UNIX - Linux}]} {
fail "Local ifunc-using executable does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/local_prog {UNIX - GNU}]} {
fail "Local ifunc-using executable does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/static_prog {UNIX - Linux}]} {
fail "Static ifunc-using executable does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/static_prog {UNIX - GNU}]} {
fail "Static ifunc-using executable does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/dynamic_prog {UNIX - System V}]} {
/testsuite/ld-ifunc/ifunc-1-x86.d
3,5 → 3,5
#target: x86_64-*-* i?86-*-*
 
#...
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x220|)@plt>
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x190|\+0x220|)@plt>
#pass
/testsuite/ld-ifunc/ifunc-1-local-x86.d
3,5 → 3,5
#target: x86_64-*-* i?86-*-*
 
#...
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x200|)@plt>
[ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-fq]+<\*ABS\*(\+0x170|\+0x200|)@plt>
#pass
/testsuite/ld-mmix/pr12815-2.d
0,0 → 1,7
#as: -no-predefined-syms -x
#ld: -e 0x1000 --defsym bar=0x100000000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld
#error: invalid input relocation.*objcopy.*"-no-expand".*truncated
 
# Check that we emit a meaningful error message rather than SEGV when
# someone attempts linking to the "binary" output format with
# expanding PUSHJ insns, expecting relaxation to work.
/testsuite/ld-mmix/pr12815-2.s
0,0 → 1,14
# 1 "m.c"
! mmixal:= 8H LOC Data_Section
.text ! mmixal:= 9H LOC 8B
.p2align 2
LOC @+(4-@)&3
.global main
main IS @
GET $0,rJ
PUSHJ $1,bar
PUSHJ $1,bar
PUT rJ,$0
POP 1,0
 
.data ! mmixal:= 8H LOC 9B
/testsuite/ld-mmix/pr12815-1.ld
0,0 → 1,14
OUTPUT_FORMAT("binary")
ENTRY(start)
SECTIONS
{
. = 0x8000000000100000;
.text : AT(ADDR(.text) - 0x8000000000100000)
{
*(.text)
*(.data)
*(.rodata*)
*(COMMON*)
*(.bss*)
}
}
/testsuite/ld-mmix/pr12815-1.d
0,0 → 1,7
#as: -no-predefined-syms -x
#ld: -e 0x1000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld
#error: invalid input relocation.*objcopy.*"-mno-base-addresses".*truncated
 
# Check that we emit a meaningful error message rather than SEGV when
# someone attempts linking to the "binary" output format with
# -mbase-addresses in effect.
/testsuite/ld-mmix/pr12815-1.s
0,0 → 1,26
# 1 "m.c"
! mmixal:= 8H LOC Data_Section
.text ! mmixal:= 9H LOC 8B
.data ! mmixal:= 8H LOC 9B
.p2align 2
LOC @+(4-@)&3
foo IS @
TETRA #2
.text ! mmixal:= 9H LOC 8B
.p2align 2
LOC @+(4-@)&3
.global main
main IS @
SUBU $254,$254,8
STOU $253,$254,0
ADDU $253,$254,8
LDT $0,foo
ADDU $0,$0,1
SET $0,$0
STTU $0,foo
SETL $0,0
LDO $253,$254,0
ADDU $254,$254,8
POP 1,0
 
.data ! mmixal:= 8H LOC 9B
/testsuite/ld-x86-64/tlsbin.rd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#readelf: -WSsrl
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-4a.d
0,0 → 1,9
#source: pr13082-4.s
#name: PR ld/13082-4 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +[0-9a-f]+ +func \+ 1
/testsuite/ld-x86-64/pr13082-6b.d
0,0 → 1,13
#source: pr13082-6.s
#name: PR ld/13082-6 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
 
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
/testsuite/ld-x86-64/ilp32-6.d
0,0 → 1,3
#as: --x32
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000
#error: .*relocation truncated to fit: R_X86_64_32S.*
/testsuite/ld-x86-64/pr13082-3.s
0,0 → 1,10
.text
.globl _start
_start:
lea .Ljmp(%rip), %rax
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.weak func
.align 8
.Ljmp:
.quad func
/testsuite/ld-x86-64/ilp32-6.s
0,0 → 1,3
.globl _start
_start:
mov $_start,%rax
/testsuite/ld-x86-64/tlsbin.sd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.got
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-1b.d
0,0 → 1,9
#source: pr13082-1.s
#name: PR ld/13082-1 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE64 +[0-9a-f]+
/testsuite/ld-x86-64/x86-64.exp
38,12 → 38,14
# readelf: Apply readelf options on result. Compare with regex (last arg).
 
set x86_64tests {
{"TLS -fpic -shared transitions" "-shared -melf_x86_64"
{"TLS -fpic -shared transitions"
"-shared -melf_x86_64 --no-ld-generated-unwind-info"
"--64" {tlspic1.s tlspic2.s}
{{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd}
{objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}}
"libtlspic.so"}
{"TLS descriptor -fpic -shared transitions" "-shared -melf_x86_64"
{"TLS descriptor -fpic -shared transitions"
"-shared -melf_x86_64 --no-ld-generated-unwind-info"
"--64" {tlsdesc.s tlspic2.s}
{{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd}
{objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}
51,17 → 53,20
{"Helper shared library" "-shared -melf_x86_64"
"--64" {tlslib.s} {} "libtlslib.so"}
{"TLS -fpic and -fno-pic exec transitions"
"-melf_x86_64 tmpdir/libtlslib.so" "--64" {tlsbinpic.s tlsbin.s}
"-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
"--64" {tlsbinpic.s tlsbin.s}
{{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd}
{objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}}
"tlsbin"}
{"TLS descriptor -fpic and -fno-pic exec transitions"
"-melf_x86_64 tmpdir/libtlslib.so" "--64" {tlsbindesc.s tlsbin.s}
"-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info"
"--64" {tlsbindesc.s tlsbin.s}
{{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd}
{objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}}
"tlsbindesc"}
{"TLS with global dynamic and descriptors"
"-shared -melf_x86_64" "--64" {tlsgdesc.s}
"-shared -melf_x86_64 --no-ld-generated-unwind-info"
"--64" {tlsgdesc.s}
{{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}}
"libtlsgdesc.so"}
{"TLS in debug sections" "-melf_x86_64"
84,7 → 89,7
"--64" {mixed2a.s} {} "libmixe2a.o"}
{"Helper 32bit object 2" "-r -melf_i386"
"--32" {mixed2b.s} {} "libmixe2b.o"}
{"Split by file with 'l' flag on section." "-split-by-file -r"
{"Split by file with 'l' flag on section." "-split-by-file -r -melf_x86_64"
"--64" {split-by-file1.s split-by-file2.s}
{{readelf -SW split-by-file.rd}} "split-by-file.o"}
{"TLS X32 IE->LE transition" "-melf32_x86_64"
156,6 → 161,7
run_dump_test "nogot2"
run_dump_test "discarded1"
run_dump_test "pr12718"
run_dump_test "pr12921"
 
if { ![istarget "x86_64-*-linux*"] } {
return
197,6 → 203,10
run_dump_test "ilp32-3"
run_dump_test "ilp32-4"
run_dump_test "ilp32-5"
run_dump_test "ilp32-6"
run_dump_test "ilp32-7"
run_dump_test "ilp32-8"
run_dump_test "ilp32-9"
run_dump_test "ia32-1"
run_dump_test "ia32-2"
run_dump_test "ia32-3"
203,6 → 213,18
run_dump_test "lp64-1"
run_dump_test "lp64-2"
run_dump_test "lp64-3"
run_dump_test "pr13082-1a"
run_dump_test "pr13082-1b"
run_dump_test "pr13082-2a"
run_dump_test "pr13082-2b"
run_dump_test "pr13082-3a"
run_dump_test "pr13082-3b"
run_dump_test "pr13082-4a"
run_dump_test "pr13082-4b"
run_dump_test "pr13082-5a"
run_dump_test "pr13082-5b"
run_dump_test "pr13082-6a"
run_dump_test "pr13082-6b"
 
# Must be native with the C compiler
if { [isnative] && [which $CC] != 0 } {
/testsuite/ld-x86-64/tlsbin.dd
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: x86_64-*-*
 
/testsuite/ld-x86-64/tlsgd5.dd
10,5 → 10,5
 
[a-f0-9]+ <_start>:
[ ]*[a-f0-9]+: 64 48 8b 04 25 00 00 00 00 mov %fs:0x0,%rax
[ ]*[a-f0-9]+: 48 03 05 00 01 20 00 add 0x200100\(%rip\),%rax # 600368 <_DYNAMIC\+0x100>
[ ]*[a-f0-9]+: 48 03 05 40 01 20 00 add 0x200140\(%rip\),%rax # 6003a8 <_DYNAMIC\+0x100>
#pass
/testsuite/ld-x86-64/tlsbin.td
1,7 → 1,7
#source: tlsbinpic.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-2a.d
0,0 → 1,9
#source: pr13082-2.s
#name: PR ld/13082-2 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +_start \+ 0
/testsuite/ld-x86-64/tlsdesc.pd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.plt
#target: x86_64-*-*
 
/testsuite/ld-x86-64/protected3-k1om.d
0,0 → 1,16
#source: protected3.s
#as: --64 -march=k1om
#ld: -shared -melf_k1om
#readelf: -h
 
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 \(current\)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN \(Shared object file\)
Machine: Intel K1OM
Version: 0x1
#pass
/testsuite/ld-x86-64/pr13082-4b.d
0,0 → 1,9
#source: pr13082-4.s
#name: PR ld/13082-4 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +[0-9a-f]+ +func \+ 1
/testsuite/ld-x86-64/ilp32-7.d
0,0 → 1,3
#as: --x32
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000
#error: .*relocation truncated to fit: R_X86_64_32S.*
/testsuite/ld-x86-64/pr13082-4.s
0,0 → 1,10
.text
.globl _start
_start:
lea .Ljmp(%rip), %rax
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.weak func
.align 8
.Ljmp:
.quad func + 1
/testsuite/ld-x86-64/tlsbindesc.rd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#readelf: -WSsrl
#target: x86_64-*-*
 
/testsuite/ld-x86-64/ilp32-7.s
0,0 → 1,3
.globl _start
_start:
mov _start,%rax
/testsuite/ld-x86-64/pr12921.d
0,0 → 1,21
#name: PR ld/12921
#as: --64
#ld: -melf_x86_64
#readelf: -S --wide
 
There are 7 section headers, starting at offset 0x2058:
 
Section Headers:
\[Nr\] Name Type Address Off Size ES Flg Lk Inf Al
\[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0
\[ 1\] .text PROGBITS 0000000000401000 001000 000001 00 AX 0 0 4096
\[ 2\] .data PROGBITS 0000000000602000 002000 000028 00 WA 0 0 4096
\[ 3\] .bss NOBITS 0000000000603000 002028 010000 00 WA 0 0 4096
\[ 4\] .shstrtab STRTAB 0000000000000000 002028 00002c 00 0 0 1
\[ 5\] .symtab SYMTAB 0000000000000000 002218 000120 18 6 6 8
\[ 6\] .strtab STRTAB 0000000000000000 002338 000037 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
#pass
/testsuite/ld-x86-64/protected2-k1om.d
0,0 → 1,17
#source: protected2.s
#as: --64 -march=k1om
#ld: -shared -melf_k1om
#objdump: -drw
 
.*: +file format .*
 
 
Disassembly of section .text:
 
0+[a-f0-9]+ <foo>:
[ ]*[a-f0-9]+: c3 retq
 
0+[a-f0-9]+ <bar>:
[ ]*[a-f0-9]+: e8 fa ff ff ff callq [a-f0-9]+ <foo>
[ ]*[a-f0-9]+: c3 retq
#pass
/testsuite/ld-x86-64/pr13082-5a.d
0,0 → 1,14
#source: pr13082-5.s
#name: PR ld/13082-5 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +ifunc\(\)+ +ifunc \+ 0
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_GLOB_DAT +ifunc\(\)+ +ifunc \+ 0
 
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +ifunc\(\)+ +ifunc \+ 0
/testsuite/ld-x86-64/tlsgdesc.rd
1,6 → 1,6
#source: tlsgdesc.s
#as: --64
#ld: -shared -melf64_x86_64
#ld: -shared -melf64_x86_64 --no-ld-generated-unwind-info
#readelf: -WSsrl
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr12921.s
0,0 → 1,25
.text
.balign 4096
vtext:
.p2align 4,,15
.globl _start
.type _start, @function
_start:
ret
.size _start, .-_start
.globl vdata
.data
.align 4096
.type vdata, @object
.size vdata, 4
vdata:
.long 5
.comm vbss,65536,4096
.align 16
.type local, @object
.size local, 24
local:
.byte 77
.zero 7
.dc.a local
.dc.a 0
/testsuite/ld-x86-64/tlsbindesc.sd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.got
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-2b.d
0,0 → 1,9
#source: pr13082-2.s
#name: PR ld/13082-2 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
/testsuite/ld-x86-64/tlsdesc.rd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#readelf: -WSsrld
#target: x86_64-*-*
 
15,7 → 15,7
+\[[ 0-9]+\] .dynstr +.*
+\[[ 0-9]+\] .rela.dyn +.*
+\[[ 0-9]+\] .rela.plt +.*
+\[[ 0-9]+\] .plt +PROGBITS +0+450 0+450 0+20 10 +AX +0 +0 +4
+\[[ 0-9]+\] .plt +PROGBITS +0+450 0+450 0+20 10 +AX +0 +0 +(4|16)
+\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+154 00 +AX +0 +0 4096
+\[[ 0-9]+\] .tdata +PROGBITS +0+201154 0+1154 0+60 00 WAT +0 +0 +1
+\[[ 0-9]+\] .tbss +NOBITS +0+2011b4 0+11b4 0+20 00 WAT +0 +0 +1
/testsuite/ld-x86-64/ilp32-4.d
1,6 → 1,6
#source: start.s
#as: --x32
#ld: -m elf32_x86_64 -shared
#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info
#readelf: -d -S --wide
 
There are 10 section headers, starting at offset 0x22c:
/testsuite/ld-x86-64/pr13082-1.s
0,0 → 1,10
.text
.globl _start
_start:
lea .Ljmp(%rip), %rax
.L1:
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.align 8
.Ljmp:
.quad .L1
/testsuite/ld-x86-64/tlsbindesc.dd
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: x86_64-*-*
 
/testsuite/ld-x86-64/ilp32-8.d
0,0 → 1,13
#as: --x32
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000
#objdump: -dw
 
.*: +file format elf32-x86-64
 
 
Disassembly of section .text:
 
e0000054 <_start>:
[ ]*[a-f0-9]+: 48 b8 54 00 00 e0 00 00 00 00 movabs \$0xe0000054,%rax
[ ]*[a-f0-9]+: 48 a1 54 00 00 e0 00 00 00 00 movabs 0xe0000054,%rax
#pass
/testsuite/ld-x86-64/pr13082-5.s
0,0 → 1,12
.text
.globl _start
.globl ifunc
.type ifunc, @gnu_indirect_function
_start:
lea .Ljmp(%rip), %rax
ifunc:
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.align 8
.Ljmp:
.quad ifunc
/testsuite/ld-x86-64/tlsgd6.dd
10,5 → 10,5
 
[a-f0-9]+ <_start>:
[ ]*[a-f0-9]+: 64 8b 04 25 00 00 00 00 mov %fs:0x0,%eax
[ ]*[a-f0-9]+: 48 03 05 81 00 20 00 add 0x200081\(%rip\),%rax # 60022c <_DYNAMIC\+0x80>
[ ]*[a-f0-9]+: 48 03 05 c5 00 20 00 add 0x2000c5\(%rip\),%rax # 600270 <_DYNAMIC\+0x80>
#pass
/testsuite/ld-x86-64/tlsgdesc.dd
1,6 → 1,6
#source: tlsgdesc.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: x86_64-*-*
 
20,7 → 20,7
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 03 0d 5e 02 20 00[ ]+add 0x20025e\(%rip\),%rcx +# 200660 <.*>
+[0-9a-f]+: 48 03 0d 5e 02 20 00[ ]+add 0x20025e\(%rip\),%rcx +# 200668 <.*>
# -> R_X86_64_TPOFF64 sG3
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
31,7 → 31,7
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 03 0d 68 02 20 00[ ]+add 0x200268\(%rip\),%rcx +# 200680 <.*>
+[0-9a-f]+: 48 03 0d 68 02 20 00[ ]+add 0x200268\(%rip\),%rcx +# 200688 <.*>
# -> R_X86_64_TPOFF64 sG4
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
38,7 → 38,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
# GD, gd first
+[0-9a-f]+: 66 48 8d 3d 6c 02 20[ ]+data32 lea 0x20026c\(%rip\),%rdi +# 200690 <.*>
+[0-9a-f]+: 66 48 8d 3d 6c 02 20[ ]+data32 lea 0x20026c\(%rip\),%rdi +# 200698 <.*>
+[0-9a-f]+: 00 *
# -> R_X86_64_DTPMOD64 sG1
+[0-9a-f]+: 66 66 48 e8 9c ff ff[ ]+data32 data32 callq [0-9a-f]+ <.*>
48,7 → 48,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 8d 05 a1 02 20 00[ ]+lea 0x2002a1\(%rip\),%rax +# 2006d8 <.*>
+[0-9a-f]+: 48 8d 05 a1 02 20 00[ ]+lea 0x2002a1\(%rip\),%rax +# 2006e0 <.*>
# -> R_X86_64_TLSDESC sG1
+[0-9a-f]+: ff 10[ ]+callq \*\(%rax\)
+[0-9a-f]+: 90[ ]+nop *
56,7 → 56,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
# GD, desc first
+[0-9a-f]+: 48 8d 05 84 02 20 00[ ]+lea 0x200284\(%rip\),%rax +# 2006c8 <.*>
+[0-9a-f]+: 48 8d 05 84 02 20 00[ ]+lea 0x200284\(%rip\),%rax +# 2006d0 <.*>
# -> R_X86_64_TLSDESC sG2
+[0-9a-f]+: ff 10[ ]+callq \*\(%rax\)
+[0-9a-f]+: 90[ ]+nop *
63,7 → 63,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 66 48 8d 3d 1e 02 20[ ]+data32 lea 0x20021e\(%rip\),%rdi +# 200670 <.*>
+[0-9a-f]+: 66 48 8d 3d 1e 02 20[ ]+data32 lea 0x20021e\(%rip\),%rdi +# 200678 <.*>
+[0-9a-f]+: 00 *
# -> R_X86_64_DTPMOD64 sG2
+[0-9a-f]+: 66 66 48 e8 6e ff ff[ ]+data32 data32 callq [0-9a-f]+ <.*>
76,13 → 76,13
# GD -> IE, gd first, after IE use
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 48 03 05 f2 01 20 00[ ]+add 0x2001f2\(%rip\),%rax +# 200660 <.*>
+[0-9a-f]+: 48 03 05 f2 01 20 00[ ]+add 0x2001f2\(%rip\),%rax +# 200668 <.*>
# -> R_X86_64_TPOFF64 sG3
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 8b 05 e7 01 20 00[ ]+mov 0x2001e7\(%rip\),%rax +# 200660 <.*>
+[0-9a-f]+: 48 8b 05 e7 01 20 00[ ]+mov 0x2001e7\(%rip\),%rax +# 200668 <.*>
# -> R_X86_64_TPOFF64 sG3
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax
+[0-9a-f]+: 90[ ]+nop *
90,7 → 90,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
# GD -> IE, desc first, after IE use
+[0-9a-f]+: 48 8b 05 fa 01 20 00[ ]+mov 0x2001fa\(%rip\),%rax +# 200680 <.*>
+[0-9a-f]+: 48 8b 05 fa 01 20 00[ ]+mov 0x2001fa\(%rip\),%rax +# 200688 <.*>
# -> R_X86_64_TPOFF64 sG4
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax
+[0-9a-f]+: 90[ ]+nop *
99,7 → 99,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 48 03 05 e4 01 20 00[ ]+add 0x2001e4\(%rip\),%rax +# 200680 <.*>
+[0-9a-f]+: 48 03 05 e4 01 20 00[ ]+add 0x2001e4\(%rip\),%rax +# 200688 <.*>
# -> R_X86_64_TPOFF64 sG4
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
108,13 → 108,13
# GD -> IE, gd first, before IE use
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 48 03 05 b8 01 20 00[ ]+add 0x2001b8\(%rip\),%rax +# 200668 <.*>
+[0-9a-f]+: 48 03 05 b8 01 20 00[ ]+add 0x2001b8\(%rip\),%rax +# 200670 <.*>
# -> R_X86_64_TPOFF64 sG5
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 8b 05 ad 01 20 00[ ]+mov 0x2001ad\(%rip\),%rax +# 200668 <.*>
+[0-9a-f]+: 48 8b 05 ad 01 20 00[ ]+mov 0x2001ad\(%rip\),%rax +# 200670 <.*>
# -> R_X86_64_TPOFF64 sG5
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax
+[0-9a-f]+: 90[ ]+nop *
122,7 → 122,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
# GD -> IE, desc first, before IE use
+[0-9a-f]+: 48 8b 05 c0 01 20 00[ ]+mov 0x2001c0\(%rip\),%rax +# 200688 <.*>
+[0-9a-f]+: 48 8b 05 c0 01 20 00[ ]+mov 0x2001c0\(%rip\),%rax +# 200690 <.*>
# -> R_X86_64_TPOFF64 sG6
+[0-9a-f]+: 66 90[ ]+xchg %ax,%ax
+[0-9a-f]+: 90[ ]+nop *
131,7 → 131,7
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 48 03 05 aa 01 20 00[ ]+add 0x2001aa\(%rip\),%rax +# 200688 <.*>
+[0-9a-f]+: 48 03 05 aa 01 20 00[ ]+add 0x2001aa\(%rip\),%rax +# 200690 <.*>
# -> R_X86_64_TPOFF64 sG6
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
142,7 → 142,7
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 03 0d 74 01 20 00[ ]+add 0x200174\(%rip\),%rcx +# 200668 <.*>
+[0-9a-f]+: 48 03 0d 74 01 20 00[ ]+add 0x200174\(%rip\),%rcx +# 200670 <.*>
# -> R_X86_64_TPOFF64 sG5
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
153,7 → 153,7
+[0-9a-f]+: 00 00 *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 48 03 0d 7e 01 20 00[ ]+add 0x20017e\(%rip\),%rcx +# 200688 <.*>
+[0-9a-f]+: 48 03 0d 7e 01 20 00[ ]+add 0x20017e\(%rip\),%rcx +# 200690 <.*>
# -> R_X86_64_TPOFF64 sG6
+[0-9a-f]+: 90[ ]+nop *
+[0-9a-f]+: 90[ ]+nop *
/testsuite/ld-x86-64/ilp32-8.s
0,0 → 1,5
.text
.globl _start
_start:
movabs $_start,%rax
movabs _start,%rax
/testsuite/ld-x86-64/tlsbindesc.td
1,7 → 1,7
#source: tlsbindesc.s
#source: tlsbin.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-3a.d
0,0 → 1,9
#source: pr13082-3.s
#name: PR ld/13082-3 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +func \+ 0
/testsuite/ld-x86-64/tlspic.rd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#readelf: -WSsrl
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-5b.d
0,0 → 1,13
#source: pr13082-5.s
#name: PR ld/13082-5 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
 
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
/testsuite/ld-x86-64/tlsdesc.sd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -s -j.got -j.got.plt
#target: x86_64-*-*
 
/testsuite/ld-x86-64/tlsdesc.dd
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: x86_64-*-*
 
/testsuite/ld-x86-64/tlspic.sd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.got
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-6a.d
0,0 → 1,13
#source: pr13082-6.s
#name: PR ld/13082-6 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
 
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
/testsuite/ld-x86-64/tlsdesc.td
1,7 → 1,7
#source: tlsdesc.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: x86_64-*-*
 
/testsuite/ld-x86-64/pr13082-2.s
0,0 → 1,9
.text
.globl _start
_start:
lea .Ljmp(%rip), %rax
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.align 8
.Ljmp:
.quad _start
/testsuite/ld-x86-64/ilp32-9.d
0,0 → 1,9
#as: --x32
#ld: -m elf32_x86_64 -Ttext-segment 0xe0000000
#objdump: -s -j .text
 
.*: +file format .*
 
Contents of section .text:
e0000054 540000e0 00000000 T.......
#pass
/testsuite/ld-x86-64/pr13082-6.s
0,0 → 1,11
.text
.globl _start
.type ifunc, @gnu_indirect_function
_start:
lea .Ljmp(%rip), %rax
ifunc:
jmp *(%rax)
.section .data.rel.ro.local,"aw",@progbits
.align 8
.Ljmp:
.quad ifunc
/testsuite/ld-x86-64/tlspic.dd
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -drj.text
#target: x86_64-*-*
 
/testsuite/ld-x86-64/abs-k1om.d
0,0 → 1,11
#name: Absolute non-overflowing relocs
#source: ../ld-i386/abs.s
#source: ../ld-i386/zero.s
#as: --64 -march=k1om
#ld: -m elf_k1om
#objdump: -rs -j .text
 
.*: file format .*
 
Contents of section \.text:
[ ][0-9a-f]+ c800fff0 c8000110 c9c3.*
/testsuite/ld-x86-64/pcrel16.d
3,7 → 3,7
#ld: -Ttext 0x0
#objdump: -drj.text -m i8086
 
.*: +file format elf64-x86-64
.*: +file format elf.*-x86-64
 
Disassembly of section .text:
 
/testsuite/ld-x86-64/pr13082-1a.d
0,0 → 1,9
#source: pr13082-1.s
#name: PR ld/13082-1 (a)
#as: --x32
#ld: -shared -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE64 +[0-9a-f]+
/testsuite/ld-x86-64/ilp32-9.s
0,0 → 1,4
.text
.globl _start
_start:
.quad _start
/testsuite/ld-x86-64/pr13082-3b.d
0,0 → 1,9
#source: pr13082-3.s
#name: PR ld/13082-3 (b)
#as: --x32
#ld: -pie -melf32_x86_64
#readelf: -r --wide
 
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +func \+ 0
/testsuite/ld-x86-64/tlspic.td
1,7 → 1,7
#source: tlspic1.s
#source: tlspic2.s
#as: --64
#ld: -shared -melf_x86_64
#ld: -shared -melf_x86_64 --no-ld-generated-unwind-info
#objdump: -sj.tdata
#target: x86_64-*-*
 
/testsuite/ld-elfvsb/elfvsb.exp
302,7 → 302,9
setup_xfail "sparc*-*-linux*"
}
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "x86_64-*-linux*"
}
if { ![istarget hppa*64*-*-linux*] } {
setup_xfail "hppa*-*-linux*"
}
343,7 → 345,9
setup_xfail "alpha*-*-linux*"
setup_xfail "mips*-*-linux*"
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "x86_64-*-linux*"
}
if { ![istarget hppa*64*-*-linux*] } {
setup_xfail "hppa*-*-linux*"
}
415,7 → 419,9
setup_xfail "sparc*-*-linux*"
}
}
setup_xfail "x86_64-*-linux*"
if { [is_elf64 $tmpdir/mainp.o] } {
setup_xfail "x86_64-*-linux*"
}
if { ![istarget hppa*64*-*-linux*] } {
setup_xfail "hppa*-*-linux*"
}
/ldlang.c
237,6 → 237,9
{
struct name_list *list_tmp;
 
/* Propagate the section_flag_info from the wild statement to the section. */
s->section_flag_info = ptr->section_flag_list;
 
/* Don't process sections from files which were excluded. */
for (list_tmp = sec->spec.exclude_name_list;
list_tmp;
2256,8 → 2259,11
lang_output_section_statement_type *output)
{
flagword flags = section->flags;
struct flag_info *sflag_info = section->section_flag_info;
 
bfd_boolean discard;
lang_input_section_type *new_section;
bfd *abfd = link_info.output_bfd;
 
/* Discard sections marked with SEC_EXCLUDE. */
discard = (flags & SEC_EXCLUDE) != 0;
2283,6 → 2289,28
return;
}
 
if (sflag_info)
{
if (sflag_info->flags_initialized == FALSE)
bfd_lookup_section_flags (&link_info, sflag_info);
 
if (sflag_info->only_with_flags != 0
&& sflag_info->not_with_flags != 0
&& ((sflag_info->not_with_flags & flags) != 0
|| (sflag_info->only_with_flags & flags)
!= sflag_info->only_with_flags))
return;
 
if (sflag_info->only_with_flags != 0
&& (sflag_info->only_with_flags & flags)
!= sflag_info->only_with_flags)
return;
 
if (sflag_info->not_with_flags != 0
&& (sflag_info->not_with_flags & flags) != 0)
return;
}
 
if (section->output_section != NULL)
return;
 
3019,7 → 3047,7
 
/* No - has the current target been set to something other than
the default? */
if (current_target != default_target)
if (current_target != default_target && current_target != NULL)
return current_target;
 
/* No - can we determine the format of the first input file? */
6544,6 → 6572,7
einfo (_("%P%F: %s: plugin reported error after all symbols read\n"),
plugin_error_plugin ());
/* Open any newly added files, updating the file chains. */
link_info.loading_lto_outputs = TRUE;
open_input_bfds (added.head, OPEN_BFD_NORMAL);
/* Restore the global list pointer now they have all been added. */
lang_list_remove_tail (stat_ptr, &added);
6713,10 → 6742,12
new_stmt = new_stat (lang_wild_statement, stat_ptr);
new_stmt->filename = NULL;
new_stmt->filenames_sorted = FALSE;
new_stmt->section_flag_list = NULL;
if (filespec != NULL)
{
new_stmt->filename = filespec->name;
new_stmt->filenames_sorted = filespec->sorted == by_name;
new_stmt->section_flag_list = filespec->section_flag_list;
}
new_stmt->section_list = section_list;
new_stmt->keep_sections = keep_sections;
/ldmain.c
105,7 → 105,7
/* True means create DT_NEEDED entries for dynamic libraries that
are DT_NEEDED by dynamic libraries specifically mentioned on
the command line. */
bfd_boolean add_DT_NEEDED_for_dynamic = TRUE;
bfd_boolean add_DT_NEEDED_for_dynamic;
 
/* TRUE if we should demangle symbol names. */
bfd_boolean demangling;
427,11 → 427,14
info_msg ("\n==================================================\n");
}
 
if (command_line.print_output_format)
info_msg ("%s\n", lang_get_output_target ());
 
lang_final ();
 
if (!lang_has_input_file)
{
if (version_printed)
if (version_printed || command_line.print_output_format)
xexit (0);
einfo (_("%P%F: no input files\n"));
}
488,7 → 491,7
einfo (_("%P: link errors found, deleting executable `%s'\n"),
output_filename);
 
/* The file will be removed by remove_output. */
/* The file will be removed by ld_cleanup. */
xexit (1);
}
else
561,7 → 564,7
fflush (stderr);
}
 
/* Prevent remove_output from doing anything, after a successful link. */
/* Prevent ld_cleanup from doing anything, after a successful link. */
output_filename = NULL;
 
xexit (0);
/ldlang.h
240,6 → 240,8
 
bfd *the_bfd;
 
struct flag_info *section_flag_list;
 
/* Point to the next file - whatever it is, wanders up and down
archives */
union lang_statement_union *next;
337,6 → 339,7
walk_wild_section_handler_t walk_wild_section_handler;
struct wildcard_list *handler_data[4];
lang_section_bst_type *tree;
struct flag_info *section_flag_list;
};
 
typedef struct lang_address_statement_struct
/ldlex.l
313,6 → 313,7
<BOTH,SCRIPT>"org" { RTOKEN(ORIGIN);}
<BOTH,SCRIPT>"l" { RTOKEN( LENGTH);}
<BOTH,SCRIPT>"len" { RTOKEN( LENGTH);}
<EXPRESSION,BOTH,SCRIPT>"INPUT_SECTION_FLAGS" { RTOKEN(INPUT_SECTION_FLAGS); }
<EXPRESSION,BOTH,SCRIPT>"INCLUDE" { RTOKEN(INCLUDE);}
<BOTH,SCRIPT>"PHDRS" { RTOKEN (PHDRS); }
<EXPRESSION,BOTH,SCRIPT>"AT" { RTOKEN(AT);}
/scripttempl/pe.sc
292,6 → 292,11
*(.debug_varnames)
}
 
.debug_macro ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
{
*(.debug_macro)
}
 
/* DWARF 3. */
.debug_ranges ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
{
/scripttempl/pep.sc
298,6 → 298,11
*(.debug_varnames)
}
 
.debug_macro ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
{
*(.debug_macro)
}
 
/* DWARF 3. */
.debug_ranges ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
{
/emulparams/elf_k1om.sh
0,0 → 1,35
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-k1om"
NO_REL_RELOCS=yes
TEXT_START_ADDR=0x400000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="k1om"
MACHINE=
COMPILE_IN=yes
NOP=0x90909090
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
LARGE_SECTIONS=yes
SEPARATE_GOTPLT=24
 
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
NATIVE=yes
esac
fi
 
# Linux modifies the default library search path to first include
# a 64-bit specific directory.
case "$target" in
*k1om*-linux*)
case "$EMULATION_NAME" in
*k1om*) LIBPATH_SUFFIX=64 ;;
esac
;;
esac
/emulparams/plt_unwind.sh
0,0 → 1,28
PARSE_AND_LIST_PROLOGUE='
#define OPTION_LD_GENERATED_UNWIND_INFO 301
#define OPTION_NO_LD_GENERATED_UNWIND_INFO 302
'
 
PARSE_AND_LIST_LONGOPTS='
{"ld-generated-unwind-info", no_argument, NULL,
OPTION_LD_GENERATED_UNWIND_INFO},
{"no-ld-generated-unwind-info", no_argument, NULL,
OPTION_NO_LD_GENERATED_UNWIND_INFO},
'
 
PARSE_AND_LIST_OPTIONS='
fprintf (file, _("\
--ld-generated-unwind-info Generate exception handling info for PLT.\n\
--no-ld-generated-unwind-info Don'\''t do so.\n"
));
'
 
PARSE_AND_LIST_ARGS_CASES='
case OPTION_LD_GENERATED_UNWIND_INFO:
link_info.no_ld_generated_unwind_info = FALSE;
break;
 
case OPTION_NO_LD_GENERATED_UNWIND_INFO:
link_info.no_ld_generated_unwind_info = TRUE;
break;
'
/emulparams/elf_i386_chaos.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf_chaos
OUTPUT_FORMAT="elf32-i386"
TEXT_START_ADDR=0x40000000
/emulparams/elf32_x86_64.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
ELFSIZE=32
OUTPUT_FORMAT="elf32-x86-64"
/emulparams/elf_k1om_fbsd.sh
0,0 → 1,3
. ${srcdir}/emulparams/elf_k1om.sh
. ${srcdir}/emulparams/elf_fbsd.sh
OUTPUT_FORMAT="elf64-k1om-freebsd"
/emulparams/elf32ppc.sh
3,6 → 3,7
# elf32ppcsim.sh
 
. ${srcdir}/emulparams/elf32ppccommon.sh
. ${srcdir}/emulparams/plt_unwind.sh
# Yes, we want duplicate .got and .plt sections. The linker chooses the
# appropriate one magically in ppc_after_open
DATA_GOT=
/emulparams/elf_l1om.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-l1om"
/emulparams/elf64ppc.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
TEMPLATE_NAME=elf32
EXTRA_EM_FILE=ppc64elf
ELFSIZE=64
/emulparams/elf_i386_ldso.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
NO_RELA_RELOCS=yes
/emulparams/elf_i386.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
NO_RELA_RELOCS=yes
/emulparams/elf_x86_64.sh
1,3 → 1,4
. ${srcdir}/emulparams/plt_unwind.sh
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-x86-64"
/ldgram.y
72,6 → 72,8
struct wildcard_spec wildcard;
struct wildcard_list *wildcard_list;
struct name_list *name_list;
struct flag_info_list *flag_info_list;
struct flag_info *flag_info;
int token;
union etree_union *etree;
struct phdr_info
93,6 → 95,8
%type <fill> fill_opt fill_exp
%type <name_list> exclude_name_list
%type <wildcard_list> file_NAME_list
%type <flag_info_list> sect_flag_list
%type <flag_info> sect_flags
%type <name> memspec_opt casesymlist
%type <name> memspec_at_opt
%type <cname> wildcard_name
150,7 → 154,7
%token INPUT_SCRIPT INPUT_MRI_SCRIPT INPUT_DEFSYM CASE EXTERN START
%token <name> VERS_TAG VERS_IDENTIFIER
%token GLOBAL LOCAL VERSIONK INPUT_VERSION_SCRIPT
%token KEEP ONLY_IF_RO ONLY_IF_RW SPECIAL
%token KEEP ONLY_IF_RO ONLY_IF_RW SPECIAL INPUT_SECTION_FLAGS
%token EXCLUDE_FILE
%token CONSTANT
%type <versyms> vers_defns
437,6 → 441,7
$$.name = $1;
$$.sorted = none;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name
{
443,6 → 448,7
$$.name = $5;
$$.sorted = none;
$$.exclude_name_list = $3;
$$.section_flag_list = NULL;
}
| SORT_BY_NAME '(' wildcard_name ')'
{
449,6 → 455,7
$$.name = $3;
$$.sorted = by_name;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_ALIGNMENT '(' wildcard_name ')'
{
455,6 → 462,7
$$.name = $3;
$$.sorted = by_alignment;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_NAME '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'
{
461,6 → 469,7
$$.name = $5;
$$.sorted = by_name_alignment;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_NAME '(' SORT_BY_NAME '(' wildcard_name ')' ')'
{
467,6 → 476,7
$$.name = $5;
$$.sorted = by_name;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_ALIGNMENT '(' SORT_BY_NAME '(' wildcard_name ')' ')'
{
473,6 → 483,7
$$.name = $5;
$$.sorted = by_alignment_name;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_ALIGNMENT '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'
{
479,6 → 490,7
$$.name = $5;
$$.sorted = by_alignment;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
| SORT_BY_NAME '(' EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name ')'
{
485,6 → 497,7
$$.name = $7;
$$.sorted = by_name;
$$.exclude_name_list = $5;
$$.section_flag_list = NULL;
}
| SORT_BY_INIT_PRIORITY '(' wildcard_name ')'
{
491,9 → 504,61
$$.name = $3;
$$.sorted = by_init_priority;
$$.exclude_name_list = NULL;
$$.section_flag_list = NULL;
}
;
 
sect_flag_list: NAME
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ($1[0] == '!')
{
n->with = without_flags;
n->name = &$1[1];
}
else
{
n->with = with_flags;
n->name = $1;
}
n->valid = FALSE;
n->next = NULL;
$$ = n;
}
| sect_flag_list '&' NAME
{
struct flag_info_list *n;
n = ((struct flag_info_list *) xmalloc (sizeof *n));
if ($3[0] == '!')
{
n->with = without_flags;
n->name = &$3[1];
}
else
{
n->with = with_flags;
n->name = $3;
}
n->valid = FALSE;
n->next = $1;
$$ = n;
}
;
 
sect_flags:
INPUT_SECTION_FLAGS '(' sect_flag_list ')'
{
struct flag_info *n;
n = ((struct flag_info *) xmalloc (sizeof *n));
n->flag_list = $3;
n->flags_initialized = FALSE;
n->not_with_flags = 0;
n->only_with_flags = 0;
$$ = n;
}
;
 
exclude_name_list:
exclude_name_list wildcard_name
{
541,16 → 606,40
tmp.name = $1;
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = NULL;
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
| sect_flags NAME
{
struct wildcard_spec tmp;
tmp.name = $2;
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = $1;
lang_add_wild (&tmp, NULL, ldgram_had_keep);
}
| '[' file_NAME_list ']'
{
lang_add_wild (NULL, $2, ldgram_had_keep);
}
| sect_flags '[' file_NAME_list ']'
{
struct wildcard_spec tmp;
tmp.name = NULL;
tmp.exclude_name_list = NULL;
tmp.sorted = none;
tmp.section_flag_list = $1;
lang_add_wild (NULL, $3, ldgram_had_keep);
}
| wildcard_spec '(' file_NAME_list ')'
{
lang_add_wild (&$1, $3, ldgram_had_keep);
}
| sect_flags wildcard_spec '(' file_NAME_list ')'
{
$2.section_flag_list = $1;
lang_add_wild (&$2, $4, ldgram_had_keep);
}
;
 
input_section_spec:
/po/es.po
1,7 → 1,7
 
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
# Mensajes en español para ld 2.20.90.
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
 
# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
#
msgid ""
msgstr ""
8,22 → 8,23
"Project-Id-Version: ld 2.20.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2010-11-05 11:34+0100\n"
"PO-Revision-Date: 2010-11-18 12:31-0600\n"
 
"PO-Revision-Date: 2011-08-24 11:51-0600\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
 
#: emultempl/armcoff.em:73
#, c-format
msgid " --support-old-code Support interworking with old code\n"
 
msgstr " --support-old-code Admite interoperar con código antiguo\n"
 
#: emultempl/armcoff.em:74
#, c-format
msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
 
msgstr " --thumb-entry=<sim> Establece el punto de entrada para el símbolo Thumb <sim>\n"
 
#: emultempl/armcoff.em:122
#, c-format
36,7 → 37,7
 
#: emultempl/armcoff.em:195 emultempl/pe.em:1817
msgid "%P: warning: cannot find thumb start symbol %s\n"
 
msgstr "%P: aviso: no se puede encontrar el símbolo de inicio thumb %s\n"
 
#: emultempl/pe.em:418
#, c-format
43,9 → 44,9
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <ficherobase> Genera un fichero base para DLLs reubicables\n"
 
 
 
 
# DLL son las siglas en inglés de `Biblioteca de Enlace Dinámico'.
# El problema es que las siglas en español (BED) no están muy extendidas.
# Se dejó `DLL' sin traducir en todas las ocasiones. cfuga
#: emultempl/pe.em:419
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
54,82 → 55,82
#: emultempl/pe.em:420
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
 
msgstr " --file-alignment <tamaño> Establece el fichero de alineación\n"
 
#: emultempl/pe.em:421
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
 
msgstr " --heap <tamaño> Establece el tamaño inicial del montón\n"
 
#: emultempl/pe.em:422
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
 
msgstr " --image-base <dirección> Establece la dirección de inicio del ejecutable\n"
 
#: emultempl/pe.em:423
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
 
msgstr " --major-image-version <número> Establece el número de versión del ejecutable\n"
 
#: emultempl/pe.em:424
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
 
msgstr " --major-os-version <número> Establece la versión mínima requerida del SO\n"
 
#: emultempl/pe.em:425
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
 
msgstr " --major-subsystem-version <número> Establece la versión mínima requerida del subsistema del SO\n"
 
#: emultempl/pe.em:426
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
 
msgstr " --minor-image-version <número> Establece el número de revisión del ejecutable\n"
 
#: emultempl/pe.em:427
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
 
msgstr " --minor-os-version <número> Establece la revisión mínima requerida del SO\n"
 
#: emultempl/pe.em:428
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
 
msgstr " --minor-subsystem-version <número> Establece la revisión mínima requerida del subsistema del SO\n"
 
#: emultempl/pe.em:429
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
 
msgstr " --section-alignment <tamaño> Establece la alineación de la sección\n"
 
#: emultempl/pe.em:430
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
 
msgstr " --stack <size> Establece el tamaño de la pila inicial\n"
 
#: emultempl/pe.em:431
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
 
msgstr " --subsystem <nombre>[:<versión>] Establece el subsistema [y versión] requeridos del SO\n"
 
#: emultempl/pe.em:432
#, c-format
msgid " --support-old-code Support interworking with old code\n"
 
msgstr " --support-old-code Admite interoperar con código antiguo\n"
 
#: emultempl/pe.em:433
#, c-format
msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
 
msgstr " --[no-]leading-underscore Establece el modo explícito de prefijo de símbolo con subrayado\n"
 
#: emultempl/pe.em:434
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
 
msgstr " --thumb-entry=<símbolo> Establece el punto de entrada para el símbolo Thumb <símbolo>\n"
 
#: emultempl/pe.em:436
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
 
msgstr " --add-stdcall-alias Exporta símbolos con y sin @nn\n"
 
#: emultempl/pe.em:437
#, c-format
144,17 → 145,17
#: emultempl/pe.em:439
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
 
msgstr " --exclude-symbols sim,sim,... Excluye símbolos de la exportación automática\n"
 
#: emultempl/pe.em:440
#, c-format
msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
 
msgstr " --exclude-all-symbols Excluye todos los símbolos de la exportación automática\n"
 
#: emultempl/pe.em:441
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
 
msgstr " --exclude-libs bib,bib,... Excluye bibliotecas de la exportación automática\n"
 
#: emultempl/pe.em:442
#, c-format
164,27 → 165,27
#: emultempl/pe.em:443
#, c-format
msgid " Exclude objects, archive members from auto\n"
 
msgstr " Excluye objetos, miembros de archivo de la exportación\n"
 
#: emultempl/pe.em:444
#, c-format
msgid " export, place into import library instead.\n"
 
msgstr " automática, los coloca en la biblioteca de importación.\n"
 
#: emultempl/pe.em:445
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
 
msgstr " --export-all-symbols Exporta automáticamente todos los globales a la DLL\n"
 
#: emultempl/pe.em:446
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
 
msgstr " --kill-at Elimina @nn de los símbolos exportados\n"
 
#: emultempl/pe.em:447
#, c-format
msgid " --out-implib <file> Generate import library\n"
 
msgstr " --out-implib <fichero> Genera una biblioteca de importación\n"
 
#: emultempl/pe.em:448
#, c-format
202,8 → 203,8
" --compat-implib Create backward compatible import libs;\n"
" create __imp_<SYMBOL> as well.\n"
msgstr ""
 
 
" --compat-implib Crea bibliotecas de importación compatibles hacia atrás;\n"
" crea además __imp_<SÍMBOLO>.\n"
 
#: emultempl/pe.em:452
#, c-format
211,13 → 212,13
" --enable-auto-image-base Automatically choose image base for DLLs\n"
" unless user specifies one\n"
msgstr ""
 
" --enable-auto-image-base Escoge automáticamente la imagen base para las DLLs\n"
" a menos que el usuario especifique una\n"
 
#: emultempl/pe.em:454
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
 
msgstr " --disable-auto-image-base No escoge automáticamente una imagen base. (por defecto)\n"
 
#: emultempl/pe.em:455
#, c-format
226,8 → 227,8
" an importlib, use <string><basename>.dll\n"
" in preference to lib<basename>.dll \n"
msgstr ""
 
 
" --dll-search-prefix=<cadena> Al enlazar dinámicamente con una dll sin una\n"
" biblioteca de importación, usa <cadena><nombrebase>.dll \n"
" en lugar de lib<nombrebase>.dll \n"
 
#: emultempl/pe.em:458
242,7 → 243,7
#: emultempl/pe.em:460
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
 
msgstr " --disable-auto-import No importa automáticamente elementos DATA de las DLLs\n"
 
#: emultempl/pe.em:461
#, c-format
251,9 → 252,9
" adding pseudo-relocations resolved at\n"
" runtime.\n"
msgstr ""
 
" --enable-runtime-pseudo-reloc Evita limitaciones de autoimportación\n"
" agregando pseudo-reubicaciones resueltas\n"
 
" al momento de ejecución.\n"
 
#: emultempl/pe.em:464
#, c-format
262,7 → 263,7
" auto-imported DATA.\n"
msgstr ""
" --disable-runtime-pseudo-reloc No agrega pseudo-reubicaciones al momento\n"
 
" de ejecución para DATOS autoimportados.\n"
 
#: emultempl/pe.em:466
#, c-format
270,8 → 271,8
" --enable-extra-pe-debug Enable verbose debug output when building\n"
" or linking to DLLs (esp. auto-import)\n"
msgstr ""
 
 
" --enable-extra-pe-debug Activa la salida de depuración detallada al construir\n"
" o enlazar a DLLs (en part. con auto-importación)\n"
 
#: emultempl/pe.em:469
#, c-format
288,8 → 289,8
" --enable-long-section-names Use long COFF section names even in\n"
" executable image files\n"
msgstr ""
 
 
" --enable-long-section-names Usa nombres de sección COFF largos aún\n"
" en ficheros de imágenes ejecutables\n"
 
#: emultempl/pe.em:473
#, c-format
297,8 → 298,8
" --disable-long-section-names Never use long COFF section names, even\n"
" in object files\n"
msgstr ""
 
 
" --disable-long-section-names Nunca usa nombres de sección COFF largos,\n"
" aún en ficheros objeto\n"
 
#: emultempl/pe.em:475
#, c-format
306,24 → 307,24
" --dynamicbase\t\t\t Image base address may be relocated using\n"
"\t\t\t\t address space layout randomization (ASLR)\n"
msgstr ""
 
 
 
" --dynamicbase\t\t\t La dirección base de la imagen se puede\n"
"\t\t\t\t reubicar usando la disposición aleatoria\n"
"\t\t\t\t del espacio de direcciones (en inglés: ASLR)\n"
 
#: emultempl/pe.em:477
#, c-format
msgid " --forceinteg\t\t Code integrity checks are enforced\n"
 
msgstr " --forceinteg\t\t Activa la revisión de integridad de código\n"
 
#: emultempl/pe.em:478
#, c-format
msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
 
msgstr " --nxcompat\t\t La imagen es compatible con la prevención de ejecución de datos\n"
 
#: emultempl/pe.em:479
#, c-format
msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
 
msgstr " --no-isolation\t\t La imagen entiende aislamiento, pero no aísla la imagen\n"
 
#: emultempl/pe.em:480
#, c-format
351,19 → 352,19
 
#: emultempl/pe.em:613
msgid "%P: warning: bad version number in -subsystem option\n"
 
msgstr "%P: aviso: número de versión erróneo en la opción -subsystem\n"
 
#: emultempl/pe.em:638
msgid "%P%F: invalid subsystem type %s\n"
 
msgstr "%P%F: tipo de subsistema %s inválido\n"
 
#: emultempl/pe.em:659
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
 
msgstr "%P%F: número hexadecimal inválido para el parámetro PE '%s'\n"
 
#: emultempl/pe.em:676
msgid "%P%F: strange hex info for PE parameter '%s'\n"
 
msgstr "%P%F: información hexadecimal extraña para el parámetro PE '%s'\n"
 
#: emultempl/pe.em:693
#, c-format
372,11 → 373,11
 
#: emultempl/pe.em:969
msgid "%P: warning, file alignment > section alignment.\n"
 
msgstr "%P: aviso, alineación del fichero > alineación de la sección.\n"
 
#: emultempl/pe.em:982
msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
 
msgstr "%P: aviso: --export-dynamic no se admite para objetivos PE, ¿quiso decir --export-all-symbols?\n"
 
#: emultempl/pe.em:1058 emultempl/pe.em:1085
#, c-format
394,12 → 395,12
#: emultempl/pe.em:1110
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
 
msgstr "%C: No se puede obtener el contenido de la sección - excepción de auto-importación\n"
 
#: emultempl/pe.em:1150
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
 
msgstr "Información: se resuelve %s al enlazar con %s (auto-importación)\n"
 
#: emultempl/pe.em:1157
msgid ""
406,14 → 407,14
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
msgstr ""
 
 
"%P: aviso: la importación automática se activó sin especificar --enable-auto-import en la línea de órdenes.\n"
"Esto debe funcionar a menos que involucre estructuras de datos constantes que referencíen símbolos de DLLs auto-importadas.\n"
 
#: emultempl/pe.em:1164 emultempl/pe.em:1369 emultempl/pe.em:1575 ldcref.c:490
#: ldcref.c:588 ldmain.c:1183 ldmisc.c:286 pe-dll.c:705 pe-dll.c:1253
#: pe-dll.c:1348
msgid "%B%F: could not read symbols: %E\n"
 
msgstr "%B%F: no se pueden leer símbolos: %E\n"
 
#: emultempl/pe.em:1245
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
432,19 → 433,19
#: emultempl/pe.em:1701 ldexp.c:542 ldlang.c:3323 ldlang.c:3358 ldlang.c:6804
#: ldlang.c:6835 ldmain.c:1128
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
 
msgstr "%P%F: falló bfd_link_hash_lookup: %E\n"
 
#: ldcref.c:168
msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
 
msgstr "%X%P: falló bfd_hash_table_init de la tabla cref: %E\n"
 
#: ldcref.c:174
msgid "%X%P: cref_hash_lookup failed: %E\n"
 
msgstr "%X%P: falló cref_hash_lookup: %E\n"
 
#: ldcref.c:184
msgid "%X%P: cref alloc failed: %E\n"
 
msgstr "%X%P: falló la reubicación cref: %E\n"
 
#: ldcref.c:366
#, c-format
459,7 → 460,7
 
#: ldcref.c:367
msgid "Symbol"
 
msgstr "Símbolo"
 
#: ldcref.c:375
#, c-format
469,11 → 470,11
#: ldcref.c:379
#, c-format
msgid "No symbols\n"
 
msgstr "No hay símbolos\n"
 
#: ldcref.c:532
msgid "%P: symbol `%T' missing from main hash table\n"
 
msgstr "%P: falta el símbolo `%T' de la tabla principal de dispersión\n"
 
#: ldcref.c:650 ldcref.c:657 ldmain.c:1217 ldmain.c:1224
msgid "%B%F: could not read relocs: %E\n"
497,11 → 498,11
 
#: ldctor.c:281 ldctor.c:295
msgid "%P%X: %s does not support reloc %s for set %s\n"
 
msgstr "%P%X: %s no se admite la reubicación %s para el conjunto %s\n"
 
#: ldctor.c:316
msgid "%P%X: Unsupported size %d for set %s\n"
 
msgstr "%P%X: No se admite el tamaño %d para el conjunto %s\n"
 
#: ldctor.c:337
msgid ""
510,7 → 511,7
"\n"
msgstr ""
"\n"
 
"Conjunto Símbolo\n"
"\n"
 
#: ldemul.c:265
525,7 → 526,7
 
#: ldemul.c:291
msgid "%P: unrecognised emulation mode: %s\n"
 
msgstr "%P: no se reconoce el modo de emulación: %s\n"
 
#: ldemul.c:292
msgid "Supported emulations: "
534,11 → 535,11
#: ldemul.c:334
#, c-format
msgid " no emulation specific options.\n"
 
msgstr " no hay opciones específicas de emulación.\n"
 
#: ldexp.c:313
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
 
msgstr "%P: aviso: la dirección de `%s' no es un múltiplo del tamaño máximo de página\n"
 
#: ldexp.c:351
#, c-format
553,69 → 554,69
#: ldexp.c:552
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
 
msgstr "%X%S: se referencía el símbolo sin resolución `%s' en la expresión\n"
 
#: ldexp.c:564
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
 
msgstr "%F%S: se referencía el símbolo sin definir `%s' en la expresión\n"
 
#: ldexp.c:585 ldexp.c:602 ldexp.c:629
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
 
msgstr "%F%S: se referencía la sección sin definir `%s' en la expresión\n"
 
#: ldexp.c:656 ldexp.c:670
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
 
msgstr "%F%S: se referencía la región MEMORY sin definir `%s' en la expresión\n"
 
#: ldexp.c:681
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
 
msgstr "%F%S: se referencía la constante sin definir `%s' en la expresión\n"
 
#: ldexp.c:743
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
 
msgstr "%F%S no se puede hacer una asignación PROVIDE al contador de ubicación\n"
 
#: ldexp.c:757
#, c-format
msgid "%F%S invalid assignment to location counter\n"
 
msgstr "%F%S asignación inválida al contador de ubicación\n"
 
#: ldexp.c:760
#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTION\n"
 
msgstr "%F%S asignación al contador de ubicación inválida fuera de SECTION\n"
 
#: ldexp.c:773
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
 
msgstr "%F%S no se puede mover el contador de ubicación hacia atrás (de %V a %V)\n"
 
#: ldexp.c:812
msgid "%P%F:%s: hash creation failed\n"
 
msgstr "%P%F:%s: falló la creación de la dispersión\n"
 
#: ldexp.c:1119 ldexp.c:1144 ldexp.c:1204
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
 
msgstr "%F%S: la expresión no es constante para %s\n"
 
#: ldfile.c:141
#, c-format
msgid "attempt to open %s failed\n"
 
msgstr "falló el intento de abrir %s\n"
 
#: ldfile.c:143
#, c-format
msgid "attempt to open %s succeeded\n"
 
msgstr "tuvo éxito el intento de abrir %s\n"
 
#: ldfile.c:149
msgid "%F%P: invalid BFD target `%s'\n"
 
msgstr "%F%P: objetivo BFD inválido `%s'\n"
 
#: ldfile.c:266 ldfile.c:295
msgid "%P: skipping incompatible %s when searching for %s\n"
623,11 → 624,11
 
#: ldfile.c:279
msgid "%F%P: attempted static link of dynamic object `%s'\n"
 
msgstr "%F%P: se intentó el enlazado estático del objeto dinámico `%s'\n"
 
#: ldfile.c:332 ldmain.c:832
msgid "%P%F: %s: plugin reported error claiming file\n"
 
msgstr "%P%F: %s: el plugin reportó error al reclamar el fichero\n"
 
#: ldfile.c:447
msgid "%P: cannot find %s (%s): %E\n"
648,48 → 649,48
#: ldfile.c:507 ldfile.c:525
#, c-format
msgid "cannot find script file %s\n"
 
msgstr "no se puede encontrar el fichero de guión %s\n"
 
#: ldfile.c:509 ldfile.c:527
#, c-format
msgid "opened script file %s\n"
 
msgstr "fichero de guión %s abierto\n"
 
#: ldfile.c:657
msgid "%P%F: cannot open linker script file %s: %E\n"
 
msgstr "%P%F: no se puede abrir el fichero de guión del enlazador %s: %E\n"
 
#: ldfile.c:722
msgid "%P%F: cannot represent machine `%s'\n"
 
msgstr "%P%F: no se puede representar la máquina `%s'\n"
 
#: ldlang.c:1160 ldlang.c:1202 ldlang.c:3048
msgid "%P%F: can not create hash table: %E\n"
 
msgstr "%P%F: no se puede crear la tabla de dispersión: %E\n"
 
#: ldlang.c:1253
msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
 
msgstr "%P:%S: aviso: redeclaración de la región de memoria `%s'\n"
 
#: ldlang.c:1259
msgid "%P:%S: warning: memory region `%s' not declared\n"
 
msgstr "%P:%S: aviso: no se declaró la región de memoria `%s'\n"
 
#: ldlang.c:1293
msgid "%F%P:%S: error: alias for default memory region\n"
 
msgstr "%F%P:%S: aviso: alias para la región de memoria por defecto\n"
 
#: ldlang.c:1304
msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
 
msgstr "%F%P:%S: aviso: redefinición del alias de la región de memoria '%s'\n"
 
#: ldlang.c:1311
msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
 
msgstr "%F%P:%S: aviso: no existe la región de memoria `%s' para el alias `%s'\n"
 
#: ldlang.c:1363 ldlang.c:1402
msgid "%P%F: failed creating section `%s': %E\n"
 
msgstr "%P%F: falló la creación de la sección `%s': %E\n"
 
#: ldlang.c:1958
#, c-format
709,7 → 710,7
"\n"
msgstr ""
"\n"
 
"Configuración de la Memoria\n"
"\n"
 
#: ldlang.c:1968
736,16 → 737,16
"\n"
msgstr ""
"\n"
 
"Guión del enlazador y mapa de memoria\n"
"\n"
 
#: ldlang.c:2074
msgid "%P%F: Illegal use of `%s' section\n"
 
msgstr "%P%F: Uso ilegal de la sección `%s'\n"
 
#: ldlang.c:2083
msgid "%P%F: output format %s cannot represent section called %s\n"
 
msgstr "%P%F: el formato de salida %s no puede representar la sección llamada %s\n"
 
#: ldlang.c:2636
msgid "%B: file not recognized: %E\n"
765,15 → 766,15
 
#: ldlang.c:2730 ldlang.c:2744
msgid "%F%B: could not read symbols: %E\n"
 
msgstr "%F%B: no se puede leer símbolos: %E\n"
 
#: ldlang.c:3018
msgid "%P: warning: could not find any targets that match endianness requirement\n"
 
msgstr "%P: aviso: no se puede encontrar ningún objetivo que coincida con los requerimientos de `endianez'\n"
 
#: ldlang.c:3032
msgid "%P%F: target %s not found\n"
 
msgstr "%P%F: no se encontró el objetivo %s\n"
 
#: ldlang.c:3034
msgid "%P%F: cannot open output file %s: %E\n"
789,15 → 790,15
 
#: ldlang.c:3185
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
 
msgstr "%P: aviso: %s contiene secciones de salida. ¿Olvidó -T?\n"
 
#: ldlang.c:3215
msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
 
msgstr "%P%F: falló bfd_hash_lookup al crear el símbolo %s\n"
 
#: ldlang.c:3233
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
 
msgstr "%P%F: falló bfd_hash_allocate al crear el símbolo %s\n"
 
#: ldlang.c:3688
msgid "%F%P: %s not found for insert\n"
805,94 → 806,94
 
#: ldlang.c:3903
msgid " load address 0x%V"
 
msgstr " dirección de carga 0x%V"
 
#: ldlang.c:4179
msgid "%W (size before relaxing)\n"
 
msgstr "%W (tamaño antes de la relajación)\n"
 
#: ldlang.c:4270
#, c-format
msgid "Address of section %s set to "
 
msgstr "La dirección de la sección %s se estableció a "
 
#: ldlang.c:4423
#, c-format
msgid "Fail with %d\n"
 
msgstr "Falló con %d\n"
 
#: ldlang.c:4710
msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
 
msgstr "%X%P: la sección %s cargada en [%V,%V] sobreescribe la sección %s cargada en [%V,%V]\n"
 
#: ldlang.c:4726
msgid "%X%P: region `%s' overflowed by %ld bytes\n"
 
msgstr "%X%P: la región `%s' se desborda por %ld bytes\n"
 
#: ldlang.c:4749
msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
 
msgstr "%X%P: la dirección 0x%v de la sección %B %s no está dentro de la región `%s'\n"
 
#: ldlang.c:4760
msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
 
msgstr "%X%P: la sección %B `%s' no cabe en la región `%s'\n"
 
#: ldlang.c:4816
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
 
msgstr "%F%S: expresión de dirección de referencia hacia adelante o no constante para la sección %s\n"
 
#: ldlang.c:4841
msgid "%P%X: Internal error on COFF shared library section %s\n"
 
msgstr "%P%X: Error interno en la sección de biblioteca compartida COFF %s\n"
 
#: ldlang.c:4900
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
 
msgstr "%P%F: aviso: no se especificó una región de memoria para la sección cargable `%s'\n"
 
#: ldlang.c:4905
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
 
msgstr "%P: aviso: no se especificó una región de memoria para la sección cargable `%s'\n"
 
#: ldlang.c:4927
msgid "%P: warning: changing start of section %s by %lu bytes\n"
 
msgstr "%P: aviso: se cambia el inicio de la sección %s por %lu bytes\n"
 
#: ldlang.c:5004
msgid "%P: warning: dot moved backwards before `%s'\n"
 
msgstr "%P: aviso: el punto se movió hacia atrás antes de `%s'\n"
 
#: ldlang.c:5170
msgid "%P%F: can't relax section: %E\n"
 
msgstr "%P%F: no se puede relajar la sección: %E\n"
 
#: ldlang.c:5497
msgid "%F%P: invalid data statement\n"
 
msgstr "%F%P: declaración de datos inválida\n"
 
#: ldlang.c:5530
msgid "%F%P: invalid reloc statement\n"
 
msgstr "%F%P: declaración de reubicación inválida\n"
 
#: ldlang.c:5648
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
 
msgstr "%P%F: las secciones-gc requieren de una entrada o un símbolo indefinido\n"
 
#: ldlang.c:5673
msgid "%P%F:%s: can't set start address\n"
 
msgstr "%P%F:%s: no se puede establecer la dirección de inicio\n"
 
#: ldlang.c:5686 ldlang.c:5705
msgid "%P%F: can't set start address\n"
 
msgstr "%P%F: no se puede establecer la dirección de inicio\n"
 
#: ldlang.c:5698
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
 
msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; se usa por defecto %V\n"
 
#: ldlang.c:5710
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
 
msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; no se establece la dirección de inicio\n"
 
#: ldlang.c:5760
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
904,11 → 905,11
 
#: ldlang.c:5792
msgid "%P%X: failed to merge target specific data of file %B\n"
 
msgstr "%P%X: falló la mezcla de datos específicos de objetivo del fichero %B\n"
 
#: ldlang.c:5863
msgid "%P%F: Could not define common symbol `%T': %E\n"
 
msgstr "%P%F: No se puede definir el símbolo común `%T': %E\n"
 
#: ldlang.c:5875
msgid ""
916,7 → 917,7
"Allocating common symbols\n"
msgstr ""
"\n"
 
"Se asignan símbolos comunes\n"
 
#: ldlang.c:5876
msgid ""
923,28 → 924,28
"Common symbol size file\n"
"\n"
msgstr ""
 
"Símbolo común tamaño fichero\n"
"\n"
 
#: ldlang.c:6022
msgid "%P%F: invalid syntax in flags\n"
 
msgstr "%P%F: sintaxis inválida en los interruptores\n"
 
#: ldlang.c:6415
msgid "%P%F: Failed to create hash table\n"
 
msgstr "%P%F: Falló al crear la tabla de dispersión\n"
 
#: ldlang.c:6430
msgid "%P%F: %s: plugin reported error after all symbols read\n"
 
msgstr "%P%F: %s: el plugin reportó error después de leer todos los símbolos\n"
 
#: ldlang.c:6717
msgid "%P%F: multiple STARTUP files\n"
 
msgstr "%P%F: ficheros STARTUP múltiples\n"
 
#: ldlang.c:6765
msgid "%X%P:%S: section has both a load address and a load region\n"
 
msgstr "%X%P:%S: la sección tiene tanto una dirección de carga como una región de carga\n"
 
#: ldlang.c:6950
msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
956,35 → 957,35
 
#: ldlang.c:7060
msgid "%F%P: bfd_record_phdr failed: %E\n"
 
msgstr "%F%P: falló bfd_record_phdr: %E\n"
 
#: ldlang.c:7080
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
 
msgstr "%X%P: se asignó la sección `%s' al phdr que no existe `%s'\n"
 
#: ldlang.c:7481
msgid "%X%P: unknown language `%s' in version information\n"
 
msgstr "%X%P: lenguaje `%s' desconocido en la información de la versión\n"
 
#: ldlang.c:7626
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
 
msgstr "%X%P: la marca de versión anónima no se puede combinar con otras marcas de versión\n"
 
#: ldlang.c:7635
msgid "%X%P: duplicate version tag `%s'\n"
 
msgstr "%X%P: marca de versión `%s' duplicada\n"
 
#: ldlang.c:7656 ldlang.c:7665 ldlang.c:7683 ldlang.c:7693
msgid "%X%P: duplicate expression `%s' in version information\n"
 
msgstr "%X%P: expresión `%s' duplicada en la información de la versión\n"
 
#: ldlang.c:7733
msgid "%X%P: unable to find version dependency `%s'\n"
 
msgstr "%X%P: no se puede encontrar la dependencia de versión `%s'\n"
 
#: ldlang.c:7756
msgid "%X%P: unable to read .exports section contents\n"
 
msgstr "%X%P: no se pueden leer los contenidos de la sección .exports\n"
 
#: ldmain.c:239
msgid "%X%P: can't set BFD default target to `%s': %E\n"
1004,11 → 1005,11
 
#: ldmain.c:400
msgid "using external linker script:"
 
msgstr "se usa el guión externo del enlazador:"
 
#: ldmain.c:402
msgid "using internal linker script:"
 
msgstr "se usa el guión interno del enlazador:"
 
#: ldmain.c:436
msgid "%P%F: no input files\n"
1032,7 → 1033,7
 
#: ldmain.c:503
msgid "%F%B: final close failed: %E\n"
 
msgstr "%F%B: falló el cerrado final: %E\n"
 
#: ldmain.c:529
msgid "%X%P: unable to open for source of copy `%s'\n"
1059,7 → 1060,7
#: ldmain.c:563
#, c-format
msgid "%s: data size %ld\n"
 
msgstr "%s: tamaño de los datos %ld\n"
 
#: ldmain.c:646
msgid "%P%F: missing argument to -m\n"
1067,19 → 1068,19
 
#: ldmain.c:694 ldmain.c:714 ldmain.c:746 plugin.c:772
msgid "%P%F: bfd_hash_table_init failed: %E\n"
 
msgstr "%P%F: falló bfd_hash_table_init: %E\n"
 
#: ldmain.c:698 ldmain.c:718
msgid "%P%F: bfd_hash_lookup failed: %E\n"
 
msgstr "%P%F: falló bfd_hash_lookup: %E\n"
 
#: ldmain.c:732
msgid "%X%P: error: duplicate retain-symbols-file\n"
 
msgstr "%X%P: error: fichero de símbolos a retener duplicado\n"
 
#: ldmain.c:776
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
 
msgstr "%P%F: falló bfd_hash_lookup para la inserción: %E\n"
 
#: ldmain.c:781
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
1091,66 → 1092,66
"Archive member included because of file (symbol)\n"
"\n"
msgstr ""
 
"Se incluyó el miembro del archivo debido al fichero (símbolo)\n"
"\n"
 
#: ldmain.c:975
msgid "%X%C: multiple definition of `%T'\n"
 
msgstr "%X%C: definiciones múltiples de `%T'\n"
 
#: ldmain.c:978
msgid "%D: first defined here\n"
 
msgstr "%D: primero se definió aquí\n"
 
#: ldmain.c:982
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
 
msgstr "%P: Se desactiva la relajación: no funcionará con definiciones múltiples\n"
 
 
 
# FIXME: Revisar en el código fuente si `common' se refiere a una orden o
# se puede sustituir por `común'. cfuga
#: ldmain.c:1012
msgid "%B: warning: definition of `%T' overriding common\n"
 
msgstr "%B: aviso: la definición de `%T' se impone a common\n"
 
#: ldmain.c:1015
msgid "%B: warning: common is here\n"
 
msgstr "%B: aviso: common está aquí\n"
 
#: ldmain.c:1022
msgid "%B: warning: common of `%T' overridden by definition\n"
 
msgstr "%B: aviso: el common de `%T' se sobrepasa por definición\n"
 
#: ldmain.c:1025
msgid "%B: warning: defined here\n"
 
msgstr "%B: aviso: se definió aquí\n"
 
#: ldmain.c:1032
msgid "%B: warning: common of `%T' overridden by larger common\n"
 
msgstr "%B: aviso: el common de `%T' se sobrepasa con un common más grande\n"
 
#: ldmain.c:1035
msgid "%B: warning: larger common is here\n"
 
msgstr "%B: aviso: el common más grande está aquí\n"
 
#: ldmain.c:1039
msgid "%B: warning: common of `%T' overriding smaller common\n"
 
msgstr "%B: aviso: el common de `%T' se sobrepasa con un common más pequeño\n"
 
#: ldmain.c:1042
msgid "%B: warning: smaller common is here\n"
 
msgstr "%B: aviso: el common más pequeño está aquí\n"
 
#: ldmain.c:1046
msgid "%B: warning: multiple common of `%T'\n"
 
msgstr "%B: aviso: common múltiple de `%T'\n"
 
#: ldmain.c:1048
msgid "%B: warning: previous common is here\n"
 
msgstr "%B: aviso: el common previo está aquí\n"
 
#: ldmain.c:1068 ldmain.c:1106
msgid "%P: warning: global constructor %s used\n"
 
msgstr "%P: aviso: se usó el constructor global %s\n"
 
#: ldmain.c:1116
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
1163,11 → 1164,11
 
#: ldmain.c:1273
msgid "%F%P: bfd_hash_table_init failed: %E\n"
 
msgstr "%F%P: falló bfd_hash_table_init: %E\n"
 
#: ldmain.c:1280
msgid "%F%P: bfd_hash_lookup failed: %E\n"
 
msgstr "%F%P: falló bfd_hash_lookup: %E\n"
 
#: ldmain.c:1301
msgid "%X%C: undefined reference to `%T'\n"
1179,11 → 1180,11
 
#: ldmain.c:1310
msgid "%X%D: more undefined references to `%T' follow\n"
 
msgstr "%X%D: más referencias a `%T' sin definir a continuación\n"
 
#: ldmain.c:1313
msgid "%D: warning: more undefined references to `%T' follow\n"
 
msgstr "%D: aviso: más referencias a `%T' sin definir a continuación\n"
 
#: ldmain.c:1324
msgid "%X%B: undefined reference to `%T'\n"
1195,50 → 1196,50
 
#: ldmain.c:1333
msgid "%X%B: more undefined references to `%T' follow\n"
 
msgstr "%X%B: más referencias a `%T' sin definir a continuación\n"
 
#: ldmain.c:1336
msgid "%B: warning: more undefined references to `%T' follow\n"
 
msgstr "%B: aviso: más referencias a `%T' sin definir a continuación\n"
 
#: ldmain.c:1375
msgid " additional relocation overflows omitted from the output\n"
 
msgstr " se omitieron desbordamientos de reubicación adicionales de la salida\n"
 
#: ldmain.c:1388
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
 
msgstr " reubicación truncada para ajustar: %s contra el símbolo `%T' sin definir"
 
#: ldmain.c:1393
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
 
msgstr " reubicación truncada para ajustar: %s contra el símbolo `%T' definido en la sección %A en %B"
 
#: ldmain.c:1405
msgid " relocation truncated to fit: %s against `%T'"
 
msgstr " reubicación truncada para ajustar: %s contra `%T'"
 
#: ldmain.c:1422
#, c-format
msgid "%X%C: dangerous relocation: %s\n"
 
msgstr "%X%C: reubicación peligrosa: %s\n"
 
#: ldmain.c:1437
msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
 
msgstr "%X%C: la reubicación se refiere al símbolo `%T' el cual no se muestra\n"
 
#: ldmisc.c:149
#, c-format
msgid "no symbol"
 
msgstr "no hay símbolo"
 
#: ldmisc.c:246
#, c-format
msgid "built in linker script:%u"
 
msgstr "guión interno del enlazador:%u"
 
#: ldmisc.c:324
msgid "%B: In function `%T':\n"
 
msgstr "%B: En la función `%T':\n"
 
#: ldmisc.c:451
msgid "%F%P: internal error %s %d\n"
1246,11 → 1247,11
 
#: ldmisc.c:500
msgid "%P: internal error: aborting at %s line %d in %s\n"
 
msgstr "%P: error interno: se aborta en %s línea %d en %s\n"
 
#: ldmisc.c:503
msgid "%P: internal error: aborting at %s line %d\n"
 
msgstr "%P: error interno: se aborta en %s línea %d\n"
 
#: ldmisc.c:505
msgid "%P%F: please report this bug\n"
1274,10 → 1275,10
"the GNU General Public License version 3 or (at your option) a later version.\n"
"This program has absolutely no warranty.\n"
msgstr ""
 
 
"Este programa es software libre; se puede redistribuir bajo los términos de\n"
"la Licencia Pública General de GNU versión 3 o (a su elección) una versión\n"
"posterior.\n"
 
"Este programa no tiene absolutamente ninguna garantía.\n"
 
#: ldver.c:54
#, c-format
1286,24 → 1287,24
 
#: ldwrite.c:62 ldwrite.c:207
msgid "%P%F: bfd_new_link_order failed\n"
 
msgstr "%P%F: falló bfd_new_link_order\n"
 
#: ldwrite.c:365
msgid "%F%P: cannot create split section name for %s\n"
 
msgstr "%F%P: no se puede crear el nombre de sección dividida para %s\n"
 
#: ldwrite.c:377
msgid "%F%P: clone section failed: %E\n"
 
msgstr "%F%P: falló la clonación de la sección: %E\n"
 
#: ldwrite.c:418
#, c-format
msgid "%8x something else\n"
 
msgstr "%8x algo más\n"
 
#: ldwrite.c:588
msgid "%F%P: final link failed: %E\n"
 
msgstr "%F%P: falló el enlace final: %E\n"
 
#: lexsup.c:219 lexsup.c:368
msgid "KEYWORD"
1336,23 → 1337,23
 
#: lexsup.c:227
msgid "Read MRI format linker script"
 
msgstr "Lee el guión del enlazador de formato MRI"
 
#: lexsup.c:229
msgid "Force common symbols to be defined"
 
msgstr "Fuerza que se definan los símbolos comunes"
 
#: lexsup.c:233 lexsup.c:545 lexsup.c:547 lexsup.c:549 lexsup.c:551
msgid "ADDRESS"
 
msgstr "DIRECCIÓN"
 
#: lexsup.c:233
msgid "Set start address"
 
msgstr "Establece la dirección de inicio"
 
#: lexsup.c:235
msgid "Export all dynamic symbols"
 
msgstr "Exporta todos los símbolos dinámicos"
 
#: lexsup.c:237
msgid "Undo the effect of --export-dynamic"
1372,11 → 1373,11
 
#: lexsup.c:243
msgid "Auxiliary filter for shared object symbol table"
 
msgstr "Filtro auxiliar para la tabla de símbolos de objetos compartidos"
 
#: lexsup.c:246
msgid "Filter for shared object symbol table"
 
msgstr "Filtro para la tabla de símbolos de objetos compartidos"
 
#: lexsup.c:249
msgid "Ignored"
1384,11 → 1385,11
 
#: lexsup.c:251
msgid "SIZE"
 
msgstr "TAMAÑO"
 
#: lexsup.c:251
msgid "Small data size (if no size, same as --shared)"
 
msgstr "Tamaño de los datos small (si no se especifica, es el mismo que --shared)"
 
#: lexsup.c:254
msgid "FILENAME"
1404,7 → 1405,7
 
#: lexsup.c:256
msgid "Set PROGRAM as the dynamic linker to use"
 
msgstr "Establece el PROGRAMA como el enlazador dinámico a utilizar"
 
#: lexsup.c:259
msgid "LIBNAME"
1420,23 → 1421,23
 
#: lexsup.c:261
msgid "Add DIRECTORY to library search path"
 
msgstr "Agrega el DIRECTORIO a la ruta de búsqueda de bibliotecas"
 
#: lexsup.c:264
msgid "Override the default sysroot location"
 
msgstr "Sobreescribe la ubicación de sysroot por defecto"
 
#: lexsup.c:266
msgid "EMULATION"
 
msgstr "EMULACIÓN"
 
#: lexsup.c:266
msgid "Set emulation"
 
msgstr "Establece la emulación"
 
#: lexsup.c:268
msgid "Print map file on standard output"
 
msgstr "Muestra el fichero mapa en la salida estándar"
 
#: lexsup.c:270
msgid "Do not page align data"
1444,11 → 1445,11
 
#: lexsup.c:272
msgid "Do not page align data, do not make text readonly"
 
msgstr "No pagina los datos alineados, no hace el texto de sólo lectura"
 
#: lexsup.c:275
msgid "Page align data, make text readonly"
 
msgstr "Pagina los datos alineados, hace el texto de sólo lectura"
 
#: lexsup.c:278
msgid "Set output file name"
1472,7 → 1473,7
 
#: lexsup.c:285
msgid "Send arg to last-loaded plugin"
 
msgstr "Envía el argumento al último plugin cargado"
 
#: lexsup.c:288
msgid "Ignored for SVR4 compatibility"
1484,23 → 1485,23
 
#: lexsup.c:296
msgid "Just link symbols (if directory, same as --rpath)"
 
msgstr "Sólo enlaza símbolos (si es un directorio, es igual que --rpath)"
 
#: lexsup.c:299
msgid "Strip all symbols"
 
msgstr "Descarta todos los símbolos"
 
#: lexsup.c:301
msgid "Strip debugging symbols"
 
msgstr "Descarta los símbolos de depuración"
 
#: lexsup.c:303
msgid "Strip symbols in discarded sections"
 
msgstr "Descarta símbolos en las secciones descartadas"
 
#: lexsup.c:305
msgid "Do not strip symbols in discarded sections"
 
msgstr "No descarta símbolos en las secciones descartadas"
 
#: lexsup.c:307
msgid "Trace file opens"
1508,28 → 1509,28
 
#: lexsup.c:309
msgid "Read linker script"
 
msgstr "Lee el guión del enlazador"
 
#: lexsup.c:311
msgid "Read default linker script"
 
msgstr "Lee el guión del enlazador por defecto"
 
#: lexsup.c:315 lexsup.c:333 lexsup.c:418 lexsup.c:439 lexsup.c:538
#: lexsup.c:566 lexsup.c:605
msgid "SYMBOL"
 
msgstr "SÍMBOLO"
 
#: lexsup.c:315
msgid "Start with undefined reference to SYMBOL"
 
msgstr "Inicia con una referencia sin definir hacia el SÍMBOLO"
 
#: lexsup.c:318
msgid "[=SECTION]"
 
msgstr "[=SECCIÓN]"
 
#: lexsup.c:319
msgid "Don't merge input [SECTION | orphan] sections"
 
msgstr "No mezcla secciones de entrada [SECCIÓN | huérfanas]"
 
#: lexsup.c:321
msgid "Build global constructor/destructor tables"
1537,27 → 1538,27
 
#: lexsup.c:323
msgid "Print version information"
 
msgstr "Muestra la información de la versión"
 
#: lexsup.c:325
msgid "Print version and emulation information"
 
msgstr "Muestra la información de la versión y de la emulación"
 
#: lexsup.c:327
msgid "Discard all local symbols"
 
msgstr "Descarta todos los símbolos locales"
 
#: lexsup.c:329
msgid "Discard temporary local symbols (default)"
 
msgstr "Descarta los símbolos locales temporales (por defecto)"
 
#: lexsup.c:331
msgid "Don't discard any local symbols"
 
msgstr "No descarta ningún símbolo local"
 
#: lexsup.c:333
msgid "Trace mentions of SYMBOL"
 
msgstr "Rastrea las menciones del SÍMBOLO"
 
#: lexsup.c:335 lexsup.c:503 lexsup.c:505
msgid "PATH"
1565,7 → 1566,7
 
#: lexsup.c:335
msgid "Default search path for Solaris compatibility"
 
msgstr "Ruta de búsqueda por defecto para compatibilidad con Solaris"
 
#: lexsup.c:338
msgid "Start a group"
1585,7 → 1586,7
 
#: lexsup.c:361
msgid "Only set DT_NEEDED for following dynamic libs if used"
 
msgstr "Sólo establece DT_NEEDED para las siguientes bibliotecas dinámicas si se usan"
 
#: lexsup.c:364
msgid ""
1592,8 → 1593,8
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
msgstr ""
 
 
"Siempre establece DT_NEEDED para las bibliotecas dinámicas\n"
" mencionadas en la línea de órdenes"
 
#: lexsup.c:368
msgid "Ignored for SunOS compatibility"
1613,7 → 1614,7
 
#: lexsup.c:386
msgid "Bind global function references locally"
 
msgstr "Asocia localmente las referencias a función globales"
 
#: lexsup.c:388
msgid "Check section addresses for overlaps (default)"
1625,11 → 1626,11
 
#: lexsup.c:395
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
 
msgstr "Copia los enlaces DT_NEEDED mencionados dentro de los DSOs a continuación"
 
#: lexsup.c:399
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
 
msgstr "No copia los enlaces DT_NEEDED mencionados dentro de los DSOs a continuación"
 
#: lexsup.c:403
msgid "Output cross reference table"
1637,11 → 1638,11
 
#: lexsup.c:405
msgid "SYMBOL=EXPRESSION"
 
msgstr "SÍMBOLO=EXPRESIÓN"
 
#: lexsup.c:405
msgid "Define a symbol"
 
msgstr "Define un símbolo"
 
#: lexsup.c:407
msgid "[=STYLE]"
1649,12 → 1650,12
 
#: lexsup.c:407
msgid "Demangle symbol names [using STYLE]"
 
msgstr "Desenreda los nombres de los símbolos [utilizando el ESTILO]"
 
 
# No me convence mucho la traducción de `embedded' por imbuído. cfuga
#: lexsup.c:410
msgid "Generate embedded relocs"
 
msgstr "Genera reubicaciones imbuídas"
 
#: lexsup.c:412
msgid "Treat warnings as errors"
1666,11 → 1667,11
 
#: lexsup.c:418
msgid "Call SYMBOL at unload-time"
 
msgstr "Llama al SÍMBOLO al momento de descargar"
 
#: lexsup.c:420
msgid "Force generation of file with .exe suffix"
 
msgstr "Fuerza la generación del fichero con sufijo .exe"
 
#: lexsup.c:422
msgid "Remove unused sections (on some targets)"
1682,7 → 1683,7
 
#: lexsup.c:428
msgid "List removed unused sections on stderr"
 
msgstr "Muestra las secciones sin uso eliminadas en la salida de error estándar"
 
#: lexsup.c:431
msgid "Do not list removed unused sections"
1690,7 → 1691,7
 
#: lexsup.c:434
msgid "Set default hash table size close to <NUMBER>"
 
msgstr "Establece el tamaño de de la tabla de dispersión cercano al <NÚMERO>"
 
#: lexsup.c:437
msgid "Print option help"
1698,7 → 1699,7
 
#: lexsup.c:439
msgid "Call SYMBOL at load-time"
 
msgstr "Llama al SÍMBOLO al momento de cargar"
 
#: lexsup.c:441
msgid "Write a map file"
1710,11 → 1711,11
 
#: lexsup.c:445
msgid "Do not demangle symbol names"
 
msgstr "No desenreda los nombres de los símbolos"
 
#: lexsup.c:447
msgid "Use less memory and more disk I/O"
 
msgstr "Usa menos memoria y más E/S de disco"
 
#: lexsup.c:449
msgid "Do not allow unresolved references in object files"
1730,7 → 1731,7
 
#: lexsup.c:460
msgid "Allow multiple definitions"
 
msgstr "Permite definiciones múltiples"
 
#: lexsup.c:462
msgid "Disallow undefined version"
1738,11 → 1739,11
 
#: lexsup.c:464
msgid "Create default symbol version"
 
msgstr "Crea la versión de símbolo por defecto"
 
#: lexsup.c:467
msgid "Create default symbol version for imported symbols"
 
msgstr "Crea la versión de símbolo por defecto para símbolos importados"
 
#: lexsup.c:470
msgid "Don't warn about mismatched input files"
1758,7 → 1759,7
 
#: lexsup.c:478
msgid "Create an output file even if errors occur"
 
msgstr "Crea un fichero de salida aún si ocurren errores"
 
#: lexsup.c:483
msgid ""
1766,7 → 1767,7
" the command line"
msgstr ""
"Utiliza solamente los directorios de bibliotecas\n"
 
" especificados en la línea de órdenes"
 
#: lexsup.c:487
msgid "Specify target of output file"
1778,27 → 1779,27
 
#: lexsup.c:493
msgid "Reduce memory overheads, possibly taking much longer"
 
msgstr "Reduce las saturaciones de memoria, tal vez tomando más tiempo"
 
#: lexsup.c:496
msgid "Reduce code size by using target specific optimizations"
 
msgstr "Reduce el tamaño del código usando optimizaciones específicas del objetivo"
 
#: lexsup.c:498
msgid "Do not use relaxation techniques to reduce code size"
 
msgstr "No utiliza técnicas de relajación para reducir el tamaño del código"
 
#: lexsup.c:501
msgid "Keep only symbols listed in FILE"
 
msgstr "Conserva solamente los símbolos enlistados en el FICHERO"
 
#: lexsup.c:503
msgid "Set runtime shared library search path"
 
msgstr "Establece la ruta de búsqueda de bibliotecas compartidas en tiempo de ejecución"
 
#: lexsup.c:505
msgid "Set link time shared library search path"
 
msgstr "Establece la ruta de búsqueda de bibliotecas compartidas en tiempo de enlace"
 
#: lexsup.c:508
msgid "Create a shared library"
1806,7 → 1807,7
 
#: lexsup.c:512
msgid "Create a position independent executable"
 
msgstr "Crea un ejecutable independiente de posición"
 
#: lexsup.c:516
msgid "[=ascending|descending]"
1814,15 → 1815,15
 
#: lexsup.c:517
msgid "Sort common symbols by alignment [in specified order]"
 
msgstr "Ordena los símbolos comunes por alineación [en orden específico]"
 
#: lexsup.c:522
msgid "name|alignment"
 
msgstr "nombre|alineación"
 
#: lexsup.c:523
msgid "Sort sections by name or maximum alignment"
 
msgstr "Ordena secciones por nombre o alineación máxima"
 
#: lexsup.c:525
msgid "COUNT"
1830,15 → 1831,15
 
#: lexsup.c:525
msgid "How many tags to reserve in .dynamic section"
 
msgstr "Cúantas marcas reserva en la sección .dynamic"
 
#: lexsup.c:528
msgid "[=SIZE]"
 
msgstr "[=TAMAÑO]"
 
#: lexsup.c:528
msgid "Split output sections every SIZE octets"
 
msgstr "Divide las secciones de salida cada TAMAÑO octetos"
 
#: lexsup.c:531
msgid "[=COUNT]"
1850,11 → 1851,11
 
#: lexsup.c:534
msgid "Print memory usage statistics"
 
msgstr "Muestra las estadísticas de uso de memoria"
 
#: lexsup.c:536
msgid "Display target specific options"
 
msgstr "Muestra las opciones específicas del objetivo"
 
#: lexsup.c:538
msgid "Do task level linking"
1866,27 → 1867,27
 
#: lexsup.c:542
msgid "SECTION=ADDRESS"
 
msgstr "SECCIÓN=DIRECCIÓN"
 
#: lexsup.c:542
msgid "Set address of named section"
 
msgstr "Establece la dirección de la sección nombrada"
 
#: lexsup.c:545
msgid "Set address of .bss section"
 
msgstr "Establece la dirección de la sección .bss"
 
#: lexsup.c:547
msgid "Set address of .data section"
 
msgstr "Establece la dirección de la sección .data"
 
#: lexsup.c:549
msgid "Set address of .text section"
 
msgstr "Establece la dirección de la sección .text"
 
#: lexsup.c:551
msgid "Set address of text segment"
 
msgstr "Establece la dirección del segmento de texto"
 
#: lexsup.c:554
msgid ""
1894,17 → 1895,17
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
msgstr ""
 
"Cómo manejar símbolos sin resolver. <método> es:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
" ignore-in-shared-libs"
 
#: lexsup.c:559
msgid "Output lots of information during link"
 
msgstr "Muestra mucha información durante el enlace"
 
#: lexsup.c:563
msgid "Read version information script"
 
msgstr "Lee la información de la versión del guión"
 
#: lexsup.c:566
msgid ""
1911,28 → 1912,28
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
 
 
"Toma la lista de exportación de símbolos de .exports, usando\n"
" el SÍMBOLO como la versión."
 
#: lexsup.c:570
msgid "Add data symbols to dynamic list"
 
msgstr "Agrega símbolos de datos a la lista dinámica"
 
#: lexsup.c:572
msgid "Use C++ operator new/delete dynamic list"
 
msgstr "Usa la lista dinámica de los operadores de C++ new/delete"
 
#: lexsup.c:574
msgid "Use C++ typeinfo dynamic list"
 
msgstr "Usa la lista dinámica de tipo de dato de C++"
 
#: lexsup.c:576
msgid "Read dynamic list"
 
msgstr "Lee la lista dinámica"
 
#: lexsup.c:578
msgid "Warn about duplicate common symbols"
 
msgstr "Avisa sobre símbolos comunes duplicados"
 
#: lexsup.c:580
msgid "Warn if global constructors/destructors are seen"
1940,15 → 1941,15
 
#: lexsup.c:583
msgid "Warn if the multiple GP values are used"
 
msgstr "Avisa si se usan valores múltiples de GP"
 
#: lexsup.c:585
msgid "Warn only once per undefined symbol"
 
msgstr "Avisa sólo una vez por cada símbolo sin definir"
 
#: lexsup.c:587
msgid "Warn if start of section changes due to alignment"
 
msgstr "Avisa si el inicio de la sección cambia debido a la alineación"
 
#: lexsup.c:590
msgid "Warn if shared object has DT_TEXTREL"
1956,15 → 1957,15
 
#: lexsup.c:593
msgid "Warn if an object has alternate ELF machine code"
 
msgstr "Avisa si el objeto tiene código máquina ELF alternativo"
 
#: lexsup.c:597
msgid "Report unresolved symbols as warnings"
 
msgstr "Reporta símbolos sin resolver como avisos"
 
#: lexsup.c:600
msgid "Report unresolved symbols as errors"
 
msgstr "Reporta símbolos sin resolver como errores"
 
#: lexsup.c:602
msgid "Include all objects from following archives"
1972,23 → 1973,23
 
#: lexsup.c:605
msgid "Use wrapper functions for SYMBOL"
 
msgstr "Usa funciones de envoltura para el SÍMBOLO"
 
#: lexsup.c:754
msgid "%P: unrecognized option '%s'\n"
 
msgstr "%P: no se reconoce la opción `%s'\n"
 
#: lexsup.c:758
msgid "%P%F: use the --help option for usage information\n"
 
msgstr "%P%F: use la opción --help para información de modo de empleo\n"
 
#: lexsup.c:776
msgid "%P%F: unrecognized -a option `%s'\n"
 
msgstr "%P%F: no se reconoce la opción -a `%s'\n"
 
#: lexsup.c:789
msgid "%P%F: unrecognized -assert option `%s'\n"
 
msgstr "%P%F: no se reconoce la opción -assert `%s'\n"
 
#: lexsup.c:832
msgid "%F%P: unknown demangling style `%s'"
1996,19 → 1997,19
 
#: lexsup.c:898
msgid "%P%F: invalid number `%s'\n"
 
msgstr "%P%F: número `%s' inválido\n"
 
#: lexsup.c:996
msgid "%P%F: bad --unresolved-symbols option: %s\n"
 
msgstr "%P%F: opción --unresolved-symbols errónea: %s\n"
 
#: lexsup.c:1059
msgid "%P%F: bad -plugin option\n"
 
msgstr "%P%F: opción -plugin errónea\n"
 
#: lexsup.c:1063
msgid "%P%F: bad -plugin-opt option\n"
 
msgstr "%P%F: opción -plugin-opt errónea\n"
 
#. This can happen if the user put "-rpath,a" on the command
#. line. (Or something similar. The comma is important).
2020,7 → 2021,7
#. and will seg-fault the next time around.
#: lexsup.c:1080
msgid "%P%F: bad -rpath option\n"
 
msgstr "%P%F: opción -rpath errónea\n"
 
#: lexsup.c:1194
msgid "%P%F: -shared not supported\n"
2040,7 → 2041,7
 
#: lexsup.c:1216
msgid "%P%F: invalid common section sorting option: %s\n"
 
msgstr "%P%F: opción de ordenado de sección común inválida: %s\n"
 
#: lexsup.c:1220
msgid "name"
2048,27 → 2049,27
 
#: lexsup.c:1222
msgid "alignment"
 
msgstr "alineación"
 
#: lexsup.c:1225
msgid "%P%F: invalid section sorting option: %s\n"
 
msgstr "%P%F: opción de ordenado de sección inválida: %s\n"
 
#: lexsup.c:1259
msgid "%P%F: invalid argument to option \"--section-start\"\n"
 
msgstr "%P%F: argumento inválido para la opción \"--section-start\"\n"
 
#: lexsup.c:1266
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
 
msgstr "%P%F: falta(n) argumento(s) para la opción \"--section-start\"\n"
 
#: lexsup.c:1490
msgid "%P%F: group ended before it began (--help for usage)\n"
 
msgstr "%P%F: el grupo terminó antes de empezar (--help para modo de empleo)\n"
 
#: lexsup.c:1518
msgid "%P%X: --hash-size needs a numeric argument\n"
 
msgstr "%P%X: --hash-size necesita un argumento numérico\n"
 
#: lexsup.c:1547
msgid "%P%F: %s: error loading plugin\n"
2076,7 → 2077,7
 
#: lexsup.c:1578 lexsup.c:1591
msgid "%P%F: invalid hex number `%s'\n"
 
msgstr "%P%F: número hexadecimal `%s' inválido\n"
 
#: lexsup.c:1627
#, c-format
2113,7 → 2114,7
#: lexsup.c:1728
#, c-format
msgid "%s: emulation specific options:\n"
 
msgstr "%s: opciones específicas de emulación:\n"
 
#: lexsup.c:1733
#, c-format
2132,7 → 2133,7
#: pe-dll.c:788
#, c-format
msgid "%XCannot export %s: invalid export name\n"
 
msgstr "%XNo se puede exportar %s: nombre de exportación inválido\n"
 
#: pe-dll.c:844
#, c-format
2147,17 → 2148,17
#: pe-dll.c:938
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
 
msgstr "%XNo se puede exportar %s: símbolo sin definir\n"
 
#: pe-dll.c:944
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
 
msgstr "%XNo se puede exportar %s: tipo erróneo del símbolo (%d vs %d)\n"
 
#: pe-dll.c:951
#, c-format
msgid "%XCannot export %s: symbol not found\n"
 
msgstr "%XNo se puede exportar %s: no se encuentra el símbolo\n"
 
#: pe-dll.c:1065
#, c-format
2167,7 → 2168,7
#: pe-dll.c:1446
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
 
msgstr "%XError: reubicación de %d-bit en la dll\n"
 
#: pe-dll.c:1574
#, c-format
2181,7 → 2182,7
 
#: pe-dll.c:2652
msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
 
msgstr "%C: no se puede auto-importar la variable '%T'. Por favor lea la documentación para --enable-auto-import de ld para más detalles.\n"
 
#: pe-dll.c:2682
#, c-format
2211,7 → 2212,7
#: pe-dll.c:3177
#, c-format
msgid "%XError: can't use long section names on this arch\n"
 
msgstr "%XError: no se pueden usar nombres de sección largos en esta arquitectura\n"
 
#: plugin.c:178 plugin.c:212
msgid "<no plugin>"
2219,19 → 2220,19
 
#: plugin.c:308
msgid "%P%F: %s: non-ELF symbol in ELF BFD!"
 
msgstr "%P%F: %s: ¡Símbolo que no es ELF en el BFD ELF!"
 
#: plugin.c:800
msgid "%P%X: %s: hash table failure adding symbol %s"
 
msgstr "%P%X: %s: falló la tabla de dispersión al agregar el símbolo %s"
 
#: plugin.c:833
msgid "%P%X: %s: can't find IR symbol '%s'"
 
msgstr "%P%X: %s: no se puede encontrar el símbolo IR '%s'"
 
#: plugin.c:836
msgid "%P%x: %s: bad IR symbol type %d"
 
msgstr "%P%x: %s: tipo de símbolo IR %d erróneo"
 
#~ msgid "%F%P: %s (%s): No such file: %E\n"
#~ msgstr "%F%P: %s (%s): No hay tal fichero: %E\n"
2244,7 → 2245,7
#~ " following dynamic libs"
#~ msgstr ""
#~ "Establece marcas DT_NEEDED para entradas DT_NEEDED en\n"
 
#~ " las siguientes bibliotecas dinámicas"
 
#~ msgid ""
#~ "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
2251,10 → 2252,10
#~ " in following dynamic libs"
#~ msgstr ""
#~ "No establece marcas DT_NEEDED para entradas DT_NEEDED en\n"
 
#~ " las siguientes bibliotecas dinámicas"
 
#~ msgid "Always set DT_NEEDED for following dynamic libs"
 
#~ msgstr "Siempre establece DT_NEEDED para las siguientes bibliotecas dinámicas"
 
#~ msgid "Relax branches on certain targets"
#~ msgstr "Relaja ramificaciones en ciertos objetivos"
2266,22 → 2267,22
#~ msgstr "%P%F: no se pueden usar juntos -relax y -r\n"
 
#~ msgid " --support-old-code Support interworking with old code\n"
 
#~ msgstr " --support-old-code Admite interoperar con código antiguo\n"
 
#~ msgid "%B%F: could not read symbols; %E\n"
 
#~ msgstr "%B%F: no se pueden leer símbolos; %E\n"
 
#~ msgid "%F%S nonconstant expression for %s\n"
 
#~ msgstr "%F%S expresión no constante para %s\n"
 
#~ msgid "%B%F: could not read symbols\n"
 
#~ msgstr "%B%F: no se pueden leer los símbolos\n"
 
#~ msgid "%F%S non constant expression for %s\n"
 
#~ msgstr "%F%S expresión no constante para %s\n"
 
#~ msgid "%P%F: out of memory during initialization"
 
#~ msgstr "%P%F: memoria agotada durante la inicialización"
 
#~ msgid "%P%F: -static and -shared may not be used together\n"
#~ msgstr "%P%F: no se pueden usar juntos -static y -shared\n"
2290,10 → 2291,10
#~ msgstr "%P%X: generado"
 
#~ msgid "%F%P: %s uses undefined section %s\n"
 
#~ msgstr "%F%P: %s usa la sección sin definir %s\n"
 
#~ msgid "%F%P: %s forward reference of section %s\n"
 
#~ msgstr "%F%P: %s es una referencia hacia adelante de la sección %s\n"
 
#~ msgid "%F%P: cannot open %s for %s: %E\n"
#~ msgstr "%F%P: no se puede abrir %s para %s: %E\n"
2308,10 → 2309,10
#~ msgstr "%P%F: arquitectura destino reespecificada\n"
 
#~ msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n"
 
#~ msgstr "%P: %B: aviso: ignorando el símbolo duplicado `%s' de la sección `%s'\n"
 
#~ msgid "%P: %B: warning: duplicate section `%s' has different size\n"
 
#~ msgstr "%P: %B: aviso: la sección duplicada `%s' tiene tamaño diferente\n"
 
#~ msgid "%P: no [COMMON] command, defaulting to .bss\n"
#~ msgstr "%P: no hay una orden [COMMON], usando .bss por defecto\n"
2320,10 → 2321,10
#~ msgstr "%P%F: no se pueden usar juntos -r y --mpc860c0\n"
 
#~ msgid "Allow no undefined symbols"
 
#~ msgstr "No permitir símbolos sin definir"
 
#~ msgid "Allow undefined symbols in shared objects (the default)"
 
#~ msgstr "Permitir símbolos sin definir en objetos compartidos (por defecto)"
 
#~ msgid "[=WORDS]"
#~ msgstr "[=PALABRAS]"
2332,23 → 2333,23
#~ "Modify problematic branches in last WORDS (1-10,\n"
#~ "\t\t\t\tdefault 5) words of a page"
#~ msgstr ""
 
 
#~ "Modificar las ramificaciones problemáticas en las últimas PALABRAS (1-10,\n"
#~ "\t\t\t5 por defecto) palabras de una página"
 
#~ msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
 
#~ msgstr "%P%F: Argumento inválido para la opción \"mpc860c0\"\n"
 
#~ msgid " create __imp_<SYMBOL> as well.\n"
 
#~ msgstr " creando también __imp_<SÍMBOLO>.\n"
 
#~ msgid " --dll-search-prefix=<string> When linking dynamically to a dll witout an\n"
 
#~ msgstr " --dll-search-prefix=<cadena> Al enlazar dinámicamente con una dll sin una\n"
 
#~ msgid " importlib, use <string><basename>.dll \n"
 
#~ msgstr " biblioteca de importación, usar <cadena><nombrebase>.dll\n"
 
#~ msgid "Archive member included"
 
#~ msgstr "Se incluyó el fichero miembro"
 
#~ msgid "Don't merge orphan sections with the same name"
 
#~ msgstr "No mezclar secciones huérfanas con el mismo nombre"
/configure.tgt
186,23 → 186,23
i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
i[3-7]86-*-linux-*) targ_emul=elf_i386
targ_extra_emuls=i386linux
targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om"
targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
targ64_extra_libpath=elf_x86_64
targ_extra_libpath=elf32_x86_64
tdir_i386linux=${targ_alias}aout ;;
x86_64-*-linux-*) targ_emul=elf_x86_64
targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om"
targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om"
targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om"
targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 ;;
i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om"
targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
targ_extra_libpath=$targ_extra_emuls
;;
x86_64-*-solaris2*)
targ_emul=elf_x86_64_sol2
targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_l1om"
targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_l1om elf_k1om"
targ_extra_libpath=elf_i386
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
i[3-7]86-*-unixware) targ_emul=elf_i386 ;;
220,7 → 220,7
i[3-7]86-*-netbsd*) targ_emul=i386nbsd
targ_extra_emuls=elf_i386 ;;
x86_64-*-netbsd*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 i386nbsd elf_l1om"
targ_extra_emuls="elf_i386 i386nbsd elf_l1om elf_k1om"
tdir_elf_i386=`echo ${targ_alias} | \
sed -e 's/x86_64/i386/'`
case "${tdir_elf_i386}" in
231,7 → 231,7
i[3-7]86-*-netware) targ_emul=i386nw ;;
i[3-7]86-*-elf*) targ_emul=elf_i386 ;;
x86_64-*-elf*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 elf_l1om"
targ_extra_emuls="elf_i386 elf_l1om elf_k1om"
;;
i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
239,13 → 239,13
i[3-7]86-*-dragonfly*) targ_emul=elf_i386
targ_extra_emuls="i386bsd" ;;
x86_64-*-dragonfly*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 elf_l1om" ;;
targ_extra_emuls="elf_i386 elf_l1om elf_k1om" ;;
i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
targ_emul=elf_i386_fbsd
targ_extra_emuls="elf_i386 i386bsd" ;;
x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
targ_emul=elf_x86_64_fbsd
targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_l1om elf_l1om_fbsd"
targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_l1om elf_l1om_fbsd elf_k1om elf_k1om_fbsd"
targ_extra_libpath="elf_i386_fbsd"
tdir_elf_i386_fbsd=`echo ${targ_alias} \
| sed -e 's/x86_64/i386/'`
/plugin.c
239,7 → 239,7
{
flagword flags;
 
/* Create sections to own the symbols. */
/* Create section to own the symbols. */
flags = (SEC_CODE | SEC_HAS_CONTENTS | SEC_READONLY
| SEC_ALLOC | SEC_LOAD | SEC_KEEP | SEC_EXCLUDE);
if (bfd_make_section_anyway_with_flags (abfd, ".text", flags))
284,7 → 284,27
/* FALLTHRU */
case LDPK_DEF:
flags |= BSF_GLOBAL;
section = bfd_get_section_by_name (abfd, ".text");
if (ldsym->comdat_key)
{
char *name = concat (".gnu.linkonce.t.", ldsym->comdat_key,
(const char *) NULL);
section = bfd_get_section_by_name (abfd, name);
if (section != NULL)
free (name);
else
{
flagword sflags;
 
sflags = (SEC_CODE | SEC_HAS_CONTENTS | SEC_READONLY
| SEC_ALLOC | SEC_LOAD | SEC_KEEP | SEC_EXCLUDE
| SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD);
section = bfd_make_section_anyway_with_flags (abfd, name, sflags);
if (section == NULL)
return LDPS_ERR;
}
}
else
section = bfd_get_section_by_name (abfd, ".text");
break;
 
case LDPK_WEAKUNDEF:
380,12 → 400,15
asymbol **symptrs;
bfd *abfd = handle;
int n;
 
ASSERT (called_plugin);
symptrs = xmalloc (nsyms * sizeof *symptrs);
for (n = 0; n < nsyms; n++)
{
enum ld_plugin_status rv;
asymbol *bfdsym = bfd_make_empty_symbol (abfd);
asymbol *bfdsym;
 
bfdsym = bfd_make_empty_symbol (abfd);
symptrs[n] = bfdsym;
rv = asymbol_from_plugin_symbol (abfd, bfdsym, syms + n);
if (rv != LDPS_OK)
/Makefile.am
482,6 → 482,8
eelf64tilegx.c \
eelf_l1om.c \
eelf_l1om_fbsd.c \
eelf_k1om.c \
eelf_k1om_fbsd.c \
eelf_x86_64.c \
eelf_x86_64_fbsd.c \
eelf_x86_64_sol2.c \
893,6 → 895,14
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_be "$(tdir_elf32_tic6x_be)"
eelf32_tic6x_elf_be.c: $(srcdir)/emulparams/elf32_tic6x_elf_be.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_be "$(tdir_elf32_tic6x_elf_be)"
eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_le "$(tdir_elf32_tic6x_elf_le)"
eelf32_tic6x_le.c: $(srcdir)/emulparams/elf32_tic6x_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
905,22 → 915,6
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_linux_le "$(tdir_elf32_tic6x_linux_le)"
eelf32_tic6x_elf_be.c: $(srcdir)/emulparams/elf32_tic6x_elf_be.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_be "$(tdir_elf32_tic6x_elf_be)"
eelf32_tic6x_elf_le.c: $(srcdir)/emulparams/elf32_tic6x_elf_le.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc $(srcdir)/emultempl/tic6xdsbt.em \
${GEN_DEPENDS}
${GENSCRIPTS} elf32_tic6x_elf_le "$(tdir_elf32_tic6x_elf_le)"
eelf32tilegx.c: $(srcdir)/emulparams/elf32tilegx.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32tilegx "$(tdir_tilegx)"
eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32tilepro "$(tdir_tilepro)"
eelf32am33lin.c: $(srcdir)/emulparams/elf32am33lin.sh \
$(srcdir)/emulparams/elf32am33lin.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
1146,6 → 1140,14
eelf32rx.c: $(srcdir)/emulparams/elf32rx.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32rx "$(tdir_elf32rx)"
eelf32tilegx.c: $(srcdir)/emulparams/elf32tilegx.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32tilegx "$(tdir_tilegx)"
eelf32tilepro.c: $(srcdir)/emulparams/elf32tilepro.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/needrelax.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32tilepro "$(tdir_tilepro)"
eelf32vax.c: $(srcdir)/emulparams/elf32vax.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf32vax "$(tdir_elf32vax)"
1986,6 → 1988,13
$(srcdir)/emulparams/elf_l1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_l1om_fbsd "$(tdir_elf_l1om_fbsd)"
eelf_k1om.c: $(srcdir)/emulparams/elf_k1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_k1om "$(tdir_elf_k1om)"
eelf_k1om_fbsd.c: $(srcdir)/emulparams/elf_k1om_fbsd.sh \
$(srcdir)/emulparams/elf_k1om.sh \
$(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_k1om_fbsd "$(tdir_elf_k1om_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)"
/ld.texinfo
1258,21 → 1258,20
@itemx --no-copy-dt-needed-entries
This option affects the treatment of dynamic libraries referred to
by DT_NEEDED tags @emph{inside} ELF dynamic libraries mentioned on the
command line. Normally the linker will add a DT_NEEDED tag to the
command line. Normally the linker won't add a DT_NEEDED tag to the
output binary for each library mentioned in a DT_NEEDED tag in an
input dynamic library. With @option{--no-copy-dt-needed-entries}
input dynamic library. With @option{--copy-dt-needed-entries}
specified on the command line however any dynamic libraries that
follow it will have their DT_NEEDED entries ignored. The default
behaviour can be restored with @option{--copy-dt-needed-entries}.
follow it will have their DT_NEEDED entries added. The default
behaviour can be restored with @option{--no-copy-dt-needed-entries}.
 
This option also has an effect on the resolution of symbols in dynamic
libraries. With the default setting dynamic libraries mentioned on
the command line will be recursively searched, following their
DT_NEEDED tags to other libraries, in order to resolve symbols
required by the output binary. With
@option{--no-copy-dt-needed-entries} specified however the searching
of dynamic libraries that follow it will stop with the dynamic
library itself. No DT_NEEDED links will be traversed to resolve
libraries. With @option{--copy-dt-needed-entries} dynamic libraries
mentioned on the command line will be recursively searched, following
their DT_NEEDED tags to other libraries, in order to resolve symbols
required by the output binary. With the default setting however
the searching of dynamic libraries that follow it will stop with the
dynamic library itself. No DT_NEEDED links will be traversed to resolve
symbols.
 
@cindex cross reference table
1401,6 → 1400,13
be restored by specifying @samp{--no-print-gc-sections} on the command
line.
 
@kindex --print-output-format
@cindex output format
@item --print-output-format
Print the name of the default output format (perhaps influenced by
other command-line options). This is the string that would appear
in an @code{OUTPUT_FORMAT} linker script command (@pxref{File Commands}).
 
@cindex help
@cindex usage
@kindex --help
2069,6 → 2075,12
Request creation of @code{.eh_frame_hdr} section and ELF
@code{PT_GNU_EH_FRAME} segment header.
 
@kindex --ld-generated-unwind-info
@item --no-ld-generated-unwind-info
Request creation of @code{.eh_frame} unwind info for linker
generated code sections like PLT. This option is on by default
if linker generated unwind info is supported.
 
@kindex --enable-new-dtags
@kindex --disable-new-dtags
@item --enable-new-dtags
3853,6 → 3865,26
data.o(.data)
@end smallexample
 
To refine the sections that are included based on the section flags
of an input section, INPUT_SECTION_FLAGS may be used.
 
Here is a simple example for using Section header flags for ELF sections:
 
@smallexample
@group
SECTIONS @{
.text : @{ INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS) *(.text) @}
.text2 : @{ INPUT_SECTION_FLAGS (!SHF_WRITE) *(.text) @}
@}
@end group
@end smallexample
 
In this example, the output section @samp{.text} will be comprised of any
input section matching the name *(.text) whose section header flags
@code{SHF_MERGE} and @code{SHF_STRINGS} are set. The output section
@samp{.text2} will be comprised of any input section matching the name *(.text)
whose section header flag @code{SHF_WRITE} is clear.
 
You can also specify files within archives by writing a pattern
matching the archive, a colon, then the pattern matching the file,
with no whitespace around the colon.
6288,6 → 6320,18
the veneer. The extra cycles required to call and return from the veneer
are sufficient to avoid the erratum in both the scalar and vector cases.
 
@cindex ARM1176 erratum workaround
@kindex --fix-arm1176
@kindex --no-fix-arm1176
The @samp{--fix-arm1176} switch enables a link-time workaround for an erratum
in certain ARM1176 processors. The workaround is enabled by default if you
are targetting ARM v6 (excluding ARM v6T2) or earlier. It can be disabled
unconditionally by specifying @samp{--no-fix-arm1176}.
 
Further information is available in the ``ARM1176JZ-S and ARM1176JZF-S
Programmer Advice Notice'' available on the ARM documentaion website at:
http://infocenter.arm.com/.
 
@cindex NO_ENUM_SIZE_WARNING
@kindex --no-enum-size-warning
The @option{--no-enum-size-warning} switch prevents the linker from

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.