scc

A fork of https://git.simple-cc.org/scc/ for Qute

git clone https://git.8pit.net/scc.git

 1#include <stdio.h>
 2#include <stdlib.h>
 3
 4#include <scc/mach.h>
 5
 6#include "ld.h"
 7
 8extern int bintype;
 9extern Symbol defhead;
10
11/*
12        char *name;
13        int type;
14        int sect;
15        unsigned long long size;
16        unsigned long long value;
17*/
18
19void
20pass5(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	};
34
35	obj = objnew(bintype);
36
37	for (segp = segv; *segp; segp++)
38		/* objaddseg(obj, *segp) */ ;
39
40	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	}
45
46	/* TODO: write relocations */
47	/* TODO: write line information */
48
49	fp = fopen(output, "wb");
50	(obj->ops->write)(obj, fp);
51}