From 3cec6eca929de5d627a8cc1fbe72c564ba5175cc Mon Sep 17 00:00:00 2001 From: Nikola Veljkovic Date: Thu, 21 May 2015 18:23:55 +0200 Subject: [PATCH] [MIPS] Do not use compact branches until GDB supports them GDB does not yet have support for compact branches, and is not able to set a breakpoint on rtld_db_dlactivity(), which is compiled into one JIC instruction. Unfortunately, We cannot turn off generation of JIC compact branch. Instead, add unoptimized FP handling code, so GDB will have something to land on. Change-Id: Iddcf40ec018972398179018d049b8323fcd258b7 --- linker/Android.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/linker/Android.mk b/linker/Android.mk index 4a7da7608..dd4339089 100644 --- a/linker/Android.mk +++ b/linker/Android.mk @@ -38,6 +38,16 @@ LOCAL_CFLAGS += \ LOCAL_CFLAGS_arm += -D__work_around_b_19059885__ LOCAL_CFLAGS_x86 += -D__work_around_b_19059885__ +# For mips r6 (both 32bit and 64bit), GDB cannot stop on a breakpoint +# if rt.cpp is compiled with compact branches optimization. +# Unfortunately, we cannot turn generation of JIC compact branch off, +# but we can add unoptimized code which will allow GDB to insert a +# breakpoint on it. +# TODO: Remove this after GDB is fixed. +ifeq ($(TARGET_ARCH),mips64) +LOCAL_CFLAGS += -fno-omit-frame-pointer +endif + LOCAL_CONLYFLAGS += \ -std=gnu99 \