summaryrefslogtreecommitdiffstats
path: root/libebl/libebl.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2005-08-13 01:59:10 +0000
committerRoland McGrath <roland@redhat.com>2005-08-13 01:59:10 +0000
commit653d3763e986da9f1c8a92ff9103d85c534754cd (patch)
tree66c2402ec55cf778e36e98c52e5c5d5c4e9aae25 /libebl/libebl.h
parent1c83bf1fd46b74492297694b642df36d18c6e7b5 (diff)
downloadandroid_external_elfutils-653d3763e986da9f1c8a92ff9103d85c534754cd.tar.gz
android_external_elfutils-653d3763e986da9f1c8a92ff9103d85c534754cd.tar.bz2
android_external_elfutils-653d3763e986da9f1c8a92ff9103d85c534754cd.zip
libebl/
2005-08-12 Roland McGrath <roland@redhat.com> * libeblP.h (struct ebl): Add bss_plt_p hook. * eblopenbackend.c (default_bss_plt_p): New function. (fill_defaults): Use it. * eblbsspltp.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_bss_plt_p. * ppc_symbol.c (ppc_bss_plt_p): New function. * libebl_ppc.h: Declare it. * ppc_init.c (ppc_init): Use it. * ppc64_symbol.c (ppc64_bss_plt_p): New function. * libebl_ppc64.h: Declare it. * ppc64_init.c (ppc64_init): Use it. * ebl_check_special_symbol.c: New file. * Makefile.am (gen_SOURCES): Add it. * libebl.h: Declare ebl_check_special_symbol. * libeblP.h (struct ebl): Add check_special_symbol hook. * eblopenbackend.c (default_check_special_symbol): New function. (fill_defaults): Use it. * ppc_symbol.c (ppc_check_special_symbol): New function. * libebl_ppc.h: Add prototype. * ppc_init.c (ppc_init): Use it. * ppc64_symbol.c (ppc64_check_special_symbol): New function. * libebl_ppc64.h: Add prototype. * ppc64_init.c (ppc64_init): Use it. src/ 2005-08-12 Roland McGrath <roland@redhat.com> * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx refers to the right section if it's not SHN_ABS. Let ebl_check_special_symbol override _G_O_T_ value and size checks. * elflint.c (check_sections): Don't complain about a non-NOBITS section taking no segment space, if it's sh_size is 0. * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should be PROGBITS or NOBITS. * elflint.c (check_symtab): Use ebl_check_special_symbol to override standard st_value and st_size checks.
Diffstat (limited to 'libebl/libebl.h')
-rw-r--r--libebl/libebl.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/libebl/libebl.h b/libebl/libebl.h
index a59d4dd4..46373441 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -112,6 +112,12 @@ extern const char *ebl_dynamic_tag_name (Ebl *ebl, int64_t tag,
/* Check dynamic tag. */
extern bool ebl_dynamic_tag_check (Ebl *ebl, int64_t tag);
+/* Check whether given symbol's st_value and st_size are OK despite failing
+ normal checks. */
+extern bool ebl_check_special_symbol (Ebl *ebl,
+ const GElf_Sym *sym, const char *name,
+ const GElf_Shdr *destshdr);
+
/* Return combined section header flags value. */
extern GElf_Word ebl_sh_flags_combine (Ebl *ebl, GElf_Word flags1,
GElf_Word flags2);
@@ -142,12 +148,14 @@ extern bool ebl_debugscn_p (Ebl *ebl, const char *name);
/* Check whether given relocation is a copy relocation. */
extern bool ebl_copy_reloc_p (Ebl *ebl, int reloc);
-
-/* CHeck whether section should be stripped. */
+/* Check whether section should be stripped. */
extern bool ebl_section_strip_p (Ebl *ebl, const GElf_Ehdr *ehdr,
const GElf_Shdr *shdr, const char *name,
bool remove_comment, bool only_remove_debug);
+/* Check if backend uses a bss PLT in this file. */
+extern bool ebl_bss_plt_p (Ebl *ebl);
+
/* ELF string table handling. */
struct Ebl_Strtab;