* emultempl/ppc64elf.em: Add "no-tls-optimize" option and support code.
This commit is contained in:
parent
951fd09be7
commit
e5096e3f2d
|
@ -1,3 +1,7 @@
|
||||||
|
2003-02-09 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* emultempl/ppc64elf.em: Add "no-tls-optimize" option and support code.
|
||||||
|
|
||||||
2003-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
2003-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||||
|
|
||||||
* hppaelf.em (group_size): Change default to -1.
|
* hppaelf.em (group_size): Change default to -1.
|
||||||
|
|
|
@ -41,6 +41,9 @@ static bfd_signed_vma group_size = 1;
|
||||||
/* Whether to add ".foo" entries for each "foo" in a version script. */
|
/* Whether to add ".foo" entries for each "foo" in a version script. */
|
||||||
static int dotsyms = 1;
|
static int dotsyms = 1;
|
||||||
|
|
||||||
|
/* Whether to run tls optimization. */
|
||||||
|
static int notlsopt = 0;
|
||||||
|
|
||||||
static void ppc_create_output_section_statements
|
static void ppc_create_output_section_statements
|
||||||
PARAMS ((void));
|
PARAMS ((void));
|
||||||
static void ppc_after_open
|
static void ppc_after_open
|
||||||
|
@ -101,6 +104,8 @@ ppc_before_allocation ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ppc64_elf_tls_setup (output_bfd, &link_info) && !notlsopt)
|
||||||
|
{
|
||||||
/* Size the sections. This is premature, but we want to know the
|
/* Size the sections. This is premature, but we want to know the
|
||||||
TLS segment layout so that certain optimizations can be done. */
|
TLS segment layout so that certain optimizations can be done. */
|
||||||
lang_size_sections (stat_ptr->head, abs_output_section,
|
lang_size_sections (stat_ptr->head, abs_output_section,
|
||||||
|
@ -112,9 +117,10 @@ ppc_before_allocation ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gld${EMULATION_NAME}_before_allocation ();
|
|
||||||
|
|
||||||
lang_reset_memory_regions ();
|
lang_reset_memory_regions ();
|
||||||
|
}
|
||||||
|
|
||||||
|
gld${EMULATION_NAME}_before_allocation ();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct hook_stub_info
|
struct hook_stub_info
|
||||||
|
@ -457,6 +463,7 @@ PARSE_AND_LIST_PROLOGUE='
|
||||||
#define OPTION_STUBGROUP_SIZE 301
|
#define OPTION_STUBGROUP_SIZE 301
|
||||||
#define OPTION_DOTSYMS (OPTION_STUBGROUP_SIZE + 1)
|
#define OPTION_DOTSYMS (OPTION_STUBGROUP_SIZE + 1)
|
||||||
#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1)
|
#define OPTION_NO_DOTSYMS (OPTION_DOTSYMS + 1)
|
||||||
|
#define OPTION_NO_TLS_OPT (OPTION_NO_DOTSYMS + 1)
|
||||||
'
|
'
|
||||||
|
|
||||||
# The options are repeated below so that no abbreviations are allowed.
|
# The options are repeated below so that no abbreviations are allowed.
|
||||||
|
@ -468,6 +475,8 @@ PARSE_AND_LIST_LONGOPTS='
|
||||||
{ "dotsyms", no_argument, NULL, OPTION_DOTSYMS },
|
{ "dotsyms", no_argument, NULL, OPTION_DOTSYMS },
|
||||||
{ "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
|
{ "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
|
||||||
{ "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
|
{ "no-dotsyms", no_argument, NULL, OPTION_NO_DOTSYMS },
|
||||||
|
{ "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
|
||||||
|
{ "no-tls-optimize", no_argument, NULL, OPTION_NO_TLS_OPT },
|
||||||
'
|
'
|
||||||
|
|
||||||
PARSE_AND_LIST_OPTIONS='
|
PARSE_AND_LIST_OPTIONS='
|
||||||
|
@ -489,6 +498,9 @@ PARSE_AND_LIST_OPTIONS='
|
||||||
fprintf (file, _("\
|
fprintf (file, _("\
|
||||||
--no-dotsyms Don'\''t do anything special in version scripts.\n"
|
--no-dotsyms Don'\''t do anything special in version scripts.\n"
|
||||||
));
|
));
|
||||||
|
fprintf (file, _("\
|
||||||
|
--no-tls-optimize Don'\''t try to optimize TLS accesses.\n"
|
||||||
|
));
|
||||||
'
|
'
|
||||||
|
|
||||||
PARSE_AND_LIST_ARGS_CASES='
|
PARSE_AND_LIST_ARGS_CASES='
|
||||||
|
@ -502,15 +514,15 @@ PARSE_AND_LIST_ARGS_CASES='
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPTION_DOTSYMS:
|
case OPTION_DOTSYMS:
|
||||||
{
|
|
||||||
dotsyms = 1;
|
dotsyms = 1;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPTION_NO_DOTSYMS:
|
case OPTION_NO_DOTSYMS:
|
||||||
{
|
|
||||||
dotsyms = 0;
|
dotsyms = 0;
|
||||||
}
|
break;
|
||||||
|
|
||||||
|
case OPTION_NO_TLS_OPT:
|
||||||
|
notlsopt = 1;
|
||||||
break;
|
break;
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue