yann@1
|
1 |
See http://gcc.gnu.org/PR11901
|
yann@1
|
2 |
Should fix
|
yann@1
|
3 |
make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1
|
yann@1
|
4 |
in glibc's "make tests".
|
yann@1
|
5 |
|
yann@1
|
6 |
-------------
|
yann@1
|
7 |
|
yann@1
|
8 |
Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
|
yann@1
|
9 |
To: dank@kegel.com
|
yann@1
|
10 |
Cc: linux-sh@m17n.org
|
yann@1
|
11 |
Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
|
yann@1
|
12 |
with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
|
yann@1
|
13 |
In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
|
yann@1
|
14 |
<200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
|
yann@1
|
15 |
References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
|
yann@1
|
16 |
Date: Wed, 30 Jul 2003 12:03:01 +0900
|
yann@1
|
17 |
From: kaz Kojima <kkojima@rr.iij4u.or.jp>
|
yann@1
|
18 |
|
yann@1
|
19 |
> I'll try to write the PIC version of it,
|
yann@1
|
20 |
|
yann@1
|
21 |
Dan, does the attached patch work for you?
|
yann@1
|
22 |
|
yann@1
|
23 |
[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
|
yann@1
|
24 |
|
yann@1
|
25 |
--- gcc-3.3/gcc/config/sh/lib1funcs.asm.old Tue Jul 29 21:37:29 2003
|
yann@1
|
26 |
+++ gcc-3.3/gcc/config/sh/lib1funcs.asm Tue Jul 29 21:40:58 2003
|
yann@1
|
27 |
@@ -1792,7 +1792,17 @@
|
yann@1
|
28 |
.global GLOBAL(set_fpscr)
|
yann@1
|
29 |
GLOBAL(set_fpscr):
|
yann@1
|
30 |
lds r4,fpscr
|
yann@1
|
31 |
+#ifdef __PIC__
|
yann@1
|
32 |
+ mov.l r12,@-r15
|
yann@1
|
33 |
+ mova LOCAL(set_fpscr_L0),r0
|
yann@1
|
34 |
+ mov.l LOCAL(set_fpscr_L0),r12
|
yann@1
|
35 |
+ add r0,r12
|
yann@1
|
36 |
+ mov.l LOCAL(set_fpscr_L1),r0
|
yann@1
|
37 |
+ mov.l @(r0,r12),r1
|
yann@1
|
38 |
+ mov.l @r15+,r12
|
yann@1
|
39 |
+#else
|
yann@1
|
40 |
mov.l LOCAL(set_fpscr_L1),r1
|
yann@1
|
41 |
+#endif
|
yann@1
|
42 |
swap.w r4,r0
|
yann@1
|
43 |
or #24,r0
|
yann@1
|
44 |
#ifndef FMOVD_WORKS
|
yann@1
|
45 |
@@ -1820,8 +1830,16 @@
|
yann@1
|
46 |
mov.l r3,@(4,r1)
|
yann@1
|
47 |
#endif
|
yann@1
|
48 |
.align 2
|
yann@1
|
49 |
+#ifdef __PIC__
|
yann@1
|
50 |
+LOCAL(set_fpscr_L0):
|
yann@1
|
51 |
+ .long _GLOBAL_OFFSET_TABLE_
|
yann@1
|
52 |
+LOCAL(set_fpscr_L1):
|
yann@1
|
53 |
+ .long GLOBAL(fpscr_values@GOT)
|
yann@1
|
54 |
+#else
|
yann@1
|
55 |
LOCAL(set_fpscr_L1):
|
yann@1
|
56 |
.long GLOBAL(fpscr_values)
|
yann@1
|
57 |
+#endif
|
yann@1
|
58 |
+
|
yann@1
|
59 |
#ifdef __ELF__
|
yann@1
|
60 |
.comm GLOBAL(fpscr_values),8,4
|
yann@1
|
61 |
#else
|