Commit ceb689ec authored by David Mosberger's avatar David Mosberger

ia64: Rewrite the relocator in the kernel module loader. Fix some bugs and simplify

	the handling of loader-created sections.
parent 1bdbba7a
This diff is collapsed.
...@@ -11,19 +11,15 @@ ...@@ -11,19 +11,15 @@
struct elf64_shdr; /* forward declration */ struct elf64_shdr; /* forward declration */
struct mod_arch_specific { struct mod_arch_specific {
/* struct elf64_shdr *core_plt; /* core PLT section */
* PLTs need to be within 16MB of the call-site. Since the core and the init struct elf64_shdr *init_plt; /* init PLT section */
* sections are allocated separately, we need to maintain separate PLT areas struct elf64_shdr *got; /* global offset table */
* for them. Function descriptors and global-offset-table entries are, in struct elf64_shdr *opd; /* official procedure descriptors */
* contrast, always allocated in the core. struct elf64_shdr *unwind; /* unwind-table section */
*/ unsigned long gp; /* global-pointer for module */
struct elf64_shdr *init_text_sec; /* .init.text section (or NULL) */
unsigned long init_plt_offset;
struct elf64_shdr *core_text_sec; /* .text section (or NULL) */ void *unw_table; /* unwind-table cookie returned by unwinder */
unsigned long core_plt_offset; unsigned int next_got_entry; /* index of next available got entry */
unsigned long fdesc_offset;
unsigned long got_offset;
}; };
#define Elf_Shdr Elf64_Shdr #define Elf_Shdr Elf64_Shdr
...@@ -33,4 +29,6 @@ struct mod_arch_specific { ...@@ -33,4 +29,6 @@ struct mod_arch_specific {
#define MODULE_PROC_FAMILY "ia64" #define MODULE_PROC_FAMILY "ia64"
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY #define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
#define ARCH_SHF_SMALL SHF_IA_64_SHORT
#endif /* _ASM_IA64_MODULE_H */ #endif /* _ASM_IA64_MODULE_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment