1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
Upstream-Status: Backport
Remove unused variables from the code to prevent -Werror causing a build
failure on hosts with GCC 4.6.
These changes are all upstream so should not be required once we've updated
to elfutils 0.152 or later. Therefore this patch consolidates several
changes from elfutils upstream by Roland McGrath into a single file so that
it's easier to remove later once we upgrade.
Links to upstream gitweb of the consolidated commits follow:
- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=7094d00a169afb27e0323f8580e817798ae7c240
- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=fd992543185126eb0280c1ee0883e073020499b4
- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=4db89f04bb59327abd7a3b60e88f2e7e73c65c79
- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=8f6c1795ab9d41f03805eebd55767070ade55aac
- http://git.fedorahosted.org/git?p=elfutils.git;a=commit;h=240784b48aa276822c5a61c9ad6a4355051ce259
Joshua Lock <josh@linux.intel.com> - 06/04/11
Index: elfutils-0.148/libasm/asm_newscn.c
===================================================================
--- elfutils-0.148.orig/libasm/asm_newscn.c
+++ elfutils-0.148/libasm/asm_newscn.c
@@ -162,7 +162,6 @@ asm_newscn (ctx, scnname, type, flags)
GElf_Xword flags;
{
size_t scnname_len = strlen (scnname) + 1;
- unsigned long int hval;
AsmScn_t *result;
/* If no context is given there might be an earlier error. */
@@ -180,8 +179,6 @@ asm_newscn (ctx, scnname, type, flags)
return NULL;
}
- hval = elf_hash (scnname);
-
rwlock_wrlock (ctx->lock);
/* This is a new section. */
Index: elfutils-0.148/src/elflint.c
===================================================================
--- elfutils-0.148.orig/src/elflint.c
+++ elfutils-0.148/src/elflint.c
@@ -707,9 +707,10 @@ section [%2d] '%s': symbol %zu: invalid
{
if (xndxdata == NULL)
{
- ERROR (gettext ("\
+ if (!no_xndx_warned)
+ ERROR (gettext ("\
section [%2d] '%s': symbol %zu: too large section index but no extended section index section\n"),
- idx, section_name (ebl, idx), cnt);
+ idx, section_name (ebl, idx), cnt);
no_xndx_warned = true;
}
else if (xndx < SHN_LORESERVE)
@@ -1592,10 +1593,6 @@ check_dynamic (Ebl *ebl, GElf_Ehdr *ehdr
[DT_STRSZ] = true,
[DT_SYMENT] = true
};
- GElf_Addr reladdr = 0;
- GElf_Word relsz = 0;
- GElf_Addr pltreladdr = 0;
- GElf_Word pltrelsz = 0;
memset (has_dt, '\0', sizeof (has_dt));
memset (has_val_dt, '\0', sizeof (has_val_dt));
@@ -1694,15 +1691,6 @@ section [%2d] '%s': entry %zu: level 2 t
section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n"),
idx, section_name (ebl, idx), cnt);
- if (dyn->d_tag == DT_REL)
- reladdr = dyn->d_un.d_ptr;
- if (dyn->d_tag == DT_RELSZ)
- relsz = dyn->d_un.d_val;
- if (dyn->d_tag == DT_JMPREL)
- pltreladdr = dyn->d_un.d_ptr;
- if (dyn->d_tag == DT_PLTRELSZ)
- pltrelsz = dyn->d_un.d_val;
-
/* Check that addresses for entries are in loaded segments. */
switch (dyn->d_tag)
{
Index: elfutils-0.148/src/ldgeneric.c
===================================================================
--- elfutils-0.148.orig/src/ldgeneric.c
+++ elfutils-0.148/src/ldgeneric.c
@@ -285,12 +285,10 @@ static int
check_for_duplicate2 (struct usedfiles *newp, struct usedfiles *list)
{
struct usedfiles *first;
- struct usedfiles *prevp;
if (list == NULL)
return 0;
- prevp = list;
list = first = list->next;
do
{
Index: elfutils-0.148/src/ldscript.y
===================================================================
--- elfutils-0.148.orig/src/ldscript.y
+++ elfutils-0.148/src/ldscript.y
@@ -802,12 +802,9 @@ add_versions (struct version *versions)
do
{
- struct version *oldp;
-
add_id_list (versions->versionname, versions->local_names, true);
add_id_list (versions->versionname, versions->global_names, false);
- oldp = versions;
versions = versions->next;
}
while (versions != NULL);
Index: elfutils-0.148/src/unstrip.c
===================================================================
--- elfutils-0.148.orig/src/unstrip.c
+++ elfutils-0.148/src/unstrip.c
@@ -1301,7 +1301,6 @@ more sections in stripped file than debu
/* Match each debuginfo section with its corresponding stripped section. */
bool check_prelink = false;
Elf_Scn *unstripped_symtab = NULL;
- size_t unstripped_strtab_ndx = SHN_UNDEF;
size_t alloc_avail = 0;
scn = NULL;
while ((scn = elf_nextscn (unstripped, scn)) != NULL)
@@ -1313,7 +1312,6 @@ more sections in stripped file than debu
if (shdr->sh_type == SHT_SYMTAB)
{
unstripped_symtab = scn;
- unstripped_strtab_ndx = shdr->sh_link;
continue;
}
Index: elfutils-0.148/src/ldscript.c
===================================================================
--- elfutils-0.148.orig/src/ldscript.c
+++ elfutils-0.148/src/ldscript.c
@@ -2728,12 +2728,9 @@ add_versions (struct version *versions)
do
{
- struct version *oldp;
-
add_id_list (versions->versionname, versions->local_names, true);
add_id_list (versions->versionname, versions->global_names, false);
- oldp = versions;
versions = versions->next;
}
while (versions != NULL);
|