diff --git a/linker/Android.mk b/linker/Android.mk index c2d369e68..c6fb49d28 100644 --- a/linker/Android.mk +++ b/linker/Android.mk @@ -13,7 +13,12 @@ ifeq ($(TARGET_ARCH),sh) # SH-4A series virtual address range from 0x00000000 to 0x7FFFFFFF. LINKER_TEXT_BASE := 0x70000100 else -LINKER_TEXT_BASE := 0xB0000100 +# This is aligned to 4K page boundary so that both GNU ld and gold work. Gold +# actually produces a correct binary with starting adding 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 endif # The maximum size set aside for the linker, from