pkgsrc/editors/xemacs-current/patches/patch-src_unexelf.c
hauke b8ec288ea2 Upgrade to XEmacs 21.5.34
Enhance ELF macros to deal with 32/64 bit arches
Special-case alpha

Was patch-ad
2017-11-15 14:53:27 +00:00

40 lines
1.1 KiB
C

$NetBSD: patch-src_unexelf.c,v 1.1 2017/11/15 14:53:27 hauke Exp $
Enhance ELF macros to deal with 32/64 bit arches
Special-case alpha
Was patch-ad
--- src/unexelf.c.orig 2013-08-21 17:43:45.000000000 +0000
+++ src/unexelf.c
@@ -490,10 +490,19 @@ typedef struct {
#ifndef ElfW
# ifdef __STDC__
-# define ElfW(type) Elf32_##type
+# define ElfBitsW(bits, type) Elf##bits##_##type
# else
-# define ElfW(type) Elf32_/**/type
+# define ElfBitsW(bits, type) Elf/**/bits/**/_/**/type
# endif
+# if defined (_LP64) || defined(__alpha__)
+# define ELFSIZE 64
+# else
+# define ELFSIZE 32
+# endif
+ /* This macro expands `bits' before invoking ElfBitsW. */
+# define ElfExpandBitsW(bits, type) ElfBitsW (bits, type)
+# define ElfW(type) ElfExpandBitsW (ELFSIZE, type)
+
#endif
#ifndef ELF_BSS_SECTION_NAME
@@ -959,7 +968,7 @@ unexec (Extbyte *new_name, Extbyte *old_
memcpy (NEW_SECTION_H (nn).sh_offset + new_base, src,
NEW_SECTION_H (nn).sh_size);
-#ifdef __alpha__
+#if defined(__alpha__) && !defined(__NetBSD__)
/* Update Alpha COFF symbol table: */
if (strcmp (old_section_names + OLD_SECTION_H (n).sh_name, ".mdebug")
== 0)