[PATCH] .bundle_align_mode

Roland McGrath mcgrathr@google.com
Fri Mar 9 00:13:00 GMT 2012


I've tracked down the difference between 32- and 64-bit hosts, though I
don't yet understand why it's introducing this bug.

In the test case, the call "frag_align_code (0, 0)" (in s_bundle_lock,
but I added such a call in assemble_one too, which presumably could
produce a similar problem in some different case) leads to the call
"frag_new (0)" in frag_grow on 64-bit but not 32-bit.  This difference
makes sense since it does that when the frch_obstack starts running out
of space, and that obstack holds fragS structures, whose sizes varies by
host machine.

So the difference is that now there is an extra rs_fill frag before the
rs_align_code.  That rs_fill has fr_fix=0 before frag_align_code and
fr_fix=2 afterward.  That much makes sense; it's the frag for the
preceding "bkpt" instruction, which is two bytes (0xbe00).

What I don't understand is why this is causing the bug.
Any hints would be greatly appreciated.


Thanks,
Roland



More information about the Binutils mailing list