summaryrefslogtreecommitdiff
path: root/ld/bindef.h
diff options
context:
space:
mode:
Diffstat (limited to 'ld/bindef.h')
-rw-r--r--ld/bindef.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/ld/bindef.h b/ld/bindef.h
new file mode 100644
index 0000000..4ccaf53
--- /dev/null
+++ b/ld/bindef.h
@@ -0,0 +1,68 @@
+
+/* Ok, I'm just gonna make it simple ... override this if you like. */
+#ifndef A_OUT_INCL
+#define A_OUT_INCL "a.out.h"
+#endif
+
+/* This is how it used to be ... */
+#ifndef A_OUT_INCL
+# ifdef BSD_A_OUT
+# ifdef STANDARD_GNU_A_OUT
+# define A_OUT_INCL <a.out.h>
+# else
+# define A_OUT_INCL "bsd-a.out.h"
+# endif
+
+# ifdef MSDOS
+# define A_OUT_INCL "a_out.h"
+# else
+# define A_OUT_INCL "a.out.h" /* maybe local copy of <a.out.h> for X-link */
+# endif
+# endif /* BSD_A_OUT */
+#endif
+
+#include A_OUT_INCL
+
+/* Try and guess type ... */
+#ifndef V7_A_OUT
+#ifndef BSD_A_OUT
+#ifndef STANDARD_GNU_A_OUT
+
+# ifndef C_EXT
+ #define BSD_A_OUT
+# endif
+
+/* Not sure about this one ... it works here ... */
+# if defined(BSD_A_OUT) && defined(N_MAGIC)
+ #define STANDARD_GNU_A_OUT
+# endif
+
+#endif
+#endif
+#endif
+
+/* General specs as to how it works ... */
+# ifdef BSD_A_OUT
+# ifdef STANDARD_GNU_A_OUT
+# define RELOC_INFO_SIZE 8 /* unportable bitfields - bcc doesn't pack */
+# else
+# define RELOC_INFO_SIZE (sizeof (struct relocation_info))
+# endif
+# define C_EXT N_EXT
+# define C_STAT 0
+# define n_was_name n_un.n_name
+# define n_was_numaux n_other
+# define n_was_other n_numaux
+# define n_was_sclass n_type
+# define n_was_strx n_un.n_strx
+# define n_was_type n_desc
+# else /* not BSD_A_OUT */
+# define RELOC_INFO_SIZE (sizeof (struct reloc))
+# define n_was_name n_name
+# define n_was_numaux n_numaux
+# define n_was_other n_other
+# define n_was_sclass n_sclass
+# define n_was_strx n_value
+# define n_was_type n_type
+# endif /* BSD_A_OUT */
+