Dennis Clarke wrote: > "/var/tmp//cc_taiSb.s", line 396 : Warning: Illegal subtraction - > symbols from different sections: ".L63", ".L73" > "/var/tmp//cc_taiSb.s", line 397 : Warning: Illegal subtraction - > symbols from different sections: ".L63", ".L73" > "/var/tmp//cc_taiSb.s", line 398 : Warning: Illegal subtraction - > symbols from different sections: ".L63", ".L73" > "/var/tmp//cc_taiSb.s", line 399 : Warning: Illegal subtraction - > symbols from different sections: ".L63", ".L73" > "/var/tmp//cc_taiSb.s", line 840 : Warning: Illegal subtraction - > symbols from different sections: ".L111", ".L141" On solaris x86 I think you will have to use the GNU assembler (i.e. GNU binutils) instead of the native Sun assembler, which does not support this capability to subtract labels in different sections. There is a discussion of the issue here: <http://gcc.gnu.org/ml/gcc-patches/2006-07/threads.html#00908> which eventually resulted in this patch: <http://gcc.gnu.org/ml/gcc-patches/2006-10/msg01747.html> which was committed to mainline: <http://gcc.gnu.org/viewcvs?view=rev&revision=118405>. However, it looks like this missed the 4.2 branch by about two weeks so you'll only see it in gcc >= 4.3. Using the GNU assembler ought to work fine for any version, though. Brian