commit:     1601b49ed08693f9df1ff6cbca9eeda722879230
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  8 08:29:53 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed Aug  8 08:29:53 2018 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=1601b49e

8.2.0: fix TEXTREL in libgcc on m68k (PR86224)

This patch is not yet upstream as it will need
symbol export fixes as well. But the patch is
a strict improvement of previous state WRT TEXTRELs.

Bug: https://gcc.gnu.org/PR86224
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 8.2.0/gentoo/99_all_m68k-textrel-on-libgcc.patch | 93 ++++++++++++++++++++++++
 8.2.0/gentoo/README.history                      |  1 +
 2 files changed, 94 insertions(+)

diff --git a/8.2.0/gentoo/99_all_m68k-textrel-on-libgcc.patch 
b/8.2.0/gentoo/99_all_m68k-textrel-on-libgcc.patch
new file mode 100644
index 0000000..a2aa100
--- /dev/null
+++ b/8.2.0/gentoo/99_all_m68k-textrel-on-libgcc.patch
@@ -0,0 +1,93 @@
+https://gcc.gnu.org/PR86224
+
+From 1d89df42bdaf0745fd2a0d294471ac16f0553707 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <[email protected]>
+Date: Sat, 28 Jul 2018 11:33:27 +0100
+Subject: [PATCH] libgcc: m68k: avoid absolute relocation in shared library
+
+Signed-off-by: Sergei Trofimovich <[email protected]>
+---
+ libgcc/config/m68k/lb1sf68.S | 19 ++++++++++++++-----
+ 1 file changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/libgcc/config/m68k/lb1sf68.S b/libgcc/config/m68k/lb1sf68.S
+index 325a7c17d9b..16c6dc3f5a7 100644
+--- a/libgcc/config/m68k/lb1sf68.S
++++ b/libgcc/config/m68k/lb1sf68.S
+@@ -435,7 +435,10 @@ $_exception_handler:
+       .text
+       FUNC(__mulsi3)
+       .globl  SYM (__mulsi3)
++      .globl  SYM (__mulsi3_internal)
++      .hidden SYM (__mulsi3_internal)
+ SYM (__mulsi3):
++SYM (__mulsi3_internal):
+       movew   sp@(4), d0      /* x0 -> d0 */
+       muluw   sp@(10), d0     /* x0*y1 */
+       movew   sp@(6), d1      /* x1 -> d1 */
+@@ -458,7 +461,10 @@ SYM (__mulsi3):
+       .text
+       FUNC(__udivsi3)
+       .globl  SYM (__udivsi3)
++      .globl  SYM (__udivsi3_internal)
++      .hidden SYM (__udivsi3_internal)
+ SYM (__udivsi3):
++SYM (__udivsi3_internal):
+ #ifndef __mcoldfire__
+       movel   d2, sp@-
+       movel   sp@(12), d1     /* d1 = divisor */
+@@ -534,7 +540,10 @@ L2:       subql   IMM (1),d4
+       .text
+       FUNC(__divsi3)
+       .globl  SYM (__divsi3)
++      .globl  SYM (__divsi3_internal)
++      .hidden SYM (__divsi3_internal)
+ SYM (__divsi3):
++SYM (__divsi3_internal):
+       movel   d2, sp@-
+ 
+       moveq   IMM (1), d2     /* sign of result stored in d2 (=1 or =-1) */
+@@ -557,7 +566,7 @@ L1:        movel   sp@(8), d0      /* d0 = dividend */
+ 
+ L2:   movel   d1, sp@-
+       movel   d0, sp@-
+-      PICCALL SYM (__udivsi3) /* divide abs(dividend) by abs(divisor) */
++      PICCALL SYM (__udivsi3_internal)        /* divide abs(dividend) by 
abs(divisor) */
+       addql   IMM (8), sp
+ 
+       tstb    d2
+@@ -577,13 +586,13 @@ SYM (__umodsi3):
+       movel   sp@(4), d0      /* d0 = dividend */
+       movel   d1, sp@-
+       movel   d0, sp@-
+-      PICCALL SYM (__udivsi3)
++      PICCALL SYM (__udivsi3_internal)
+       addql   IMM (8), sp
+       movel   sp@(8), d1      /* d1 = divisor */
+ #ifndef __mcoldfire__
+       movel   d1, sp@-
+       movel   d0, sp@-
+-      PICCALL SYM (__mulsi3)  /* d0 = (a/b)*b */
++      PICCALL SYM (__mulsi3_internal) /* d0 = (a/b)*b */
+       addql   IMM (8), sp
+ #else
+       mulsl   d1,d0
+@@ -603,13 +612,13 @@ SYM (__modsi3):
+       movel   sp@(4), d0      /* d0 = dividend */
+       movel   d1, sp@-
+       movel   d0, sp@-
+-      PICCALL SYM (__divsi3)
++      PICCALL SYM (__divsi3_internal)
+       addql   IMM (8), sp
+       movel   sp@(8), d1      /* d1 = divisor */
+ #ifndef __mcoldfire__
+       movel   d1, sp@-
+       movel   d0, sp@-
+-      PICCALL SYM (__mulsi3)  /* d0 = (a/b)*b */
++      PICCALL SYM (__mulsi3_internal) /* d0 = (a/b)*b */
+       addql   IMM (8), sp
+ #else
+       mulsl   d1,d0
+-- 
+2.18.0
+

diff --git a/8.2.0/gentoo/README.history b/8.2.0/gentoo/README.history
index b6ba307..e16832f 100644
--- a/8.2.0/gentoo/README.history
+++ b/8.2.0/gentoo/README.history
@@ -1,5 +1,6 @@
 1.1            TODO
        + 98_all_sh_textrel-on-libitm.patch
+       + 99_all_m68k-textrel-on-libgcc.patch
 1.0            08 Aug 2018
        + 95_all_ia64-TEXTREL.patch
        + 97_all_disable-systemtap-switch.patch

Reply via email to