From d03f110904682a340137af07264eb8e148e3477d Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Wed, 10 Jun 2015 12:04:21 -0700 Subject: [PATCH] Link all libraries when building shared libraries Summary: The motivation is here: http://stackoverflow.com/questions/30706348/rocksdb-make-error Apparently there is a bug (?) in g++ where we don't link rt library properly when building RocksDB's shared library. It looks like this works when we add an option -Wl, --no-as-needed. Test Plan: make shared_lib Reviewers: meyering, sdong, yhchiang Reviewed By: yhchiang Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D39681 --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e7e62ca70..8245c0435 100644 --- a/Makefile +++ b/Makefile @@ -345,7 +345,8 @@ $(SHARED3): $(SHARED4) endif $(SHARED4): - $(CXX) $(PLATFORM_SHARED_LDFLAGS)$(SHARED3) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(LIB_SOURCES) $(LDFLAGS) -o $@ + $(CXX) $(PLATFORM_SHARED_LDFLAGS)$(SHARED3) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(LIB_SOURCES) \ + -Wl,--no-as-needed $(LDFLAGS) -o $@ endif # PLATFORM_SHARED_EXT