summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2015-12-31 23:16:28 +0100
committerMark Wielaard <mjw@redhat.com>2016-01-05 08:56:01 +0100
commit77e1739fc53c4021f6172955b73b2dce252d0709 (patch)
treecbf42b2d21ef0b21bf9b2a0f4327aa160c554a92
parent29ee512fb8a71b0d22065c369a2117ff758bdf5e (diff)
downloadandroid_external_elfutils-77e1739fc53c4021f6172955b73b2dce252d0709.tar.gz
android_external_elfutils-77e1739fc53c4021f6172955b73b2dce252d0709.tar.bz2
android_external_elfutils-77e1739fc53c4021f6172955b73b2dce252d0709.zip
elflint: Add _edata and _end to the list of possibly dangling gnuld symbols.
gnuld might keep dangling/unused symbols around (see sourceware PR13621). Add _edata (end of initialized data address) and _end (end of uninitialized data address) to that list. They might have been added by gnuld even if there is no such [un]initialized data. Also add the double underscore variants which are used on some architectures. Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r--src/ChangeLog5
-rw-r--r--src/elflint.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b5b5e4a4..0bbfa5b9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2015-12-31 Mark Wielaard <mjw@redhat.com>
+
+ * elflint.c (check_symtab): Add _edata and _end (plus extra underscore
+ variants) to to the list of possibly dangling symbols.
+
2015-12-02 Mark Wielaard <mjw@redhat.com>
* nm.c (process_file): Accept fd and pass it on.
diff --git a/src/elflint.c b/src/elflint.c
index 7d72a1f7..bb97f598 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -801,7 +801,11 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"),
&& strcmp (name, "__bss_start") != 0
&& strcmp (name, "__bss_start__") != 0
&& strcmp (name, "__TMC_END__") != 0
- && strcmp (name, ".TOC.") != 0))
+ && strcmp (name, ".TOC.") != 0
+ && strcmp (name, "_edata") != 0
+ && strcmp (name, "__edata") != 0
+ && strcmp (name, "_end") != 0
+ && strcmp (name, "__end") != 0))
ERROR (gettext ("\
section [%2d] '%s': symbol %zu: st_value out of bounds\n"),
idx, section_name (ebl, idx), cnt);