Re: binutils 2.15.90.0.1 break ia64 kernel crosscompiling

From: H. J. Lu
Date: Fri Mar 05 2004 - 12:11:03 EST


On Fri, Mar 05, 2004 at 03:27:25PM +0100, Herbert Poetzl wrote:
>
> Hi Folks!
>
> upgraded my Cross Compiling Toolchain[1] to binutils 2.15.90.0.1,
> recompiled gcc 3.3.3 (just to make sure), and now linux 2.6.3
> doesn't compile for ia64 anymore ...
>
> here is th funny part of the complete error log[2]
>
> ------------------------------------------------------------------
> {standard input}: Assembler messages:
> {standard input}:1268: Internal error!
> Assertion failure in md_assemble at config/tc-ia64.c line 10013.
> Please report this bug.
> ------------------------------------------------------------------
>
> so we are now down from 6 to 5 of 20 archs which compile 2.6.3
> with default config, will soon try with 2.6.4-rc*
>

I checked in this patch. Please test it as much as you can on ia64.


H.J.
----
2004-03-04 H.J. Lu <hongjiu.lu@xxxxxxxxx>

* config/tc-ia64.c (md_assemble): Properly handle NULL
align_frag.
(ia64_handle_align): Don't abort if failed to add a stop bit.

--- gas/config/tc-ia64.c.align 2004-03-03 11:49:14.000000000 -0800
+++ gas/config/tc-ia64.c 2004-03-04 15:19:37.000000000 -0800
@@ -10010,9 +10010,12 @@ md_assemble (str)
while (align_frag->fr_type != rs_align_code)
{
align_frag = align_frag->fr_next;
- assert (align_frag);
+ if (!align_frag)
+ break;
}
- if (align_frag->fr_next == frag_now)
+ /* align_frag can be NULL if there are directives in
+ between. */
+ if (align_frag && align_frag->fr_next == frag_now)
align_frag->tc_frag_data = 1;
}

@@ -10872,8 +10875,16 @@ ia64_handle_align (fragp)
if (!bytes && fragp->tc_frag_data)
{
if (fragp->fr_fix < 16)
+#if 1
+ /* FIXME: It won't work with
+ .align 16
+ alloc r32=ar.pfs,1,2,4,0
+ */
+ ;
+#else
as_bad_where (fragp->fr_file, fragp->fr_line,
_("Can't add stop bit to mark end of instruction group"));
+#endif
else
/* Bundles are always in little-endian byte order. Make sure
the previous bundle has the stop bit. */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/