* Recent ia64 assembler change is incompatible with gcc 3.4
@ 2005-02-01 6:06 H. J. Lu
2005-02-01 20:55 ` James E Wilson
0 siblings, 1 reply; 4+ messages in thread
From: H. J. Lu @ 2005-02-01 6:06 UTC (permalink / raw)
To: gcc, binutils
FYI, recent ia64 assembler changes add more unwind directive checks,
which lead to
/net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S: Assembler
messages:
/net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S:322: Error:
.restore outside of body region
make[6]: *** [src/ia64/unix.lo] Error 1
H.J.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent ia64 assembler change is incompatible with gcc 3.4
2005-02-01 6:06 Recent ia64 assembler change is incompatible with gcc 3.4 H. J. Lu
@ 2005-02-01 20:55 ` James E Wilson
2005-02-01 21:57 ` H. J. Lu
0 siblings, 1 reply; 4+ messages in thread
From: James E Wilson @ 2005-02-01 20:55 UTC (permalink / raw)
To: H. J. Lu; +Cc: gcc, binutils
On Mon, 2005-01-31 at 22:06, H. J. Lu wrote:
> FYI, recent ia64 assembler changes add more unwind directive checks,
> which lead to
FYI, use of the current IA-64 binutils sources is not recommended with
gcc, glibc, linux kernel, etc at the moment. At least not until I have
had a chance to fix problems caused by recent changes, which won't be
until next week. If you want to try just to help find bugs, that is
great, just don't expect it to work.
Also, FYI, there are more potentially destabilizing binutils changes
coming, so there might be more breakage.
> /net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S: Assembler
> messages:
> /net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S:322: Error:
> .restore outside of body region
> make[6]: *** [src/ia64/unix.lo] Error 1
I'm looking at this now. At first glance it appears to be a gas bug.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent ia64 assembler change is incompatible with gcc 3.4
2005-02-01 20:55 ` James E Wilson
@ 2005-02-01 21:57 ` H. J. Lu
2005-02-01 22:27 ` James E Wilson
0 siblings, 1 reply; 4+ messages in thread
From: H. J. Lu @ 2005-02-01 21:57 UTC (permalink / raw)
To: James E Wilson; +Cc: gcc, binutils
On Tue, Feb 01, 2005 at 12:54:57PM -0800, James E Wilson wrote:
> On Mon, 2005-01-31 at 22:06, H. J. Lu wrote:
> > FYI, recent ia64 assembler changes add more unwind directive checks,
> > which lead to
>
> FYI, use of the current IA-64 binutils sources is not recommended with
> gcc, glibc, linux kernel, etc at the moment. At least not until I have
> had a chance to fix problems caused by recent changes, which won't be
> until next week. If you want to try just to help find bugs, that is
> great, just don't expect it to work.
I will try.
>
> Also, FYI, there are more potentially destabilizing binutils changes
> coming, so there might be more breakage.
>
> > /net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S: Assembler
> > messages:
> > /net/gnu/export/gnu/src/gcc-3.4/gcc/libffi/src/ia64/unix.S:322: Error:
> > .restore outside of body region
> > make[6]: *** [src/ia64/unix.lo] Error 1
>
> I'm looking at this now. At first glance it appears to be a gas bug.
I think it may be a gcc bug. Consider
[hjl@gnu-4 tmp]$ cat x.s
.global foo#
.proc foo#
foo:
.prologue
.save ar.pfs, r34
alloc r34 = ar.pfs, 0, 3, 1, 0
.fframe 16
adds r12 = -16, r12
// .body
;;
.restore sp
adds r12 = 16, r12
br.ret.sptk.many b0
.endp foo#
[hjl@gnu-4 tmp]$ /opt/intel/compiler70/ia64/bin/ias -o x.o x.s
Itanium(R) Assembler, v8.0U Version 8.00.4007
Copyright (C) 1985-2004 Intel Corporation. All rights reserved.
/tmp/x.s(11) : error A2141: .restore cannot be placed in any region
except body
x.o - 1 error(s), 0 warning(s)
[hjl@gnu-4 tmp]$ gcc -c x.s
x.s: Assembler messages:
x.s:11: Error: .restore outside of body region
".body" is missing from the gcc source.
H.J.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Recent ia64 assembler change is incompatible with gcc 3.4
2005-02-01 21:57 ` H. J. Lu
@ 2005-02-01 22:27 ` James E Wilson
0 siblings, 0 replies; 4+ messages in thread
From: James E Wilson @ 2005-02-01 22:27 UTC (permalink / raw)
To: H. J. Lu; +Cc: gcc, binutils
[-- Attachment #1: Type: text/plain, Size: 527 bytes --]
On Tue, 2005-02-01 at 13:57, H. J. Lu wrote:
> I think it may be a gcc bug. Consider
> ".body" is missing from the gcc source.
I was looking at the wrong sources. gcc-4 has the .body directive, and
it wasn't until I failed to reproduce the problem that I realized that I
was looking at the wrong tree. Yes, gcc-3.4 is missing the .body.
Something like this should work. The .body can be put anywhere after
the last prologue directive, the earlier the better.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
[-- Attachment #2: patch.libffi.body --]
[-- Type: text/plain, Size: 594 bytes --]
2005-02-01 James E. Wilson <wilson@specifixinc.com>
* src/ia64/unix.S (ffi_closure_UNIX): Add missing .body directive.
Index: unix.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/ia64/unix.S,v
retrieving revision 1.5.10.1
diff -p -r1.5.10.1 unix.S
*** unix.S 10 Jun 2004 08:19:58 -0000 1.5.10.1
--- unix.S 1 Feb 2005 22:20:50 -0000
*************** ffi_closure_UNIX:
*** 273,278 ****
--- 273,279 ----
mov loc1=b0
.vframe loc2
mov loc2=sp
+ .body
/* Retrieve closure pointer and real gp. */
mov out0=gp
add gp=16,gp
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-02-01 22:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-01 6:06 Recent ia64 assembler change is incompatible with gcc 3.4 H. J. Lu
2005-02-01 20:55 ` James E Wilson
2005-02-01 21:57 ` H. J. Lu
2005-02-01 22:27 ` James E Wilson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).