diff --git a/scripts/mk_util.py b/scripts/mk_util.py
index 6829b7251..b6de10921 100644
--- a/scripts/mk_util.py
+++ b/scripts/mk_util.py
@@ -2631,7 +2631,10 @@ def mk_config():
         config.write('LINK=%s\n' % CXX)
         config.write('LINK_FLAGS=\n')
         config.write('LINK_OUT_FLAG=-o \n')
-        config.write('LINK_EXTRA_FLAGS= -lpthread %s\n' % LDFLAGS)
+        if is_linux() and (build_static_lib() or build_static_bin()):
+            config.write('LINK_EXTRA_FLAGS=-Wl,--whole-archive -lpthread -Wl,--no-whole-archive %s\n' % LDFLAGS)
+        else:
+            config.write('LINK_EXTRA_FLAGS=-lpthread %s\n' % LDFLAGS)
         config.write('SO_EXT=%s\n' % SO_EXT)
         config.write('SLINK=%s\n' % CXX)
         config.write('SLINK_FLAGS=%s\n' % SLIBFLAGS)