summaryrefslogtreecommitdiffstats
path: root/src/libmach/symmacho.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmach/symmacho.c')
-rw-r--r--src/libmach/symmacho.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/libmach/symmacho.c b/src/libmach/symmacho.c
new file mode 100644
index 00000000..674190ff
--- /dev/null
+++ b/src/libmach/symmacho.c
@@ -0,0 +1,50 @@
+#include <u.h>
+#include <libc.h>
+#include <mach.h>
+#include "macho.h"
+
+#if 0
+static int
+machosyminit(Fhdr *fp)
+{
+ /* XXX should parse dynamic symbol table here */
+ return 0;
+}
+#endif
+
+int
+symmacho(Fhdr *fp)
+{
+ int ret;
+ Macho *m;
+
+ m = fp->macho;
+ if(m == nil){
+ werrstr("not a macho");
+ return -1;
+ }
+
+ ret = -1;
+
+ if(machdebug)
+ fprint(2, "macho symbols...\n");
+
+/*
+ if(machosyminit(fp) < 0)
+ fprint(2, "initializing macho symbols: %r\n");
+ else
+ ret = 0;
+*/
+
+ if(fp->stabs.stabbase){
+ if(machdebug)
+ fprint(2, "stabs symbols...\n");
+
+ if(symstabs(fp) < 0)
+ fprint(2, "initializing stabs: %r");
+ else
+ ret = 0;
+ }
+ return ret;
+}
+