# This shell script emits a C file. -*- C -*-
-# Copyright (C) 2009-2015 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
# Contributed by ARM Ltd.
#
# This file is part of the GNU Binutils.
static int pic_veneer = 0;
static int fix_erratum_835769 = 0;
static int fix_erratum_843419 = 0;
+static int no_apply_dynamic_relocs = 0;
static void
gld${EMULATION_NAME}_before_parse (void)
/* If generating a relocatable output file, then we don't
have to examine the relocs. */
- if (stub_file != NULL && !link_info.relocatable)
+ if (stub_file != NULL && !bfd_link_relocatable (&link_info))
{
ret = elf${ELFSIZE}_aarch64_setup_section_lists (link_info.output_bfd,
&link_info);
static void
gld${EMULATION_NAME}_finish (void)
{
- if (! link_info.relocatable)
+ if (!bfd_link_relocatable (&link_info))
{
/* Now build the linker stubs. */
if (stub_file->the_bfd->sections != NULL)
no_enum_size_warning,
no_wchar_size_warning,
pic_veneer,
- fix_erratum_835769, fix_erratum_843419);
+ fix_erratum_835769, fix_erratum_843419,
+ no_apply_dynamic_relocs);
stub_file = lang_add_input_file ("linker stubs",
lang_input_file_is_fake_enum,
#define OPTION_NO_WCHAR_SIZE_WARNING 312
#define OPTION_FIX_ERRATUM_835769 313
#define OPTION_FIX_ERRATUM_843419 314
+#define OPTION_NO_APPLY_DYNAMIC_RELOCS 315
'
PARSE_AND_LIST_SHORTOPTS=p
{ "no-wchar-size-warning", no_argument, NULL, OPTION_NO_WCHAR_SIZE_WARNING},
{ "fix-cortex-a53-835769", no_argument, NULL, OPTION_FIX_ERRATUM_835769},
{ "fix-cortex-a53-843419", no_argument, NULL, OPTION_FIX_ERRATUM_843419},
+ { "no-apply-dynamic-relocs", no_argument, NULL, OPTION_NO_APPLY_DYNAMIC_RELOCS},
'
PARSE_AND_LIST_OPTIONS='
));
fprintf (file, _(" --fix-cortex-a53-835769 Fix erratum 835769\n"));
fprintf (file, _(" --fix-cortex-a53-843419 Fix erratum 843419\n"));
+ fprintf (file, _(" --no-apply-dynamic-relocs Do not apply link-time values for dynamic relocations\n"));
'
PARSE_AND_LIST_ARGS_CASES='
fix_erratum_843419 = 1;
break;
+ case OPTION_NO_APPLY_DYNAMIC_RELOCS:
+ no_apply_dynamic_relocs = 1;
+ break;
+
case OPTION_STUBGROUP_SIZE:
{
const char *end;