Page 1 of 1

Linking problem

Posted: Sun Mar 19, 2006 12:11 am
by LongHorn
Linker ld puts the string at the beginning of the kernel and So the grub says not a mutiboot kernel. Tim's article says that -fwritable-strings as one way, it works perfectly for string's insidde main function and in case of strings in other functions the grub says an error. Also in that article it says that these errors won't occur if the main is called from an assembly routine but still it isn't working. I used Bkerndev article in osdever.net
i figured that it's something to do with compiling and linking. Any help

Re:Linking problem

Posted: Sun Mar 19, 2006 2:21 am
by xenos
Do you use a linker script? If you do so, you can tell ld to put strings and other data at the end of your executable, so the multiboot signature will be placed at the beginning and grub can find it.

Re:Linking problem

Posted: Mon Mar 20, 2006 11:43 am
by paulbarker
Make sure the file containing the multiboot header is given as the first argument to ld, or write a linker map to move it to the beginning of the image. Could you post the code for the multiboot header and the linker command line and possibly script you are using?