Ich habe auch versucht mit ELF zu compilieren, nur mochte LD meinen mit NASM generierten Kernel16 (Sprung in PM und Call von C-Kernel [Kernel32]) nicht. Per nasm -felf ... compiliert, aber als Error: File type not recognized oder so.
Die auf Windows geporteten Versionen von gcc haben meistens irgendwelche Eigenheiten. DJGPP unterstützt nur coff und kein elf (
http://www.delorie.com/djgpp/v2faq/faq22_22.html). Wobei coff dann soweit ich weiß kein Mischen von 16 und 32 Bit code erlaubt. Cygwin hat soweit ich weiß standardmäßig auch nur eine recht gestutzte Version von gcc die vor allem unter Windows lauffähige Programme (mit abhängigkeit zur cygwin.dll) erstellt.
Deswegen wird in den Henkes Tutorials auch auf den crosscompiler umgestiegen.
Heißt das nur unter ~/bin entpacken und ich habe alle Probleme gelöst?
Wenn du mit "~/bin" einen Ordner meinst der im PATH steht, ja.
Edit: Ah ich glaub jetzt versteh ich wie du das meintest. Du brauchst kein cygwin oder sonstiges für den crosscompiler. Der wird ganz normal aufgerufen wie ein normales Windows Programm. Daher muss der ordner wo der compiler liegt im PATH von Windows sein.