aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc-4.6/gcc/Makefile.in3
-rw-r--r--gcc-4.6/gcc/config/arm/lib1funcs.asm6
-rw-r--r--gcc-4.8/libgcc/Makefile.in2
-rw-r--r--gcc-4.8/libgcc/config/arm/lib1funcs.S6
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc-4.6/gcc/Makefile.in b/gcc-4.6/gcc/Makefile.in
index 031db74b2..e8a444c9a 100644
--- a/gcc-4.6/gcc/Makefile.in
+++ b/gcc-4.6/gcc/Makefile.in
@@ -646,12 +646,13 @@ INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
endif
# Options to use when compiling libgcc2.a.
+# Adding -funwind-tables to debug idiv0 cases for Android
#
LIBGCC2_DEBUG_CFLAGS = -g
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
$(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
- -fno-stack-protector \
+ -fno-stack-protector -funwind-tables \
$(INHIBIT_LIBC_CFLAGS)
# Additional options to use when compiling libgcc2.a.
diff --git a/gcc-4.6/gcc/config/arm/lib1funcs.asm b/gcc-4.6/gcc/config/arm/lib1funcs.asm
index 2e76c01df..a921b8fd0 100644
--- a/gcc-4.6/gcc/config/arm/lib1funcs.asm
+++ b/gcc-4.6/gcc/config/arm/lib1funcs.asm
@@ -1261,10 +1261,16 @@ LSYM(Lover12):
ARM_FUNC_START div0
#endif
+ /* ANDROID LOCAL BEGIN */
+ /* Adding stack unwinding directives to debug divide-by-0 errors */
+ .fnstart
+ .save {r1, lr}
do_push {r1, lr}
mov r0, #SIGFPE
bl SYM(raise) __PLT__
RETLDM r1
+ .fnend
+ /* ANDROID LOCAL END */
#ifdef __ARM_EABI__
FUNC_END aeabi_ldiv0
diff --git a/gcc-4.8/libgcc/Makefile.in b/gcc-4.8/libgcc/Makefile.in
index ba1a9756c..a824e82fd 100644
--- a/gcc-4.8/libgcc/Makefile.in
+++ b/gcc-4.8/libgcc/Makefile.in
@@ -221,11 +221,13 @@ DECNUMINC =
endif
# Options to use when compiling libgcc2.a.
+# Adding -funwind-tables to debug idiv0 cases for Android
#
LIBGCC2_DEBUG_CFLAGS = -g
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \
-fbuilding-libgcc -fno-stack-protector \
+ -funwind-tables \
$(INHIBIT_LIBC_CFLAGS)
# Additional options to use when compiling libgcc2.a.
diff --git a/gcc-4.8/libgcc/config/arm/lib1funcs.S b/gcc-4.8/libgcc/config/arm/lib1funcs.S
index 8b140d9da..685e53299 100644
--- a/gcc-4.8/libgcc/config/arm/lib1funcs.S
+++ b/gcc-4.8/libgcc/config/arm/lib1funcs.S
@@ -1326,10 +1326,16 @@ LSYM(Lover12):
ARM_FUNC_START div0
#endif
+ /* ANDROID LOCAL BEGIN */
+ /* Adding stack unwinding directives to debug divide-by-0 errors */
+ .fnstart
+ .save {r1, lr}
do_push {r1, lr}
mov r0, #SIGFPE
bl SYM(raise) __PLT__
RETLDM r1
+ .fnend
+ /* ANDROID LOCAL END */
#ifdef __ARM_EABI__
FUNC_END aeabi_ldiv0