aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog25
-rw-r--r--ld/emultempl/aix.em2
-rw-r--r--ld/emultempl/beos.em6
-rw-r--r--ld/emultempl/elf.em12
-rw-r--r--ld/emultempl/pe.em2
-rw-r--r--ld/emultempl/pep.em2
-rw-r--r--ld/emultempl/xtensaelf.em4
-rw-r--r--ld/ldctor.c2
-rw-r--r--ld/ldelf.c16
-rw-r--r--ld/ldfile.c2
-rw-r--r--ld/ldlang.c2
-rw-r--r--ld/ldmain.c6
-rw-r--r--ld/ldwrite.c4
-rw-r--r--ld/lexsup.c2
-rw-r--r--ld/pe-dll.c4
15 files changed, 58 insertions, 33 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index cdbdc7b..19b56f0 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,28 @@
+2021-03-22 Martin Liska <mliska@suse.cz>
+
+ * emultempl/aix.em: Replace usage of CONST_STRNEQ with startswith.
+ * emultempl/beos.em: Likewise.
+ * emultempl/elf.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * emultempl/pep.em: Likewise.
+ * emultempl/xtensaelf.em: Likewise.
+ * ldctor.c (ctor_prio): Likewise.
+ * ldelf.c (ldelf_try_needed): Likewise.
+ (ldelf_parse_ld_so_conf): Likewise.
+ (ldelf_after_open): Likewise.
+ (output_rel_find): Likewise.
+ (ldelf_place_orphan): Likewise.
+ * ldfile.c (ldfile_add_library_path): Likewise.
+ * ldlang.c (lang_add_input_file): Likewise.
+ * ldmain.c (get_sysroot): Likewise.
+ (get_emulation): Likewise.
+ (add_archive_element): Likewise.
+ * ldwrite.c (unsplittable_name): Likewise.
+ (clone_section): Likewise.
+ * lexsup.c (parse_args): Likewise.
+ * pe-dll.c (is_import): Likewise.
+ (pe_implied_import_dll): Likewise.
+
2021-03-19 H.J. Lu <hongjiu.lu@intel.com>
PR ld/27590
diff --git a/ld/emultempl/aix.em b/ld/emultempl/aix.em
index e098f2a..6fd67b2 100644
--- a/ld/emultempl/aix.em
+++ b/ld/emultempl/aix.em
@@ -287,7 +287,7 @@ gld${EMULATION_NAME}_parse_args (int argc, char **argv)
if (indx == 0)
indx = 1;
- if (indx < argc && CONST_STRNEQ (argv[indx], "-b"))
+ if (indx < argc && startswith (argv[indx], "-b"))
{
char *s;
diff --git a/ld/emultempl/beos.em b/ld/emultempl/beos.em
index fc43ce1..d984d3d 100644
--- a/ld/emultempl/beos.em
+++ b/ld/emultempl/beos.em
@@ -461,8 +461,8 @@ sort_by_section_name (const void *a, const void *b)
FIXME stripping images with a .rsrc section still needs to be fixed. */
if (i != 0)
{
- if ((CONST_STRNEQ (sna, ".stab"))
- && (!CONST_STRNEQ (snb, ".stab")))
+ if ((startswith (sna, ".stab"))
+ && (!startswith (snb, ".stab")))
return 1;
}
return i;
@@ -536,7 +536,7 @@ sort_sections (lang_statement_union_type *s)
{
/* Is this the .idata section? */
if (sec->spec.name != NULL
- && CONST_STRNEQ (sec->spec.name, ".idata"))
+ && startswith (sec->spec.name, ".idata"))
{
/* Sort the children. We want to sort any objects in
the same archive. In order to handle the case of
diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em
index 9e7c3d8..986b77e 100644
--- a/ld/emultempl/elf.em
+++ b/ld/emultempl/elf.em
@@ -712,7 +712,7 @@ fragment <<EOF
link_info.unresolved_syms_in_objects = RM_IGNORE;
else if (strcmp (optarg, "muldefs") == 0)
link_info.allow_multiple_definition = TRUE;
- else if (CONST_STRNEQ (optarg, "max-page-size="))
+ else if (startswith (optarg, "max-page-size="))
{
char *end;
@@ -722,7 +722,7 @@ fragment <<EOF
einfo (_("%F%P: invalid maximum page size \`%s'\n"),
optarg + 14);
}
- else if (CONST_STRNEQ (optarg, "common-page-size="))
+ else if (startswith (optarg, "common-page-size="))
{
char *end;
link_info.commonpagesize = strtoul (optarg + 17, &end, 0);
@@ -731,7 +731,7 @@ fragment <<EOF
einfo (_("%F%P: invalid common page size \`%s'\n"),
optarg + 17);
}
- else if (CONST_STRNEQ (optarg, "stack-size="))
+ else if (startswith (optarg, "stack-size="))
{
char *end;
link_info.stacksize = strtoul (optarg + 11, &end, 0);
@@ -760,11 +760,11 @@ fragment <<EOF
{
link_info.flags_1 |= DF_1_GLOBAUDIT;
}
- else if (CONST_STRNEQ (optarg, "start-stop-gc"))
+ else if (startswith (optarg, "start-stop-gc"))
link_info.start_stop_gc = TRUE;
- else if (CONST_STRNEQ (optarg, "nostart-stop-gc"))
+ else if (startswith (optarg, "nostart-stop-gc"))
link_info.start_stop_gc = FALSE;
- else if (CONST_STRNEQ (optarg, "start-stop-visibility="))
+ else if (startswith (optarg, "start-stop-visibility="))
{
if (strcmp (optarg, "start-stop-visibility=default") == 0)
link_info.start_stop_visibility = STV_DEFAULT;
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 748a6b4..ea11a02 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -1529,7 +1529,7 @@ gld_${EMULATION_NAME}_after_open (void)
{
if (strcmp (sec->name, ".idata\$2") == 0)
idata2 = 1;
- if (CONST_STRNEQ (sec->name, ".idata\$"))
+ if (startswith (sec->name, ".idata\$"))
is_imp = 1;
reloc_count += sec->reloc_count;
}
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index ff49c15..5f539cb 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -1501,7 +1501,7 @@ gld_${EMULATION_NAME}_after_open (void)
{
if (strcmp (sec->name, ".idata\$2") == 0)
idata2 = 1;
- if (CONST_STRNEQ (sec->name, ".idata\$"))
+ if (startswith (sec->name, ".idata\$"))
is_imp = 1;
reloc_count += sec->reloc_count;
}
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index cdab038..2b0fa5a 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -262,7 +262,7 @@ replace_instruction_table_sections (bfd *abfd, asection *sec)
insn_sec_name = INSN_SEC_BASE_NAME;
prop_sec_name = PROP_SEC_BASE_NAME;
}
- else if (CONST_STRNEQ (sec_name, LINKONCE_SEC_OLD_TEXT_BASE_NAME))
+ else if (startswith (sec_name, LINKONCE_SEC_OLD_TEXT_BASE_NAME))
{
insn_sec_name = sec_name;
owned_prop_sec_name = (char *) xmalloc (strlen (sec_name) + 20);
@@ -1320,7 +1320,7 @@ is_inconsistent_linkonce_section (asection *sec)
/* Check if this is an Xtensa property section or an exception table
for Tensilica's XCC compiler. */
name = sec_name + linkonce_len;
- if (CONST_STRNEQ (name, "prop."))
+ if (startswith (name, "prop."))
name = strchr (name + 5, '.') ? strchr (name + 5, '.') + 1 : name + 5;
else if (name[1] == '.'
&& (name[0] == 'p' || name[0] == 'e' || name[0] == 'h'))
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 7ab6f36..841ffe3 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -131,7 +131,7 @@ ctor_prio (const char *name)
while (*name == '_')
++name;
- if (!CONST_STRNEQ (name, "GLOBAL_"))
+ if (!startswith (name, "GLOBAL_"))
return -1;
name += sizeof "GLOBAL_" - 1;
diff --git a/ld/ldelf.c b/ld/ldelf.c
index a733131..94d775d 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -321,7 +321,7 @@ ldelf_try_needed (struct dt_needed *needed, int force, int is_linux)
struct bfd_link_needed_list *l;
for (l = needs; l != NULL; l = l->next)
- if (CONST_STRNEQ (l->name, "libc.so"))
+ if (startswith (l->name, "libc.so"))
break;
if (l == NULL)
{
@@ -837,7 +837,7 @@ ldelf_parse_ld_so_conf (struct ldelf_ld_so_conf *info, const char *filename)
if (p[0] == '\0')
continue;
- if (CONST_STRNEQ (p, "include") && (p[7] == ' ' || p[7] == '\t'))
+ if (startswith (p, "include") && (p[7] == ' ' || p[7] == '\t'))
{
char *dir, c;
p += 8;
@@ -1089,7 +1089,7 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd,
if (bfd_is_abs_section (s->output_section))
continue;
- if (CONST_STRNEQ (name, ".eh_frame_entry"))
+ if (startswith (name, ".eh_frame_entry"))
type = COMPACT_EH_HDR;
else if (strcmp (name, ".eh_frame") == 0 && s->size > 8)
type = DWARF2_EH_HDR;
@@ -1820,7 +1820,7 @@ output_rel_find (int isdyn, int rela)
lookup = lookup->next)
{
if (lookup->constraint >= 0
- && CONST_STRNEQ (lookup->name, ".rel"))
+ && startswith (lookup->name, ".rel"))
{
int lookrela = lookup->name[4] == 'a';
@@ -1971,7 +1971,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
default:
break;
}
- else if (CONST_STRNEQ (secname, ".rel"))
+ else if (startswith (secname, ".rel"))
{
secname = secname[4] == 'a' ? ".rela.dyn" : ".rel.dyn";
isdyn = 1;
@@ -2084,7 +2084,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
/* If this is a final link, then always put .gnu.warning.SYMBOL
sections into the .text section to get them out of the way. */
if (bfd_link_executable (&link_info)
- && CONST_STRNEQ (s->name, ".gnu.warning.")
+ && startswith (s->name, ".gnu.warning.")
&& hold[orphan_text].os != NULL)
{
os = hold[orphan_text].os;
@@ -2124,7 +2124,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
else if ((flags & SEC_LOAD) != 0
&& (elfinput
? sh_type == SHT_NOTE
- : CONST_STRNEQ (secname, ".note")))
+ : startswith (secname, ".note")))
place = &hold[orphan_interp];
else if ((flags & (SEC_LOAD | SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) == 0)
place = &hold[orphan_bss];
@@ -2137,7 +2137,7 @@ ldelf_place_orphan (asection *s, const char *secname, int constraint)
else if ((flags & SEC_LOAD) != 0
&& (elfinput
? sh_type == SHT_RELA || sh_type == SHT_REL
- : CONST_STRNEQ (secname, ".rel")))
+ : startswith (secname, ".rel")))
place = &hold[orphan_rel];
else if ((flags & SEC_CODE) == 0)
place = &hold[orphan_rodata];
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 81cb86d..c428d14 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -113,7 +113,7 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
now. */
if (name[0] == '=')
new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
- else if (CONST_STRNEQ (name, "$SYSROOT"))
+ else if (startswith (name, "$SYSROOT"))
new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
else
new_dirs->name = xstrdup (name);
diff --git a/ld/ldlang.c b/ld/ldlang.c
index df8a5d1..629be32 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1186,7 +1186,7 @@ lang_add_input_file (const char *name,
const char *target)
{
if (name != NULL
- && (*name == '=' || CONST_STRNEQ (name, "$SYSROOT")))
+ && (*name == '=' || startswith (name, "$SYSROOT")))
{
lang_input_statement_type *ret;
char *sysrooted_name
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 7a3c02a..aa52205 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -648,7 +648,7 @@ get_sysroot (int argc, char **argv)
const char *path = NULL;
for (i = 1; i < argc; i++)
- if (CONST_STRNEQ (argv[i], "--sysroot="))
+ if (startswith (argv[i], "--sysroot="))
path = argv[i] + strlen ("--sysroot=");
if (!path)
@@ -681,7 +681,7 @@ get_emulation (int argc, char **argv)
for (i = 1; i < argc; i++)
{
- if (CONST_STRNEQ (argv[i], "-m"))
+ if (startswith (argv[i], "-m"))
{
if (argv[i][2] == '\0')
{
@@ -935,7 +935,7 @@ add_archive_element (struct bfd_link_info *info,
h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE);
if (h == NULL
&& info->pei386_auto_import
- && CONST_STRNEQ (name, "__imp_"))
+ && startswith (name, "__imp_"))
h = bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, TRUE);
if (h == NULL)
diff --git a/ld/ldwrite.c b/ld/ldwrite.c
index 2db0b63..ef1d88c 100644
--- a/ld/ldwrite.c
+++ b/ld/ldwrite.c
@@ -281,7 +281,7 @@ build_link_order (lang_statement_union_type *statement)
static bfd_boolean
unsplittable_name (const char *name)
{
- if (CONST_STRNEQ (name, ".stab"))
+ if (startswith (name, ".stab"))
{
/* There are several stab like string sections. We pattern match on
".stab...str" */
@@ -326,7 +326,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
{
/* Some section names cannot be truncated, as the name is
used to locate some other section. */
- if (CONST_STRNEQ (name, ".stab")
+ if (startswith (name, ".stab")
|| strcmp (name, "$GDB_SYMBOLS$") == 0)
{
einfo (_ ("%F%P: cannot create split section name for %s\n"), name);
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 36492ab..88eb79e 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -1560,7 +1560,7 @@ parse_args (unsigned argc, char **argv)
link_info.discard = discard_all;
break;
case 'Y':
- if (CONST_STRNEQ (optarg, "P,"))
+ if (startswith (optarg, "P,"))
optarg += 2;
free (default_dirlist);
default_dirlist = xstrdup (optarg);
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 7aba09c..154c684 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -545,7 +545,7 @@ pe_dll_add_excludes (const char *new_excludes, const exclude_type type)
static bfd_boolean
is_import (const char* n)
{
- return (CONST_STRNEQ (n, "__imp_"));
+ return (startswith (n, "__imp_"));
}
/* abfd is a bfd containing n (or NULL)
@@ -3531,7 +3531,7 @@ pe_implied_import_dll (const char *filename)
/* Skip unwanted symbols, which are
exported in buggy auto-import releases. */
- if (! CONST_STRNEQ (erva + name_rva, "__nm_"))
+ if (! startswith (erva + name_rva, "__nm_"))
{
int is_dup = 0;
/* is_data is true if the address is in the data, rdata or bss