diff options
author | Dan Egnor <egnor@google.com> | 2010-05-06 00:55:09 -0700 |
---|---|---|
committer | Dan Egnor <egnor@google.com> | 2010-05-06 01:03:31 -0700 |
commit | 08b3d2e5ef01a5114424a871934dd9fc153352c0 (patch) | |
tree | 7768ecd2c0308f149cb8abb1746a0e7bc1bdae8b /libs/binder | |
parent | df7ccbc8ff0d93a708a7fa1e57469d3f93ceda5c (diff) | |
download | frameworks_base-08b3d2e5ef01a5114424a871934dd9fc153352c0.zip frameworks_base-08b3d2e5ef01a5114424a871934dd9fc153352c0.tar.gz frameworks_base-08b3d2e5ef01a5114424a871934dd9fc153352c0.tar.bz2 |
Make static versions of libutils and libbinder.
Fix some small static-initialization-order issues (and a static-
initializers-missing issue) that result from doing so. The static
libraries don't actually get used for anything real at the moment --
they're used for perf tests of bug 2660235.
Bug: 2660235
Change-Id: Iee2f38f79cc93b395e8d0a5a144ed92461f5ada0
Diffstat (limited to 'libs/binder')
-rw-r--r-- | libs/binder/Android.mk | 49 | ||||
-rw-r--r-- | libs/binder/Binder.cpp | 5 |
2 files changed, 28 insertions, 26 deletions
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 - -LOCAL_LDLIBS += -lpthread - -LOCAL_SHARED_LIBRARIES := \ - liblog \ - libcutils \ - libutils + Parcel.cpp \ + Permission.cpp \ + ProcessState.cpp \ + Static.cpp -LOCAL_MODULE:= libbinder +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) +LOCAL_LDLIBS += -lpthread +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 @@ public: // --------------------------------------------------------------------------- -String16 BBinder::sEmptyDescriptor; - BBinder::BBinder() : mExtras(NULL) { @@ -88,6 +86,9 @@ status_t BBinder::pingBinder() 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; } |