Move libstdc++ into libc.
The Android build system always links against libstdc++.so anyway. Having
operator new and operator delete in a separate library means we can't use
constructors and destructors on heap-allocated objects inside the C library,
which is quite an unfortunate limitation.
This will be cheaper too; on LP64 we can stop linking against the [now empty]
libstdc++.so giving the dynamic linker one less library to worry about for
every process.
There's precedent too --- we already have no libpthread or librt.
For now I'm leaving the include files where they are, and I'm generating a
dummy libstdc++.so and libstdc++.a. We can come back and clean that up later
if all goes well.
Bug: 13367666
Change-Id: I6f3e27ea7c30d03d6394965d0400c9dc87fa83db
diff --git a/libstdc++/Android.mk b/libstdc++/Android.mk
index c7ed1f5..ff9609a 100644
--- a/libstdc++/Android.mk
+++ b/libstdc++/Android.mk
@@ -1,46 +1,15 @@
LOCAL_PATH:= $(call my-dir)
-# Common C++ flags to build this library.
-# Note that we need to access private Bionic headers
-# and define ANDROID_SMP accordingly.
-libstdc++_cflags := -Ibionic/libc/
-ifeq ($(TARGET_CPU_SMP),true)
- libstdc++_cflags += -DANDROID_SMP=1
-else
- libstdc++_cflags += -DANDROID_SMP=0
-endif
-libstdc++_cflags += -Wall -Wextra -Werror
-
include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= \
- src/one_time_construction.cpp \
- src/new.cpp \
- src/pure_virtual.cpp \
- src/typeinfo.cpp
-
+LOCAL_SRC_FILES := src/libstdc++.cpp
LOCAL_MODULE:= libstdc++
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_CFLAGS := $(libstdc++_cflags)
-
LOCAL_SYSTEM_SHARED_LIBRARIES := libc
-
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= \
- src/one_time_construction.cpp \
- src/new.cpp \
- src/pure_virtual.cpp \
- src/typeinfo.cpp
-
-LOCAL_CFLAGS := $(libstdc++_cflags)
-
+LOCAL_SRC_FILES:= src/libstdc++.cpp
LOCAL_MODULE:= libstdc++
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
LOCAL_SYSTEM_SHARED_LIBRARIES := libc
-
include $(BUILD_STATIC_LIBRARY)