You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
6.1 KiB
139 lines
6.1 KiB
LOCAL_PATH := $(call my-dir)
|
|
|
|
# libandroid_support is only needed on LP32.
|
|
ifeq ($(filter $(NDK_KNOWN_DEVICE_ABI64S),$(TARGET_ARCH_ABI)),)
|
|
|
|
ifneq ($(LIBCXX_FORCE_REBUILD),true) # Using prebuilt
|
|
|
|
LIBCXX_LIBS := ../../cxx-stl/llvm-libc++/libs/$(TARGET_ARCH_ABI)
|
|
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := android_support
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
|
|
LOCAL_SRC_FILES := $(LIBCXX_LIBS)/lib$(LOCAL_MODULE)$(TARGET_LIB_EXTENSION)
|
|
include $(PREBUILT_STATIC_LIBRARY)
|
|
|
|
else # Building
|
|
|
|
android_support_cflags := \
|
|
-D_GNU_SOURCE \
|
|
-Drestrict=__restrict__ \
|
|
-ffunction-sections \
|
|
-fdata-sections \
|
|
-fvisibility=hidden \
|
|
|
|
android_support_c_includes := \
|
|
$(BIONIC_PATH)/libc \
|
|
$(BIONIC_PATH)/libc/upstream-openbsd/android/include \
|
|
$(BIONIC_PATH)/libm \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/android/include \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src \
|
|
|
|
android_support_cflags += \
|
|
-include freebsd-compat.h \
|
|
-include openbsd-compat.h \
|
|
-include $(LOCAL_PATH)/src/support_preinclude.h \
|
|
-D__BIONIC_BUILD_FOR_ANDROID_SUPPORT \
|
|
-Werror \
|
|
|
|
android_support_sources := \
|
|
$(BIONIC_PATH)/libc/bionic/c32rtomb.cpp \
|
|
$(BIONIC_PATH)/libc/bionic/locale.cpp \
|
|
$(BIONIC_PATH)/libc/bionic/mbrtoc32.cpp \
|
|
$(BIONIC_PATH)/libc/bionic/wchar.cpp \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcscat.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcschr.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcslen.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcsncmp.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcsncpy.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcspbrk.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcsrchr.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcsspn.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcsstr.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wcstok.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wmemchr.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wmemcmp.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wmemcpy.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wmemmove.c \
|
|
$(BIONIC_PATH)/libc/upstream-freebsd/lib/libc/string/wmemset.c \
|
|
$(BIONIC_PATH)/libc/upstream-openbsd/lib/libc/locale/mbtowc.c \
|
|
$(BIONIC_PATH)/libc/upstream-openbsd/lib/libc/stdlib/imaxabs.c \
|
|
$(BIONIC_PATH)/libc/upstream-openbsd/lib/libc/stdlib/imaxdiv.c \
|
|
$(BIONIC_PATH)/libm/digittoint.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_acos.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_acosh.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_asin.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_atan2.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_atanh.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_cosh.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_exp.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_hypot.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_log.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_log10.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_log2.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_log2f.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_logf.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_remainder.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_sinh.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/e_sqrt.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/k_cos.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/k_exp.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/k_rem_pio2.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/k_sin.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/k_tan.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_asinh.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_atan.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_cbrt.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_cos.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_erf.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_exp2.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_expm1.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_frexp.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_frexpf.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_log1p.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_logb.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_nextafter.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_remquo.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_rint.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_sin.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_tan.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_tanh.c \
|
|
src/locale_support.cpp \
|
|
src/posix_memalign.cpp \
|
|
src/swprintf.cpp \
|
|
src/wcstox.cpp \
|
|
|
|
ifeq (x86,$(TARGET_ARCH_ABI))
|
|
# Replaces broken implementations in x86 libm.so
|
|
android_support_sources += \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_scalbln.c \
|
|
$(BIONIC_PATH)/libm/upstream-freebsd/lib/msun/src/s_scalbn.c \
|
|
|
|
# fake_long_double.c doesn't define this for x86.
|
|
# TODO: seems like we don't pass .S files to the assembler?
|
|
#android_support_c_includes += $(BIONIC_PATH)/libc/arch-x86/include
|
|
#android_support_sources += $(BIONIC_PATH)/libm/x86/lrint.S
|
|
endif
|
|
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := android_support
|
|
LOCAL_LICENSE_KINDS := SPDX-license-identifier-BSD
|
|
LOCAL_LICENSE_CONDITIONS := notice
|
|
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE
|
|
LOCAL_SRC_FILES := $(android_support_sources)
|
|
LOCAL_C_INCLUDES := $(android_support_c_includes)
|
|
LOCAL_CFLAGS := $(android_support_cflags)
|
|
LOCAL_ARM_NEON := false
|
|
|
|
LOCAL_CPPFLAGS := \
|
|
-fvisibility-inlines-hidden \
|
|
-std=gnu++11 \
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
endif # Prebuilt/building
|
|
|
|
endif # LP32
|