OSDN Git Service

Use GCC visibility to reduce the size of libdvm by 10%
[android-x86/dalvik.git] / vm / Dvm.mk
index b5d326b..ddc8519 100644 (file)
--- a/vm/Dvm.mk
+++ b/vm/Dvm.mk
@@ -26,6 +26,7 @@
 #
 LOCAL_CFLAGS += -fstrict-aliasing -Wstrict-aliasing=2 -fno-align-jumps
 #LOCAL_CFLAGS += -DUSE_INDIRECT_REF
+LOCAL_CFLAGS += -include "dalvikdefines.h"
 
 #
 # Optional features.  These may impact the size or performance of the VM.
@@ -64,6 +65,7 @@ ifeq ($(dvm_make_debug_vm),true)
   # - GDB helpers enabled
   # - LOGV
   # - assert()
+  # - full ELF symbols
   #
   LOCAL_CFLAGS += -DWITH_INSTR_CHECKS
   LOCAL_CFLAGS += -DWITH_EXTRA_OBJECT_VALIDATION
@@ -83,6 +85,7 @@ else  # !dvm_make_debug_vm
   # - all development features disabled
   # - compiler optimizations enabled (redundant for "release" builds)
   # - (debugging and profiling still enabled)
+  # - minimize ELF symbols to reduce code size by 10%
   #
   #LOCAL_CFLAGS += -DNDEBUG -DLOG_NDEBUG=1
   # "-O2" is redundant for device (release) but useful for sim (debug)
@@ -91,6 +94,8 @@ else  # !dvm_make_debug_vm
   LOCAL_CFLAGS += -DDVM_SHOW_EXCEPTION=1
   # if you want to try with assertions on the device, add:
   #LOCAL_CFLAGS += -UNDEBUG -DDEBUG=1 -DLOG_NDEBUG=1 -DWITH_DALVIK_ASSERT
+  # use GCC Visibility to reduce the footprint of runtime library
+  LOCAL_CFLAGS += -fvisibility=hidden
 endif  # !dvm_make_debug_vm
 
 # bug hunting: checksum and verify interpreted stack when making JNI calls
@@ -123,6 +128,7 @@ LOCAL_SRC_FILES := \
        SignalCatcher.c \
        StdioConverter.c \
        Sync.c \
+       TestCompability.c \
        Thread.c \
        UtfString.c \
        alloc/clz.c.arm \
@@ -278,6 +284,7 @@ ifeq ($(dvm_arch),arm)
     LOCAL_SRC_FILES += \
                compiler/codegen/arm/RallocUtil.c \
                compiler/codegen/arm/$(dvm_arch_variant)/Codegen.c \
+               compiler/codegen/arm/$(dvm_arch_variant)/CallingConvention.S \
                compiler/codegen/arm/Assemble.c \
                compiler/codegen/arm/ArchUtility.c \
                compiler/codegen/arm/LocalOptimizations.c \
@@ -290,10 +297,10 @@ ifeq ($(dvm_arch),x86)
   ifeq ($(dvm_os),linux)
     MTERP_ARCH_KNOWN := true
     LOCAL_SRC_FILES += \
-               arch/x86/Call386ABI.S \
-               arch/x86/Hints386ABI.c \
-               mterp/out/InterpC-x86.c \
-               mterp/out/InterpAsm-x86.S
+               arch/$(dvm_arch_variant)/Call386ABI.S \
+               arch/$(dvm_arch_variant)/Hints386ABI.c \
+               mterp/out/InterpC-$(dvm_arch_variant).c \
+               mterp/out/InterpAsm-$(dvm_arch_variant).S
   endif
 endif
 
@@ -329,3 +336,7 @@ ifeq ($(MTERP_ARCH_KNOWN),false)
   LOCAL_CFLAGS += -DdvmAsmInstructionStart=0 -DdvmAsmInstructionEnd=0 \
        -DdvmAsmSisterStart=0 -DdvmAsmSisterEnd=0 -DDVM_NO_ASM_INTERP=1
 endif
+
+ifeq ($(TEST_VM_IN_ECLAIR),true)
+  LOCAL_CFLAGS += -DTEST_VM_IN_ECLAIR
+endif