Succesfully loaded return-only module on ia64-emu

This commit is contained in:
phcoder 2011-01-02 14:09:58 +01:00
parent 6f49d0aacb
commit f9c30af6d0
8 changed files with 368 additions and 7 deletions

View file

@ -90,8 +90,11 @@ struct grub_dl
grub_dl_dep_t dep;
grub_dl_segment_t segment;
Elf_Sym *symtab;
void (*init) (struct grub_dl *mod);
void (*fini) (void);
grub_addr_t init;
grub_addr_t fini;
#ifdef __ia64__
char *gp;
#endif
struct grub_dl *next;
};
typedef struct grub_dl *grub_dl_t;
@ -119,4 +122,17 @@ grub_err_t grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr);
void grub_arch_dl_init_linker (void);
#endif
#ifdef __ia64__
grub_size_t grub_arch_dl_get_tramp_size (const void *ehdr, unsigned sec);
#define GRUB_ARCH_DL_TRAMP_ALIGN 16
#else
static inline grub_size_t
grub_arch_dl_get_tramp_size (const void *ehdr __attribute__ ((unused)), int sec __attribute__ ((unused)))
{
return 0;
}
#define GRUB_ARCH_DL_TRAMP_ALIGN 1
#endif
#endif /* ! GRUB_DL_H */

View file

@ -95,8 +95,10 @@ typedef grub_int64_t grub_ssize_t;
# if GRUB_CPU_SIZEOF_LONG == 8
# define PRIxGRUB_SIZE "lx"
# define PRIxGRUB_ADDR "lx"
# else
# define PRIxGRUB_SIZE "llx"
# define PRIxGRUB_ADDR "llx"
# endif
#else
typedef grub_uint32_t grub_addr_t;
@ -104,6 +106,7 @@ typedef grub_uint32_t grub_size_t;
typedef grub_int32_t grub_ssize_t;
# define PRIxGRUB_SIZE "x"
# define PRIxGRUB_ADDR "x"
#endif
#if GRUB_CPU_SIZEOF_LONG == 8