-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile.rgc
62 lines (55 loc) · 1.94 KB
/
Makefile.rgc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#
# Makefile for Snapshot with Return-barrier GC
# R.Hanai
#
# Compile options:
#
# * How to scan stacks
# __RETURN_BARRIER: scan stacks incrementally.
# not defined:
#
# * How to stop mutators - any of the next must be specified.
# __USE_POLLING: polling
# __USE_SIGNAL: signal (not implemented)
#
# * How to proceed GC work - any of the next must be specified.
# __GC_ALLOC_DRIVEN:
# __GC_SEPARATE_THREAD:
# __GC_HYBRID: (not yet implemented)
#
# * Mark bits
# __USE_MARK_BITMAP: mark bits are prepared as byte maps, not in object headers.
# not defined: (not implemented correctly)
#
# * Heap expansion
# __HEAP_EXPANDABLE: expandable-heap.
# not defined:
#
# * Other options
#
# __DEBUG: print detailed gc information.
# __PAPI: use PAPI(Performance counter interface).
# __ADVANCED_COLLECTOR_CONTROL: (not implemented)
# __PROFILE_GC:
# __PSTACK_CACHE:
#
#RGCFLAGS= -D__DBG_LV=0 -DRGC -D__USE_POLLING -D__HEAP_EXPANDABLE -D__GC_SEPARATE_THREAD #-D__RETURN_BARRIER
RGCFLAGS= -D__DBG_LV=0 -DRGC -D__USE_POLLING -D__HEAP_EXPANDABLE -D__GC_SEPARATE_THREAD -D__GC_ALLOC_DRIVEN #-D__RETURN_BARRIER #-D__PSTACK_CACHE
#RGCFLAGS= -D__DBG_LV=1 -DRGC -D__USE_POLLING -D__GC_ALLOC_DRIVEN #-D__RETURN_BARRIER #-D__PSTACK_CACHE
#RGCFLAGS= -DRGC -D__USE_POLLING -D__USE_MARK_BITMAP -D__GC_SEPARATE_THREAD -D__RETURN_BARRIER
RGCFLAGS2= -DGCC -D__EXTENSIONS__
PROFFLAGS= #-pg
CFLAGS+= $(RGCFLAGS) $(RGSFLAGS2) $(PROFFLAGS)
LDFLAGS+= $(PROFFLAGS) #-g
#CC=gcc
O2FLAGS=-O2 # for xccmem.h
RGCOBJECTS+= $(OBJDIR)/rgc_mem.o $(OBJDIR)/collector.o $(OBJDIR)/rgc_utils.o $(OBJDIR)/external_markbits.o
$(RGCOBJECTS): $(CDIR)/eus.h $(CDIR)/rgc_utils.h $(CDIR)/collector.h
(cd $(CDIR); \
$(CC) -c -o $(OBJDIR)/$(*F).o $(O2FLAGS) $(CFLAGS) $(RGCFLAGS) $(RGCFLAGS2) $(*F).c)
# dependency
$(OBJDIR)/rgc_mem.o: $(CDIR)/rgc_mem.c
$(OBJDIR)/collector.o: $(CDIR)/collector.c
$(OBJDIR)/rgc_utils.o: $(CDIR)/rgc_utils.c
$(OBJDIR)/external_markbits.o: $(CDIR)/external_markbits.c
#MTCOBJECTS+=$(RGCOBJECTS)