diff options
Diffstat (limited to 'sysutils/xenkernel3/patches/patch-bd')
-rw-r--r-- | sysutils/xenkernel3/patches/patch-bd | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/sysutils/xenkernel3/patches/patch-bd b/sysutils/xenkernel3/patches/patch-bd new file mode 100644 index 00000000000..c740a75eaac --- /dev/null +++ b/sysutils/xenkernel3/patches/patch-bd @@ -0,0 +1,112 @@ +$NetBSD: patch-bd,v 1.1 2007/08/17 17:26:05 bouyer Exp $ + +--- xen/include/public/libelf.h.orig 2007-05-18 16:45:21.000000000 +0200 ++++ xen/include/public/libelf.h 2007-08-16 21:43:18.000000000 +0200 +@@ -69,6 +69,9 @@ + uint64_t pend; + uint64_t reloc_offset; + ++ uint64_t bsd_symtab_pstart; ++ uint64_t bsd_symtab_pend; ++ + #ifndef __XEN__ + /* misc */ + FILE *log; +@@ -91,33 +94,32 @@ + #define elf_lsb(elf) (ELFDATA2LSB == (elf)->data) + #define elf_swap(elf) (NATIVE_ELFDATA != (elf)->data) + +-#define elf_uval(elf, str, elem) \ +- ((ELFCLASS64 == (elf)->class) \ +- ? elf_access_unsigned((elf), (str), \ +- offsetof(typeof(*(str)),e64.elem), \ +- sizeof((str)->e64.elem)) \ +- : elf_access_unsigned((elf), (str), \ +- offsetof(typeof(*(str)),e32.elem), \ +- sizeof((str)->e32.elem))) +- +-#define elf_sval(elf, str, elem) \ +- ((ELFCLASS64 == (elf)->class) \ +- ? elf_access_signed((elf), (str), \ +- offsetof(typeof(*(str)),e64.elem), \ +- sizeof((str)->e64.elem)) \ +- : elf_access_signed((elf), (str), \ +- offsetof(typeof(*(str)),e32.elem), \ +- sizeof((str)->e32.elem))) +- +-#define elf_size(elf, str) \ +- ((ELFCLASS64 == (elf)->class) \ +- ? sizeof((str)->e64) \ +- : sizeof((str)->e32)) ++#define elf_uval(elf, str, elem) \ ++ ((ELFCLASS64 == (elf)->class) \ ++ ? elf_access_unsigned((elf), (str), \ ++ offsetof(typeof(*(str)),e64.elem), \ ++ sizeof((str)->e64.elem)) \ ++ : elf_access_unsigned((elf), (str), \ ++ offsetof(typeof(*(str)),e32.elem), \ ++ sizeof((str)->e32.elem))) ++ ++#define elf_sval(elf, str, elem) \ ++ ((ELFCLASS64 == (elf)->class) \ ++ ? elf_access_signed((elf), (str), \ ++ offsetof(typeof(*(str)),e64.elem), \ ++ sizeof((str)->e64.elem)) \ ++ : elf_access_signed((elf), (str), \ ++ offsetof(typeof(*(str)),e32.elem), \ ++ sizeof((str)->e32.elem))) ++ ++#define elf_size(elf, str) \ ++ ((ELFCLASS64 == (elf)->class) \ ++ ? sizeof((str)->e64) : sizeof((str)->e32)) + + uint64_t elf_access_unsigned(struct elf_binary *elf, const void *ptr, +- uint64_t offset, size_t size); ++ uint64_t offset, size_t size); + int64_t elf_access_signed(struct elf_binary *elf, const void *ptr, +- uint64_t offset, size_t size); ++ uint64_t offset, size_t size); + + uint64_t elf_round_up(struct elf_binary *elf, uint64_t addr); + +@@ -165,6 +167,8 @@ + void *elf_get_ptr(struct elf_binary *elf, unsigned long addr); + uint64_t elf_lookup_addr(struct elf_binary *elf, const char *symbol); + ++void elf_parse_bsdsyms(struct elf_binary *elf, uint64_t pstart); /* private */ ++ + /* ------------------------------------------------------------------------ */ + /* xc_libelf_relocate.c */ + +@@ -185,8 +189,8 @@ + enum xen_elfnote_type type; + const char *name; + union { +- const char *str; +- uint64_t num; ++ const char *str; ++ uint64_t num; + } data; + }; + +@@ -228,14 +232,14 @@ + } + + int elf_xen_parse_features(const char *features, +- uint32_t *supported, +- uint32_t *required); ++ uint32_t *supported, ++ uint32_t *required); + int elf_xen_parse_note(struct elf_binary *elf, +- struct elf_dom_parms *parms, +- const elf_note *note); ++ struct elf_dom_parms *parms, ++ const elf_note *note); + int elf_xen_parse_guest_info(struct elf_binary *elf, +- struct elf_dom_parms *parms); ++ struct elf_dom_parms *parms); + int elf_xen_parse(struct elf_binary *elf, +- struct elf_dom_parms *parms); ++ struct elf_dom_parms *parms); + + #endif /* __XC_LIBELF__ */ |