Make non gram_* symbols local symbols (fixes #2)
authorJean THOMAS <git0@pub.jeanthomas.me>
Thu, 11 Jun 2020 09:49:51 +0000 (11:49 +0200)
committerJean THOMAS <git0@pub.jeanthomas.me>
Thu, 11 Jun 2020 09:49:51 +0000 (11:49 +0200)
libgram/.gitignore
libgram/Makefile
libgram/include/gram.h

index 3adeb9f2b3d0ae0250ef9f7d4e2fc5d9666d3b16..b7d34ac3fa21d4e0e35d595768c095966dc658e8 100644 (file)
@@ -1,3 +1,5 @@
+libgram.o
+libgram.clean.o
 libgram.a
 src/*.o
 src/*.d
index 530e83a006be57bae1887ca9f0a9d0819488b175..3fea0feaae446bbe7da4203362fb7969dac1037a 100644 (file)
@@ -6,9 +6,10 @@ CC := $(TRIPLE)-gcc
 AS := $(TRIPLE)-as
 OBJCOPY := $(TRIPLE)-objcopy
 AR := $(TRIPLE)-ar
+LD := $(TRIPLE)-ld
 
-CFLAGS  := -march=rv32i -mabi=ilp32 -nostdlib -Os -Iinclude
-LDFLAGS := -march=rv32i -mabi=ilp32 -nostdlib
+CFLAGS  := -fvisibility=hidden -march=rv32i -mabi=ilp32 -nostdlib -Os -Iinclude
+LDFLAGS := -melf32lriscv -nostdlib
 
 all: libgram.a
 
@@ -16,9 +17,13 @@ all: libgram.a
        $(CC) $(CFLAGS) -c $< -o $@
 
 libgram.a: $(OBJS)
-       $(AR) rcs $@ $(OBJS)
+       $(LD) $(LDFLAGS) -r $(OBJS) -o libgram.o
+       $(OBJCOPY) --localize-hidden libgram.o libgram.clean.o
+       $(AR) -rcs $@ libgram.clean.o
 
 clean:
        rm -rf $(OBJS)
        rm -f libgram.a
+       rm -f libgram.o
+       rm -f libgram.clean.o
 .PHONY: clean
index 7440c576eb7d1fc96676971d544f87eb02f31738..de50a54e6a58afc20db43083f34225ad70817308 100644 (file)
@@ -15,7 +15,7 @@ struct gramCtx {
        volatile struct gramPHYRegs *phy;
 };
 
-int gram_init(struct gramCtx *ctx, void *ddr_base, void *core_base, void *phy_base);
-int gram_memtest(struct gramCtx *ctx);
+extern __attribute__((visibility ("default"))) int gram_init(struct gramCtx *ctx, void *ddr_base, void *core_base, void *phy_base);
+extern __attribute__((visibility ("default"))) int gram_memtest(struct gramCtx *ctx);
 
 #endif /* GRAM_H */