From a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 21 Oct 2008 07:00:00 -0700 Subject: Initial Contribution --- libdl/Android.mk | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 libdl/Android.mk (limited to 'libdl/Android.mk') diff --git a/libdl/Android.mk b/libdl/Android.mk new file mode 100644 index 0000000..661aa18 --- /dev/null +++ b/libdl/Android.mk @@ -0,0 +1,50 @@ +LOCAL_PATH:= $(call my-dir) + +# +# libdl +# + +include $(CLEAR_VARS) + +# NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from +# libgcc.a are made static to libdl.so. This in turn ensures that libraries that +# a) pull symbols from libgcc.a and b) depend on libdl.so will not rely on libdl.so +# to provide those symbols, but will instead pull them from libgcc.a. Specifically, +# we use this property to make sure libc.so has its own copy of the code from +# libgcc.a it uses. +# +# DO NOT REMOVE --exclude-libs! + +LOCAL_LDFLAGS := -Wl,--exclude-libs=libgcc.a +LOCAL_SRC_FILES:= libdl.c + +LOCAL_MODULE:= libdl + +# NOTE: libdl needs __aeabi_unwind_cpp_pr0 from libgcc.a but libgcc.a needs a +# few symbols from libc. Using --no-undefined here results in having to link +# against libc creating a circular dependency which is removed and we end up +# with missing symbols. Since this library is just a bunch of stubs, we set +# LOCAL_ALLOW_UNDEFINED_SYMBOLS to remove --no-undefined from the linker flags. +LOCAL_ALLOW_UNDEFINED_SYMBOLS := true +LOCAL_SYSTEM_SHARED_LIBRARIES := + +include $(BUILD_SHARED_LIBRARY) + +BUILD_DLTEST:=0 +ifeq ($(BUILD_DLTEST),1) + +# +# dltest +# + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES:= dltest.c + +LOCAL_MODULE:= dltest + +LOCAL_SHARED_LIBRARIES := libdl + +include $(BUILD_EXECUTABLE) + +endif -- cgit v1.1