Recent ia64 assembler change is incompatible with gcc 3.4
H. J. Lu
hjl@lucon.org
Tue Feb 1 21:57:00 GMT 2005
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.
More information about the Binutils
mailing list