diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2012-08-31 16:34:31 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2012-08-31 16:34:31 +0000 |
commit | 53352c756e91002e02263a22570a7da5ef04b9d1 (patch) | |
tree | a568a6ef7f4ba67817cf25a2deee5160a800bce0 | |
parent | 53198f1c96b597c35902e7561a8183a9866d4689 (diff) | |
download | elfutils-53352c756e91002e02263a22570a7da5ef04b9d1.tar.gz |
elflint --gnu-ld: tolerate __bss_start out of .dynsym bounds
-rw-r--r-- | elfutils-0.155-alt-elflint-st_value.patch | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/elfutils-0.155-alt-elflint-st_value.patch b/elfutils-0.155-alt-elflint-st_value.patch index e1bbcb2b..792138eb 100644 --- a/elfutils-0.155-alt-elflint-st_value.patch +++ b/elfutils-0.155-alt-elflint-st_value.patch @@ -1,6 +1,6 @@ --- elfutils/src/elflint.c +++ elfutils/src/elflint.c -@@ -763,7 +763,8 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"), +@@ -763,28 +763,35 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"), if (! ebl_check_special_symbol (ebl, ehdr, sym, name, destshdr)) { @@ -10,7 +10,15 @@ { /* GNU ld has severe bugs. When it decides to remove empty sections it leaves symbols referencing them -@@ -775,16 +776,20 @@ section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n"), +- behind. These are symbols in .symtab. */ ++ behind. These are symbols in .symtab or .dynsym. */ + if (!gnuld +- || strcmp (section_name (ebl, idx), ".symtab") ++ || (strcmp (section_name (ebl, idx), ".symtab") ++ && (strcmp (section_name (ebl, idx), ".dynsym") ++ || strcmp (name, "__bss_start") != 0)) + || (strcmp (name, "__preinit_array_start") != 0 + && strcmp (name, "__preinit_array_end") != 0 && strcmp (name, "__init_array_start") != 0 && strcmp (name, "__init_array_end") != 0 && strcmp (name, "__fini_array_start") != 0 |