]> git.pld-linux.org Git - packages/crossppc-binutils.git/blame - binutils-mips-relocs.patch
- updated gettext BR
[packages/crossppc-binutils.git] / binutils-mips-relocs.patch
CommitLineData
101c6d27
JB
1From binutils-return-33437-listarch-binutils=sources dot redhat dot com at sources dot redhat dot com Wed May 05 17:45:08 2004
2Return-Path: <binutils-return-33437-listarch-binutils=sources dot redhat dot com at sources dot redhat dot com>
3Delivered-To: listarch-binutils at sources dot redhat dot com
4Received: (qmail 20913 invoked by alias); 5 May 2004 17:45:08 -0000
5Mailing-List: contact binutils-help at sources dot redhat dot com; run by ezmlm
6Precedence: bulk
7List-Subscribe: <mailto:binutils-subscribe at sources dot redhat dot com>
8List-Archive: <http://sources.redhat.com/ml/binutils/>
9List-Post: <mailto:binutils at sources dot redhat dot com>
10List-Help: <mailto:binutils-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
11Sender: binutils-owner at sources dot redhat dot com
12Delivered-To: mailing list binutils at sources dot redhat dot com
13Received: (qmail 20904 invoked from network); 5 May 2004 17:45:05 -0000
14Received: from unknown (HELO dmz.algor.co.uk) (62.254.210.145)
15 by sources dot redhat dot com with SMTP; 5 May 2004 17:45:05 -0000
16Received: from alg158.algor.co.uk ([62.254.210.158] helo=olympia.mips.com)
17 by dmz dot algor dot co dot uk with esmtp (Exim 3 dot 35 #1 (Debian))
18 id 1BLQgU-0007Tz-00; Wed, 05 May 2004 18:59:54 +0100
19Received: from stockwell.mips.com ([192.168.192.238])
20 by olympia dot mips dot com with esmtp (Exim 3 dot 36 #1 (Debian))
21 id 1BLQRk-0004Mi-00; Wed, 05 May 2004 18:44:40 +0100
22Subject: Re: [mips patch RFC] removal of gas embedded-pic support code
23From: David Ung <davidu at mips dot com>
24To: cgd at broadcom dot com, ica2_ts at csv dot ica dot uni-stuttgart dot de, binutils at sources dot redhat dot com
25Content-Type: text/plain
26Organization: MIPS Technologies UK
27Message-Id: <1083779079.31797.223.camel@stockwell.mips.com>
28Mime-Version: 1.0
29Date: Wed, 05 May 2004 18:44:40 +0100
30Content-Transfer-Encoding: 7bit
31X-MTUK-Scanner: Found to be clean
32X-MTUK-SpamCheck: not spam, SpamAssassin (score=-4.833, required 4, AWL,
33 BAYES_00)
34
35>At Thu, 29 Apr 2004 02:46:46 +0000 (UTC), "Thiemo Seufer" wrote:
36>> I think it is ok.
37>
38>Thanks for looking it over.
39>
40>I've checked it in. I *really* hope it really doesn't break
41>anything. 8-)
42>
43>
44>chris
45
46Chris,
47
48woops. your recent patch seem to have broke building of the compiler on
49linux. The problem occurs when building for libgcc/./_divdi3.o
50
51gas fails with:
52Error: operation combines symbols in different segments
53
54as it is trying to assemble this piece of .s code generated from gcc.
55
56 .section .eh_frame,"aw",@progbits
57$Lframe1:
58 .4byte $LECIE1-$LSCIE1
59$LSCIE1:
60 .4byte 0x0
61 .byte 0x1
62 .ascii "zR\000"
63 .uleb128 0x1
64 .sleb128 4
65 .byte 0x1f
66 .uleb128 0x1
67 .byte 0x1b
68 .byte 0xc
69 .uleb128 0x1d
70 .uleb128 0x0
71 .align 2
72$LECIE1:
73$LSFDE1:
74 .4byte $LEFDE1-$LASFDE1
75$LASFDE1:
76 .4byte $LASFDE1-$Lframe1
77 .4byte $LFB42-. **
78 .4byte $LFE42-$LFB42
79 .uleb128 0x0
80
81** $LFB42 is from the text section of divdi3.
82
83I've reverted back the necessary changes to your patch, so that it now
84works with the above.
85
86David.
87
88
89
101c6d27
JB
90Index: gas/ChangeLog
91===================================================================
92RCS file: /cvsroot/gcc/src-cvs/src/gas/ChangeLog,v
93retrieving revision 1.2114
94diff -u -r1.2114 ChangeLog
95--- gas/ChangeLog 29 Apr 2004 05:14:20 -0000 1.2114
96+++ gas/ChangeLog 5 May 2004 17:38:51 -0000
97@@ -1,0 +1,6 @@
98+2004-05-05 David Ung <davidu@mips.com>
99+
100+ * config/tc-mips.c (md_apply_fix3): Revert last change.
101+ (tc_gen_reloc): Put back pc rel handling.
102+ * config/tc-mips.h: Defines DIFF_EXPR_OK.
103+
3b6688bf
JB
104--- gas/config/tc-mips.c.orig 2006-07-15 20:23:51.000000000 +0200
105+++ gas/config/tc-mips.c 2006-07-17 10:51:06.164440000 +0200
106@@ -11736,8 +11736,6 @@
ed5ad4ca 107
101c6d27
JB
108 buf = (bfd_byte *) (fixP->fx_frag->fr_literal + fixP->fx_where);
109
3b6688bf 110- assert (!fixP->fx_pcrel || fixP->fx_r_type == BFD_RELOC_16_PCREL_S2);
ed5ad4ca
JB
111-
112 /* Don't treat parts of a composite relocation as done. There are two
113 reasons for this:
114
3b6688bf 115@@ -13562,8 +13560,6 @@
101c6d27 116
b37fb947
JB
117 if (fixp->fx_pcrel)
118 {
119- assert (fixp->fx_r_type == BFD_RELOC_16_PCREL_S2);
120-
121 /* At this point, fx_addnumber is "symbol offset - pcrel address".
122 Relocations want only the symbol offset. */
123 reloc->addend = fixp->fx_addnumber + reloc->address;
3b6688bf 124@@ -13588,6 +13584,34 @@
101c6d27
JB
125 }
126
127 code = fixp->fx_r_type;
128+ if (fixp->fx_pcrel)
129+ {
130+ switch (code)
131+ {
132+ case BFD_RELOC_8:
133+ code = BFD_RELOC_8_PCREL;
134+ break;
135+ case BFD_RELOC_16:
136+ code = BFD_RELOC_16_PCREL;
137+ break;
138+ case BFD_RELOC_32:
139+ code = BFD_RELOC_32_PCREL;
140+ break;
141+ case BFD_RELOC_64:
142+ code = BFD_RELOC_64_PCREL;
143+ break;
144+ case BFD_RELOC_8_PCREL:
145+ case BFD_RELOC_16_PCREL:
146+ case BFD_RELOC_32_PCREL:
147+ case BFD_RELOC_64_PCREL:
148+ case BFD_RELOC_16_PCREL_S2:
149+ break;
150+ default:
151+ as_bad_where (fixp->fx_file, fixp->fx_line,
152+ _("Cannot make %s relocation PC relative"),
153+ bfd_get_reloc_code_name (code));
154+ }
155+ }
156
b37fb947
JB
157 reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
158 if (reloc->howto == NULL)
101c6d27
JB
159Index: gas/config/tc-mips.h
160===================================================================
161RCS file: /cvsroot/gcc/src-cvs/src/gas/config/tc-mips.h,v
162retrieving revision 1.35
163diff -u -r1.35 tc-mips.h
164--- gas/config/tc-mips.h 29 Apr 2004 05:14:22 -0000 1.35
165+++ gas/config/tc-mips.h 5 May 2004 17:38:51 -0000
166@@ -58,6 +58,10 @@
167
168 #define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2)
169
170+/* We permit PC relative difference expressions when generating
171+ embedded PIC code. */
172+#define DIFF_EXPR_OK
173+
174 /* Tell assembler that we have an itbl_mips.h header file to include. */
175 #define HAVE_ITBL_CPU
176
This page took 0.0656 seconds and 4 git commands to generate.