diff --git a/include/binder/Binder.h b/include/binder/Binder.h
index 47b2bb9..ba3ac4b 100644
--- a/include/binder/Binder.h
+++ b/include/binder/Binder.h
@@ -71,7 +71,6 @@
 
             Extras*     mExtras;
             void*       mReserved0;
-    static  String16    sEmptyDescriptor;
 };
 
 // ---------------------------------------------------------------------------
diff --git a/libs/binder/Android.mk b/libs/binder/Android.mk
index 2df6775..13dc500 100644
--- a/libs/binder/Android.mk
+++ b/libs/binder/Android.mk
@@ -12,34 +12,35 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
 # we have the common sources, plus some device-specific stuff
-LOCAL_SRC_FILES:= \
-	Binder.cpp \
-	BpBinder.cpp \
-	IInterface.cpp \
-	IMemory.cpp \
-	IPCThreadState.cpp \
-	IPermissionController.cpp \
-	IServiceManager.cpp \
-	MemoryDealer.cpp \
+sources := \
+    Binder.cpp \
+    BpBinder.cpp \
+    IInterface.cpp \
+    IMemory.cpp \
+    IPCThreadState.cpp \
+    IPermissionController.cpp \
+    IServiceManager.cpp \
+    MemoryDealer.cpp \
     MemoryBase.cpp \
     MemoryHeapBase.cpp \
     MemoryHeapPmem.cpp \
-	Parcel.cpp \
-	Permission.cpp \
-	ProcessState.cpp \
-	Static.cpp
+    Parcel.cpp \
+    Permission.cpp \
+    ProcessState.cpp \
+    Static.cpp
 
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
 LOCAL_LDLIBS += -lpthread
-
-LOCAL_SHARED_LIBRARIES := \
-	liblog \
-	libcutils \
-	libutils
-
-LOCAL_MODULE:= libbinder
-
+LOCAL_MODULE := libbinder
+LOCAL_SHARED_LIBRARIES := liblog libcutils libutils
+LOCAL_SRC_FILES := $(sources)
 include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_LDLIBS += -lpthread
+LOCAL_MODULE := libbinder
+LOCAL_SRC_FILES := $(sources)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp
index 0dd7622..9945f91 100644
--- a/libs/binder/Binder.cpp
+++ b/libs/binder/Binder.cpp
@@ -69,8 +69,6 @@
 
 // ---------------------------------------------------------------------------
 
-String16 BBinder::sEmptyDescriptor;
-
 BBinder::BBinder()
     : mExtras(NULL)
 {
@@ -88,6 +86,9 @@
 
 const String16& BBinder::getInterfaceDescriptor() const
 {
+    // This is a local static rather than a global static,
+    // to avoid static initializer ordering issues.
+    static String16 sEmptyDescriptor;
     LOGW("reached BBinder::getInterfaceDescriptor (this=%p)", this);
     return sEmptyDescriptor;
 }
diff --git a/libs/utils/Android.mk b/libs/utils/Android.mk
index d0eedb4..afecdcb 100644
--- a/libs/utils/Android.mk
+++ b/libs/utils/Android.mk
@@ -104,3 +104,13 @@
 LOCAL_MODULE:= libutils
 include $(BUILD_SHARED_LIBRARY)
 
+ifneq ($(TARGET_SIMULATOR),true)
+ifeq ($(TARGET_OS),linux)
+include $(CLEAR_VARS)
+LOCAL_C_INCLUDES += external/zlib external/icu4c/common
+LOCAL_LDLIBS := -lrt -ldl -lpthread
+LOCAL_MODULE := libutils
+LOCAL_SRC_FILES := $(commonSources) BackupData.cpp BackupHelpers.cpp
+include $(BUILD_STATIC_LIBRARY)
+endif
+endif
diff --git a/libs/utils/String8.cpp b/libs/utils/String8.cpp
index 3a34838..636cd83 100644
--- a/libs/utils/String8.cpp
+++ b/libs/utils/String8.cpp
@@ -136,10 +136,11 @@
 
 void initialize_string8()
 {
-#ifdef LIBUTILS_NATIVE
-	  // Bite me, Darwin!
-		gDarwinIsReallyAnnoying = gDarwinCantLoadAllObjects;
-#endif
+    // HACK: This dummy dependency forces linking libutils Static.cpp,
+    // which is needed to initialize String8/String16 classes.
+    // These variables are named for Darwin, but are needed elsewhere too,
+    // including static linking on any platform.
+    gDarwinIsReallyAnnoying = gDarwinCantLoadAllObjects;
 
     SharedBuffer* buf = SharedBuffer::alloc(1);
     char* str = (char*)buf->data();
