I don't know about _start (although I would guess that it probably should be a function pointer) butthe spec says that etext is supposed to be declared simply as extern etext which would make their type be int and the type of &etext and friends be an int *. (Pretty silly, but what the standard seems to say.)