public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* 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).