Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
After I've downloaded a new version of ld(2.15.90.0.1.1 20040303 SuSE Linux) and gcc(3.3.3 SuSE Linux), grub wouldn't load my kernel. Before updating it works.
the .ctors and .dtors sections were Djgpp-specific (or gcc 2.95.y specific), iirc ... you should get the newly-defined C++ ABI and see how you're expected to find information about global objects ...
Thank you for replying, but what means ABI do you mean API? I programm only in c not in cpp. I find out that grub is able to load my kernel if I write else it won't find out which kernel type I use:
kernel --type=netbsd (fd0)/boot/kernel.bin
but then grub doesn't pass the multiboot info struct address to eax. What can I do? I'm using grub 0.94.
API is an Application Programming Interface, ie a collection of functions that you (as a programmer) can use to interoperate with some code.
the ABI is the Apllication BINARY interface, ie a collection of rules that the compiler/linker/loader have to follow in order to produce interoperable objects. For instance, the ABI will define how symbol names should be presented (that can be as easy as putting an '_' in front of the symbol name, or be as complex as C++ name mangling)