aboutsummaryrefslogtreecommitdiffstats
path: root/lang/gcc6-aux
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2016-03-16 21:08:54 +0800
committermarino <marino@FreeBSD.org>2016-03-16 21:08:54 +0800
commitb3716d035e2af7d32f48cd6070c380bff224f4d6 (patch)
tree28d3ad7a187f0c3236054d168a577058dc312e9e /lang/gcc6-aux
parent407648fee9bf2ab13f51d66777e6c7c71e19aadf (diff)
downloadfreebsd-ports-gnome-b3716d035e2af7d32f48cd6070c380bff224f4d6.tar.gz
freebsd-ports-gnome-b3716d035e2af7d32f48cd6070c380bff224f4d6.tar.zst
freebsd-ports-gnome-b3716d035e2af7d32f48cd6070c380bff224f4d6.zip
lang/gcc6-aux: Add forgotten patch (gnatdroid support)
There's no requirement to bump since lang/gcc6-aux doesn't compile the patched code. The gnatdroid ports will though.
Diffstat (limited to 'lang/gcc6-aux')
-rw-r--r--lang/gcc6-aux/files/diff-ada19
1 files changed, 19 insertions, 0 deletions
diff --git a/lang/gcc6-aux/files/diff-ada b/lang/gcc6-aux/files/diff-ada
index a10fa170c4a2..3e558455ab7f 100644
--- a/lang/gcc6-aux/files/diff-ada
+++ b/lang/gcc6-aux/files/diff-ada
@@ -1099,3 +1099,22 @@
# List of target dependent sources, overridden below as necessary
TARGET_ADA_SRCS =
+--- gcc/ada/init.c.orig
++++ gcc/ada/init.c
+@@ -2510,8 +2510,15 @@
+ {
+ mcontext_t *mcontext = &((ucontext_t *) ucontext)->uc_mcontext;
+
++#if defined (__i386__)
++ unsigned long *pc = (unsigned long *)mcontext->gregs[REG_EIP];
++ /* The pattern is "orl $0x0,(%esp)" for a probe in 32-bit mode. */
++ if (signo == SIGSEGV && pc && *pc == 0x00240c83)
++ mcontext->gregs[REG_ESP] += 4096 + 4 * sizeof (unsigned long);
++#elif defined (__ARMEL__)
+ /* ARM Bump has to be an even number because of odd/even architecture. */
+- ((mcontext_t *) mcontext)->arm_pc += 2;
++ mcontext->arm_pc += 2;
++#endif
+ }
+
+ static void