diff --git a/lib/Makefile b/lib/Makefile index ff0a913a..c09353c4 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -39,9 +39,10 @@ LIBPICRIN_HEADERS = \ CFLAGS += -I./include -Wall -Wextra -g -mini-picrin: libpicrin.so ext/main.o - $(CC) $(CFLAGS) -o $@ libpicrin.so ext/main.o +mini-picrin: $(LIBPICRIN_OBJS) ext/main.o + $(CC) $(CFLAGS) -o $@ ext/main.o $(LIBPICRIN_OBJS) +libpicrin.so: CFLAGS += -fPIC libpicrin.so: $(LIBPICRIN_OBJS) $(CC) $(CFLAGS) -shared -o $@ $(LIBPICRIN_OBJS) $(LDFLAGS) @@ -52,6 +53,6 @@ libpicrin.so.minimal: $(LIBPICRIN_SRCS) $(LIBPICRIN_OBJS): $(LIBPICRIN_HEADERS) clean: - $(RM) $(LIBPICRIN_OBJS) libpicrin.so libpicrin.so.minimal + $(RM) $(LIBPICRIN_OBJS) ext/main.o mini-picrin libpicrin.so libpicrin.so.minimal .PHONY: clean diff --git a/lib/port.c b/lib/port.c index 997cb814..7d11fdd4 100644 --- a/lib/port.c +++ b/lib/port.c @@ -361,8 +361,8 @@ pic_vfprintf(pic_state *pic, pic_value port, const char *fmt, va_list ap) unsigned long vp = (unsigned long) va_arg(ap, void*); char buf[sizeof vp * CHAR_BIT / 4 + 1]; size_t i; - for (i = 0; i < sizeof buf; ++i) { - buf[sizeof buf - i - 1] = digits[vp % 16]; + for (i = 0; i < sizeof buf - 1; ++i) { + buf[sizeof buf - i - 2] = digits[vp % 16]; vp /= 16; } buf[i] = '\0';