fn lang_start(main: *const u8, argc: int, argv: *const *const u8) -> int {
This is the signature both required for start fns and given to the C main wrapper function generated by create_entry_fn in librustc_trans/trans/base.rs. But it's clearly the wrong type: argc and the return value should be c_int or i32, not int.