Resolve circular library references with --start-group
authorJouni Malinen <j@w1.fi>
Sun, 6 Dec 2009 15:18:28 +0000 (17:18 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 6 Dec 2009 15:18:28 +0000 (17:18 +0200)
src/crypto/libcrypto.a and src/tls/libtls.a have circular references
and will need special handling with the linker at least for the time
being. This could be cleaned up eventually, but for now, provide a
mechanism to get the programs linked.

tests/Makefile

index b40ff1c..3e46951 100644 (file)
@@ -18,10 +18,14 @@ endif
 CFLAGS += -I../src
 CFLAGS += -I../src/utils
 
-LIBS = ../src/utils/libutils.a \
-       ../src/crypto/libcrypto.a \
+SLIBS = ../src/utils/libutils.a
+
+DLIBS = ../src/crypto/libcrypto.a \
        ../src/tls/libtls.a
 
+LIBS = $(SLIBS) $(DLIBS)
+LLIBS = -Wl,--start-group $(DLIBS) -Wl,--end-group $(SLIBS)
+
 ../src/utils/libutils.a:
        $(MAKE) -C ../src/utils
 
@@ -60,7 +64,7 @@ test-sha256: test-sha256.o $(LIBS)
        $(LDO) $(LDFLAGS) -o $@ $^
 
 test-x509: test-x509.o $(LIBS)
-       $(LDO) $(LDFLAGS) -o $@ $^
+       $(LDO) $(LDFLAGS) -o $@ $< $(LLIBS)
 
 
 run-tests: $(TESTS)