CFLAGS=-std=c99 -Os -g
+#CFLAGS+=-fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables
LDFLAGS=-g
CC=musl-gcc
-all: wrap.so hello
+all: wrap.so hello stress wrapasm.so
hello: hello.o
+stress: stress.o
wrap.o: head.h func.h
wrap.so: wrap.o
- $(CC) $(LDFLAGS) -shared -o $@ $< -ldl -lm -lrt -lcrypt
+ $(CC) $(LDFLAGS) -shared -o $@ $< -ldl -lm -lrt -lpthread -lutil -lcrypt
+func.s: funcnames
+ ./genasm.sh <$< >$@
+func.o: func.s
+wrapasm.so: func.o wrap_help.o
+ $(CC) $(LDFLAGS) -shared -o $@ $^ -ldl -lm -lrt -lpthread -lutil -lcrypt
clean:
- rm -f wrap.so hello *.o
+ rm -f wrap.so hello stress *.o wrapasm.so
test: all
LD_PRELOAD=./wrap.so ./hello
+ LD_PRELOAD=./wrap.so ./stress 2>&1 |wc -l