aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--elf/Makefile2
-rw-r--r--elf/link.h8
-rw-r--r--sysdeps/alpha/Implies1
-rw-r--r--sysdeps/i386/Implies1
-rw-r--r--sysdeps/m68k/Implies1
-rw-r--r--sysdeps/mips/Implies1
-rw-r--r--sysdeps/sparc/Implies1
-rw-r--r--sysdeps/wordsize-32/elfclass.h5
-rw-r--r--sysdeps/wordsize-64/elfclass.h5
10 files changed, 30 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 16f8c5b832..231facf905 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
Mon Jun 10 06:14:03 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
+ * elf/link.h: Include elfclass.h to define __ELF_NATIVE_CLASS.
+ (ElfW, ELFW): Use it.
+ * elf/Makefile (headers): Add elfclass.h.
+ * sysdeps/wordsize-32/elfclass.h: New file.
+ * sysdeps/wordsize-64/elfclass.h: New file.
+ * sysdeps/alpha/Implies: Add wordsize-64.
+ * sysdeps/i386/Implies: Add wordsize-32.
+ * sysdeps/m68k/Implies: Add wordsize-32.
+ * sysdeps/mips/Implies: Add wordsize-32.
+ * sysdeps/sparc/Implies: Add wordsize-32.
+
* sysdeps/mach/hurd/dl-sysdep.c (__open): Define this instead of open.
(__close, __mmap): Likewise define with __ names now.
diff --git a/elf/Makefile b/elf/Makefile
index 34be12e769..06aeb7590a 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -20,7 +20,7 @@
subdir := elf
-headers = elf.h link.h dlfcn.h
+headers = elf.h elfclass.h link.h dlfcn.h
routines = init-first $(dl-routines) dl-open dl-symbol dl-support
# The core dynamic linking functions are in libc for the static and
diff --git a/elf/link.h b/elf/link.h
index f7bca97e80..6d284cbbde 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -25,15 +25,13 @@ Cambridge, MA 02139, USA. */
#include <elf.h>
-#define __ELF_WORDSIZE 32 /* XXX */
-
/* We use this macro to refer to ELF types independent of the native wordsize.
`ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */
-#define ElfW(type) _ElfW (Elf, __ELF_WORDSIZE, type)
-#define ELFW(type) _ElfW (ELF, __ELF_WORDSIZE, type)
+#define ElfW(type) _ElfW (Elf, __ELF_NATIVE_CLASS, type)
+#define ELFW(type) _ElfW (ELF, __ELF_NATIVE_CLASS, type)
#define _ElfW(e,w,t) _ElfW_1 (e, w, _##t)
#define _ElfW_1(e,w,t) e##w##t
-
+#include <elfclass.h> /* Defines __ELF_NATIVE_CLASS. */
/* Rendezvous structure used by the run-time dynamic linker to communicate
details of shared object loading to the debugger. If the executable's
diff --git a/sysdeps/alpha/Implies b/sysdeps/alpha/Implies
index 93234096f0..37fee79d97 100644
--- a/sysdeps/alpha/Implies
+++ b/sysdeps/alpha/Implies
@@ -1,2 +1,3 @@
+wordsize-64
# Alpha uses IEEE 754 floating point.
ieee754
diff --git a/sysdeps/i386/Implies b/sysdeps/i386/Implies
index 1610bfdc5b..d6acf04a82 100644
--- a/sysdeps/i386/Implies
+++ b/sysdeps/i386/Implies
@@ -1 +1,2 @@
+wordsize-32
ieee754
diff --git a/sysdeps/m68k/Implies b/sysdeps/m68k/Implies
index a67e1c2741..09dd873973 100644
--- a/sysdeps/m68k/Implies
+++ b/sysdeps/m68k/Implies
@@ -1,2 +1,3 @@
+wordsize-32
# 68k uses IEEE 754 floating point.
ieee754
diff --git a/sysdeps/mips/Implies b/sysdeps/mips/Implies
index 60732cef94..5aeb9ae460 100644
--- a/sysdeps/mips/Implies
+++ b/sysdeps/mips/Implies
@@ -1,2 +1,3 @@
+wordsize-32
# MIPS uses IEEE 754 floating point.
ieee754
diff --git a/sysdeps/sparc/Implies b/sysdeps/sparc/Implies
index da719e1707..8a2007c5ce 100644
--- a/sysdeps/sparc/Implies
+++ b/sysdeps/sparc/Implies
@@ -1,2 +1,3 @@
+wordsize-32
# SPARC uses IEEE 754 floating point.
ieee754
diff --git a/sysdeps/wordsize-32/elfclass.h b/sysdeps/wordsize-32/elfclass.h
new file mode 100644
index 0000000000..49411d66f3
--- /dev/null
+++ b/sysdeps/wordsize-32/elfclass.h
@@ -0,0 +1,5 @@
+/* This file specifies the native word size of the machine, which indicates
+ the ELF file class used for executables and shared objects on this
+ machine. */
+
+#define __ELF_NATIVE_CLASS 32
diff --git a/sysdeps/wordsize-64/elfclass.h b/sysdeps/wordsize-64/elfclass.h
new file mode 100644
index 0000000000..ac52904886
--- /dev/null
+++ b/sysdeps/wordsize-64/elfclass.h
@@ -0,0 +1,5 @@
+/* This file specifies the native word size of the machine, which indicates
+ the ELF file class used for executables and shared objects on this
+ machine. */
+
+#define __ELF_NATIVE_CLASS 64