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/emultempl
- from Rev 163 to Rev 166
- ↔ Reverse comparison
Rev 163 → Rev 166
/spuelf.em
384,9 → 384,13
return script; |
} |
|
#include <errno.h> |
|
static void |
spu_elf_relink (void) |
{ |
const char *pex_return; |
int status; |
char **argv = xmalloc ((my_argc + 4) * sizeof (*argv)); |
|
memcpy (argv, my_argv, my_argc * sizeof (*argv)); |
397,9 → 401,16
argv[my_argc++] = "-T"; |
argv[my_argc++] = auto_overlay_file; |
argv[my_argc] = 0; |
execvp (argv[0], (char *const *) argv); |
perror (argv[0]); |
_exit (127); |
|
pex_return = pex_one (PEX_SEARCH | PEX_LAST, (const char *) argv[0], |
(char * const *) argv, (const char *) argv[0], |
NULL, NULL, & status, & errno); |
if (pex_return != NULL) |
{ |
perror (pex_return); |
_exit (127); |
} |
exit (status); |
} |
|
/* Final emulation specific call. */ |
/ppc64elf.em
1,5 → 1,5
# This shell script emits a C file. -*- C -*- |
# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 |
# Free Software Foundation, Inc. |
# |
# This file is part of the GNU Binutils. |
62,8 → 62,14
static int no_toc_sort = 0; |
|
/* Set if PLT call stubs should load r11. */ |
static int plt_static_chain = 0; |
static int plt_static_chain = ${DEFAULT_PLT_STATIC_CHAIN-0}; |
|
/* Set if PLT call stubs need to be thread safe on power7+. */ |
static int plt_thread_safe = -1; |
|
/* Set if individual PLT call stubs should be aligned. */ |
static int plt_stub_align = 0; |
|
/* Whether to emit symbols for stubs. */ |
static int emit_stub_syms = -1; |
|
379,7 → 385,8
stub_sec = bfd_make_section_anyway_with_flags (stub_file->the_bfd, |
stub_sec_name, flags); |
if (stub_sec == NULL |
|| !bfd_set_section_alignment (stub_file->the_bfd, stub_sec, 5)) |
|| !bfd_set_section_alignment (stub_file->the_bfd, stub_sec, |
plt_stub_align > 5 ? plt_stub_align : 5)) |
goto err_ret; |
|
output_section = input_section->output_section; |
504,7 → 511,9
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, plt_static_chain)) |
if (!ppc64_elf_size_stubs (&link_info, group_size, |
plt_static_chain, plt_thread_safe, |
plt_stub_align)) |
einfo ("%X%P: can not size stub section: %E\n"); |
} |
} |
649,7 → 658,11
#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_PLT_THREAD_SAFE (OPTION_NO_PLT_STATIC_CHAIN + 1) |
#define OPTION_NO_PLT_THREAD_SAFE (OPTION_PLT_THREAD_SAFE + 1) |
#define OPTION_PLT_ALIGN (OPTION_NO_PLT_THREAD_SAFE + 1) |
#define OPTION_NO_PLT_ALIGN (OPTION_PLT_ALIGN + 1) |
#define OPTION_STUBSYMS (OPTION_NO_PLT_ALIGN + 1) |
#define OPTION_NO_STUBSYMS (OPTION_STUBSYMS + 1) |
#define OPTION_DOTSYMS (OPTION_NO_STUBSYMS + 1) |
#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1) |
666,6 → 679,10
{ "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 }, |
{ "plt-thread-safe", no_argument, NULL, OPTION_PLT_THREAD_SAFE }, |
{ "no-plt-thread-safe", no_argument, NULL, OPTION_NO_PLT_THREAD_SAFE }, |
{ "plt-align", optional_argument, NULL, OPTION_PLT_ALIGN }, |
{ "no-plt-align", no_argument, NULL, OPTION_NO_PLT_ALIGN }, |
{ "emit-stub-syms", no_argument, NULL, OPTION_STUBSYMS }, |
{ "no-emit-stub-syms", no_argument, NULL, OPTION_NO_STUBSYMS }, |
{ "dotsyms", no_argument, NULL, OPTION_DOTSYMS }, |
691,12 → 708,24
choose suitable defaults.\n" |
)); |
fprintf (file, _("\ |
--plt-static-chain PLT call stubs should load r11.\n" |
--plt-static-chain PLT call stubs should load r11.${DEFAULT_PLT_STATIC_CHAIN- (default)}\n" |
)); |
fprintf (file, _("\ |
--no-plt-static-chain PLT call stubs should not load r11. (default)\n" |
--no-plt-static-chain PLT call stubs should not load r11.${DEFAULT_PLT_STATIC_CHAIN+ (default)}\n" |
)); |
fprintf (file, _("\ |
--plt-thread-safe PLT call stubs with load-load barrier.\n" |
)); |
fprintf (file, _("\ |
--no-plt-thread-safe PLT call stubs without barrier.\n" |
)); |
fprintf (file, _("\ |
--plt-align [=<align>] Align PLT call stubs to fit cache lines.\n" |
)); |
fprintf (file, _("\ |
--no-plt-align Dont'\''t align individual PLT call stubs.\n" |
)); |
fprintf (file, _("\ |
--emit-stub-syms Label linker stubs with a symbol.\n" |
)); |
fprintf (file, _("\ |
753,6 → 782,31
plt_static_chain = 0; |
break; |
|
case OPTION_PLT_THREAD_SAFE: |
plt_thread_safe = 1; |
break; |
|
case OPTION_NO_PLT_THREAD_SAFE: |
plt_thread_safe = 0; |
break; |
|
case OPTION_PLT_ALIGN: |
if (optarg != NULL) |
{ |
char *end; |
unsigned long val = strtoul (optarg, &end, 0); |
if (*end || val > 8) |
einfo (_("%P%F: invalid --plt-align `%s'\''\n"), optarg); |
plt_stub_align = val; |
} |
else |
plt_stub_align = 5; |
break; |
|
case OPTION_NO_PLT_ALIGN: |
plt_stub_align = 0; |
break; |
|
case OPTION_STUBSYMS: |
emit_stub_syms = 1; |
break; |
/armelf.em
1,6 → 1,6
# This shell script emits a C file. -*- C -*- |
# Copyright 1991, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
# 2004, 2005, 2006, 2007, 2008, 2009 |
# 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
# Free Software Foundation, Inc. |
# |
# This file is part of the GNU Binutils. |
571,18 → 571,18
fprintf (file, _(" --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum\n")); |
fprintf (file, _(" --no-enum-size-warning Don'\''t warn about objects with incompatible\n" |
" enum sizes\n")); |
fprintf (file, _(" --no-wchar-size-warning Don'\''t warn about objects with incompatible" |
fprintf (file, _(" --no-wchar-size-warning Don'\''t warn about objects with incompatible\n" |
" wchar_t sizes\n")); |
fprintf (file, _(" --pic-veneer Always generate PIC interworking veneers\n")); |
fprintf (file, _("\ |
--stub-group-size=N Maximum size of a group of input sections that can be\n\ |
handled by one stub section. A negative value\n\ |
locates all stubs after their branches (with a\n\ |
group size of -N), while a positive value allows\n\ |
two groups of input sections, one before, and one\n\ |
after each stub section. Values of +/-1 indicate\n\ |
the linker should choose suitable defaults.\n" |
)); |
--stub-group-size=N Maximum size of a group of input sections that\n\ |
can be handled by one stub section. A negative\n\ |
value locates all stubs after their branches\n\ |
(with a group size of -N), while a positive\n\ |
value allows two groups of input sections, one\n\ |
before, and one after each stub section.\n\ |
Values of +/-1 indicate the linker should\n\ |
choose suitable defaults.\n")); |
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")); |