The cmpl should have its arguments reversed. It's quite possible some versions of the assembler accepts the form given, but they're wrong (and doubly confusing when used as input to sbb.)It's complaining about this:
#APP
addl %ecx,%eax ; sbbl %edx,%edx; cmpl %eax,$-1073741824; sbbl $0,%edx # dump.u_dsize, sum, flag,
#NO_APP
This was built with gcc 4.0.4 20060507 (prerelease).
I don't normally build a.out support, but I just tried and it compiled
fine with gcc 4.1.1. SO this is probably a compiler bug (almost certainly
given that it generated illegal assembler code.)