This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Recent ia64 assembler change is incompatible with gcc 3.4


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]