#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;
}

