package/gcc/{arc-2019.03,9.1}.0: fix compilation of glibc
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Tue, 16 Jul 2019 21:50:01 +0000 (00:50 +0300)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 18 Jul 2019 20:33:10 +0000 (22:33 +0200)
commit3173b9df7756f2a301b9a0b42ce63577fadc106b
tree1b946ac773ad258b450863fe259baa49e9d9f724
parent69bb37d577a023b80d1cbda86311a3dff40b2f7b
package/gcc/{arc-2019.03,9.1}.0: fix compilation of glibc

When storing a TLS symbol to memory, always use an intermediate
register to load it. Otherwise the compiler generates an instruction
which couldn't be encoded and we see:

----------------------------->8---------------------------
In file included from gethstent_r.c:34:
../nss/getXXent_r.c: In function '__gethostent_r':
../nss/getXXent_r.c:168:1: error: unrecognizable insn:
 }
 ^
(insn 25 24 26 5 (set (mem:SI (plus:SI (reg/f:SI 149 virtual-outgoing-args)
                (const_int 16 [0x10])) [0  S4 A32])
        (plus:SI (reg:SI 25 r25)
            (reg:SI 174))) "../nss/getXXent_r.c":160 -1
     (nil))
during RTL pass: vregs
../nss/getXXent_r.c:168:1: internal compiler error: in extract_insn, at recog.c:2304
In file included from getnetent_r.c:34:
../nss/getXXent_r.c: In function '__getnetent_r':
../nss/getXXent_r.c:168:1: error: unrecognizable insn:
 }
 ^
(insn 25 24 26 5 (set (mem:SI (plus:SI (reg/f:SI 149 virtual-outgoing-args)
                (const_int 16 [0x10])) [0  S4 A32])
        (plus:SI (reg:SI 25 r25)
            (reg:SI 174))) "../nss/getXXent_r.c":160 -1
     (nil))
during RTL pass: vregs
../nss/getXXent_r.c:168:1: internal compiler error: in extract_insn, at recog.c:2304
----------------------------->8---------------------------

Note that this patch is not yet submitted to the GCC's master and
gcc-9-branch but will be submitted soon. That said with th bump of GCC
for ARC this patch will no longer be needed.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Evgeniy Didin <didin@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/gcc/9.1.0/0002-ARC-Fix-emitting-TLS-symbols.patch [new file with mode: 0644]
package/gcc/arc-2019.03-release/0002-ARC-Fix-emitting-TLS-symbols.patch [new file with mode: 0644]