>> ld: error: start.o:1:1: invalid character > > The file has an unrecognized format. > Indeed that first file is generated by NASM. Are the other errors cascaded from this? Also, what format would ld expect, because start.o has to be a flat binary. (I couldn't reply to Andreas directly because of an error.)