1#include <stdio.h>2#include <stdlib.h>34#include <scc/mach.h>56#include "ld.h"78extern int bintype;9extern Symbol defhead;1011/*12 char *name;13 int type;14 int sect;15 unsigned long long size;16 unsigned long long value;17*/1819void20pass5(int argc, char *argv[])21{22 Obj *obj;23 Symbol *sym;24 Segment **segp;25 Objsym *osym;26 FILE *fp;27 static Segment *segv[] = {28 &text,29 &data,30 &bss,31 /* TODO: debug, */32 NULL,33 };3435 obj = objnew(bintype);3637 for (segp = segv; *segp; segp++)38 /* objaddseg(obj, *segp) */ ;3940 for (sym = defhead.next; sym != &defhead; sym = sym->next) {41 osym = objlookup(obj, sym->name, 1);42 osym->size = sym->size;43 osym->value = sym->value;44 }4546 /* TODO: write relocations */47 /* TODO: write line information */4849 fp = fopen(output, "wb");50 (obj->ops->write)(obj, fp);51}