diff options
Diffstat (limited to 'linker')
-rw-r--r-- | linker/Android.mk | 13 | ||||
-rw-r--r-- | linker/linker.c | 2 | ||||
-rw-r--r-- | linker/linker.h | 4 |
3 files changed, 18 insertions, 1 deletions
diff --git a/linker/Android.mk b/linker/Android.mk index 52f7ce3b1..0cbaf366a 100644 --- a/linker/Android.mk +++ b/linker/Android.mk @@ -14,12 +14,17 @@ ifeq ($(TARGET_ARCH),sh) # SH-4A series virtual address range from 0x00000000 to 0x7FFFFFFF. LINKER_TEXT_BASE := 0x70000100 else +ifneq ($(TARGET_USES_2G_VM_SPLIT),true) # This is aligned to 4K page boundary so that both GNU ld and gold work. Gold # actually produces a correct binary with starting address 0xB0000100 but the # extra objcopy step to rename symbols causes the resulting binary to be misaligned # and unloadable. Increasing the alignment adds an extra 3840 bytes in padding # but switching to gold saves about 1M of space. LINKER_TEXT_BASE := 0xB0001000 +else +LINKER_TEXT_BASE := 0x70001000 +LOCAL_CFLAGS += -DVM_SPLIT_2G +endif endif # The maximum size set aside for the linker, from @@ -42,6 +47,14 @@ LOCAL_CFLAGS += -DLINKER_DEBUG=0 ifeq ($(TARGET_ARCH)-$(ARCH_ARM_HAVE_TLS_REGISTER),arm-true) LOCAL_CFLAGS += -DHAVE_ARM_TLS_REGISTER endif +ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true) + LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451 +endif + +ifeq ($(TARGET_HAVE_TEGRA_ERRATA_657451),true) + LOCAL_CFLAGS += -DHAVE_TEGRA_ERRATA_657451 +endif + LOCAL_CFLAGS += -I$(LOCAL_PATH)/../libc/private ifeq ($(TARGET_ARCH),arm) diff --git a/linker/linker.c b/linker/linker.c index 42a5205b3..bb31703bf 100644 --- a/linker/linker.c +++ b/linker/linker.c @@ -53,7 +53,7 @@ #include "ba.h" #define ALLOW_SYMBOLS_FROM_MAIN 1 -#define SO_MAX 96 +#define SO_MAX 128 /* Assume average path length of 64 and max 8 paths */ #define LDPATH_BUFSIZE 512 diff --git a/linker/linker.h b/linker/linker.h index 68ac275c4..85969736a 100644 --- a/linker/linker.h +++ b/linker/linker.h @@ -159,6 +159,10 @@ extern soinfo libdl_info; #define LIBBASE 0x60000000 #define LIBLAST 0x70000000 #define LIBINC 0x00100000 +#elif defined(VM_SPLIT_2G) +#define LIBBASE 0x40000000 +#define LIBLAST 0x50000000 +#define LIBINC 0x00100000 #else #define LIBBASE 0x80000000 #define LIBLAST 0x90000000 |