In config/mips/linux.h, the macro ASM_DECLARE_FUNCTION_SIZE() doesn't actually emit the .size directive. Testcase follows.
% cat tst.c int func1(void) { return(1); } % mips-linux-gcc -c tst.c % mips-linux-readelf -s tst.o Symbol table '.symtab' contains 11 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 FILE LOCAL DEFAULT ABS tst.c 2: 00000000 0 SECTION LOCAL DEFAULT 1 3: 00000000 0 SECTION LOCAL DEFAULT 3 4: 00000000 0 SECTION LOCAL DEFAULT 4 5: 00000000 0 SECTION LOCAL DEFAULT 8 6: 00000000 0 SECTION LOCAL DEFAULT 5 7: 00000000 0 SECTION LOCAL DEFAULT 6 8: 00000000 0 SECTION LOCAL DEFAULT 9 9: 00000000 0 FUNC GLOBAL DEFAULT 1 func1 10: 00000000 0 OBJECT GLOBAL DEFAULT UND _gp_disp Will attach a patch after bug is opened. -- Summary: .size directive not emitted for mips-linux Product: gcc Version: 3.3.4 Status: UNCONFIRMED Severity: normal Priority: P2 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: angela at releasedominatrix dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: mips-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19370