~sergiusens/libhybris/autotests

« back to all changes in this revision

Viewing changes to hybris/common/ics/Android.mk

  • Committer: Package Import Robot
  • Author(s): Ricardo Salveti de Araujo
  • Date: 2013-06-04 07:33:11 UTC
  • Revision ID: package-import@ubuntu.com-20130604073311-20ldi2hm1axkvjl1
Tags: upstream-0.1.0+git20130601+dfb2e26
ImportĀ upstreamĀ versionĀ 0.1.0+git20130601+dfb2e26

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
LOCAL_PATH:= $(call my-dir)
 
2
include $(CLEAR_VARS)
 
3
 
 
4
LOCAL_SRC_FILES:= \
 
5
        arch/$(TARGET_ARCH)/begin.S \
 
6
        linker.c \
 
7
        linker_environ.c \
 
8
        linker_format.c \
 
9
        rt.c \
 
10
        dlfcn.c \
 
11
        debugger.c
 
12
 
 
13
ifeq ($(TARGET_ARCH),sh)
 
14
# SH-4A series virtual address range from 0x00000000 to 0x7FFFFFFF.
 
15
LINKER_TEXT_BASE := 0x70000100
 
16
else
 
17
# This is aligned to 4K page boundary so that both GNU ld and gold work.  Gold
 
18
# actually produces a correct binary with starting address 0xB0000100 but the
 
19
# extra objcopy step to rename symbols causes the resulting binary to be misaligned
 
20
# and unloadable.  Increasing the alignment adds an extra 3840 bytes in padding
 
21
# but switching to gold saves about 1M of space.
 
22
LINKER_TEXT_BASE := 0xB0001000
 
23
endif
 
24
 
 
25
# The maximum size set aside for the linker, from
 
26
# LINKER_TEXT_BASE rounded down to a megabyte.
 
27
LINKER_AREA_SIZE := 0x01000000
 
28
 
 
29
LOCAL_LDFLAGS := -Wl,-Ttext,$(LINKER_TEXT_BASE)
 
30
 
 
31
LOCAL_CFLAGS += -DPRELINK
 
32
LOCAL_CFLAGS += -DLINKER_TEXT_BASE=$(LINKER_TEXT_BASE)
 
33
LOCAL_CFLAGS += -DLINKER_AREA_SIZE=$(LINKER_AREA_SIZE)
 
34
 
 
35
# Set LINKER_DEBUG to either 1 or 0
 
36
#
 
37
LOCAL_CFLAGS += -DLINKER_DEBUG=0
 
38
 
 
39
# we need to access the Bionic private header <bionic_tls.h>
 
40
# in the linker; duplicate the HAVE_ARM_TLS_REGISTER definition
 
41
# from the libc build
 
42
ifeq ($(TARGET_ARCH)-$(ARCH_ARM_HAVE_TLS_REGISTER),arm-true)
 
43
    LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER
 
44
endif
 
45
LOCAL_CFLAGS += -I$(LOCAL_PATH)/../libc/private
 
46
 
 
47
ifeq ($(TARGET_ARCH),arm)
 
48
LOCAL_CFLAGS += -DANDROID_ARM_LINKER
 
49
else
 
50
  ifeq ($(TARGET_ARCH),x86)
 
51
    LOCAL_CFLAGS += -DANDROID_X86_LINKER
 
52
  else
 
53
    ifeq ($(TARGET_ARCH),sh)
 
54
      LOCAL_CFLAGS += -DANDROID_SH_LINKER
 
55
    else
 
56
      $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
 
57
    endif
 
58
  endif
 
59
endif
 
60
 
 
61
LOCAL_MODULE:= linker
 
62
 
 
63
LOCAL_STATIC_LIBRARIES := libc_nomalloc
 
64
 
 
65
#LOCAL_FORCE_STATIC_EXECUTABLE := true # not necessary when not including BUILD_EXECUTABLE
 
66
 
 
67
#
 
68
# include $(BUILD_EXECUTABLE)
 
69
#
 
70
# Instead of including $(BUILD_EXECUTABLE), we execute the steps to create an executable by
 
71
# hand, as we want to insert an extra step that is not supported by the build system, and
 
72
# is probably specific the linker only, so there's no need to modify the build system for
 
73
# the purpose.
 
74
 
 
75
LOCAL_MODULE_CLASS := EXECUTABLES
 
76
LOCAL_MODULE_SUFFIX := $(TARGET_EXECUTABLE_SUFFIX)
 
77
 
 
78
 
 
79
include $(BUILD_SYSTEM)/dynamic_binary.mk
 
80
 
 
81
$(linked_module): $(TARGET_CRTBEGIN_STATIC_O) $(all_objects) $(all_libraries) $(TARGET_CRTEND_O)
 
82
        $(transform-o-to-static-executable)
 
83
        @echo "target PrefixSymbols: $(PRIVATE_MODULE) ($@)"
 
84
        $(hide) $(TARGET_OBJCOPY) --prefix-symbols=__dl_ $@
 
85
 
 
86
#
 
87
# end of BUILD_EXECUTABLE hack
 
88
#
 
89
 
 
90
# we don't want crtbegin.o (because we have begin.o), so unset it
 
91
# just for this module
 
92
$(LOCAL_BUILT_MODULE): TARGET_CRTBEGIN_STATIC_O :=
 
93
# This line is not strictly necessary because the dynamic linker is built
 
94
# as a static executable, but it won't hurt if in the future we start
 
95
# building the linker as a dynamic one.
 
96
$(LOCAL_BUILT_MODULE): TARGET_CRTBEGIN_DYNAMIC_O :=