This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
bootstrap/3067: Compilation with -fPIC -fexceptions fails, breaking bootstrap
- To: gcc-gnats at gcc dot gnu dot org
- Subject: bootstrap/3067: Compilation with -fPIC -fexceptions fails, breaking bootstrap
- From: marcus at roxen dot com
- Date: 6 Jun 2001 22:20:59 -0000
- Reply-To: marcus at roxen dot com
>Number: 3067
>Category: bootstrap
>Synopsis: Compilation with -fPIC -fexceptions fails, breaking bootstrap
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jun 06 15:26:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: marcus@roxen.com
>Release: 3.0 2001-05-21, 2001-05-28 and 2001-06-04
>Organization:
>Environment:
SunOS kronan.idonex.se 5.8 Generic_108529-03 i86pc i386 i86pc
>Description:
When compiling any code doing abort() with -fPIC and
-fexceptions (such as unwind-dw2.c for example), the
compiler produces a subtraction of two symbols in different
sections, prompting the assembler to say "Illegal subtraction"
and die. It can be reproduced with a minial test program
like so:
kronan:~/build/gcc-20010521/gcc% cat foo.c
void foo()
{
abort ();
}
kronan:~/build/gcc-20010521/gcc% ./xgcc -B./ -fPIC -fexceptions -c foo.c
Assembler: foo.c
"/var/tmp/ccTfkQG7.s", line 48 : Illegal subtraction
kronan:~/build/gcc-20010521/gcc%
I tested with the three most recent snapshots and got the
same result in all of them.
The generated assembler code for the trivial test program is
attached. The offending line is the one that says
.long .LFB1-.
>How-To-Repeat:
Compilation of trivial program file as described above.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="foo.s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="foo.s"
CS5maWxlCSJmb28uYyIKCS52ZXJzaW9uCSIwMS4wMSIKCS50ZXh0CgkuYWxpZ24gNAouZ2xvYmwg
Zm9vCgkudHlwZQlmb28sQGZ1bmN0aW9uCmZvbzoKLkxGQjE6CglwdXNobAklZWJwCi5MQ0ZJMDoK
CW1vdmwJJWVzcCwgJWVicAouTENGSTE6CglwdXNobAklZWJ4Ci5MQ0ZJMjoKCXN1YmwJJDQsICVl
c3AKLkxDRkkzOgoJY2FsbAkuTDIKLkwyOgoJcG9wbAklZWJ4CglhZGRsCSRfR0xPQkFMX09GRlNF
VF9UQUJMRV8rWy4tLkwyXSwgJWVieAoJY2FsbAlhYm9ydEBQTFQKLkxGRTE6Ci5MZmUxOgoJLnNp
emUJZm9vLC5MZmUxLWZvbwoJLnNlY3Rpb24JLmVoX2ZyYW1lLCJhdyIsQHByb2diaXRzCl9fRlJB
TUVfQkVHSU5fXzoKCS5sb25nCS5MRUNJRTEtLkxTQ0lFMQouTFNDSUUxOgoJLmxvbmcJMHgwCgku
Ynl0ZQkweDEKCS5zdHJpbmcJInpSIgoJLmJ5dGUJMHgxCgkuYnl0ZQkweDdjCgkuYnl0ZQkweDgK
CS5ieXRlCTB4MQoJLmJ5dGUJMHgxMAoJLmJ5dGUJMHhjCgkuYnl0ZQkweDQKCS5ieXRlCTB4NAoJ
LmJ5dGUJMHg4OAoJLmJ5dGUJMHgxCgkuYWxpZ24gNAouTEVDSUUxOgouTFNGREUxOgoJLmxvbmcJ
LkxFRkRFMS0uTEFTRkRFMQouTEFTRkRFMToKCS5sb25nCS5MQVNGREUxLV9fRlJBTUVfQkVHSU5f
XwoJLmxvbmcJLkxGQjEtLgoJLmxvbmcJLkxGRTEtLkxGQjEKCS5ieXRlCTB4MAoJLmJ5dGUJMHg0
CgkubG9uZwkuTENGSTAtLkxGQjEKCS5ieXRlCTB4ZQoJLmJ5dGUJMHg4CgkuYnl0ZQkweDg1Cgku
Ynl0ZQkweDIKCS5ieXRlCTB4NAoJLmxvbmcJLkxDRkkxLS5MQ0ZJMAoJLmJ5dGUJMHhkCgkuYnl0
ZQkweDUKCS5ieXRlCTB4NAoJLmxvbmcJLkxDRkkzLS5MQ0ZJMQoJLmJ5dGUJMHg4MwoJLmJ5dGUJ
MHgzCgkuYWxpZ24gNAouTEVGREUxOgoJLmlkZW50CSJHQ0M6IChHTlUpIDMuMCAyMDAxMDUyMSAo
cHJlcmVsZWFzZSkiCg==