Page 2 of 2

Re: Bug when printing...

Posted: Tue Mar 12, 2013 12:33 pm
by Combuster
Glad that you got it working

I'm using mtools for your exactly those things you seem need for images - you can have it embed a bootsector while it creates the FAT filesystem (and even put the right values in the BPB). It also saves you from calls to sudo as it can move files in, out and around images without mounting them. (you can find an example in my platform configuration file)

Other than that, it seems like you're already depending on features of your host compiler:

Code: Select all

In file included from loader/booter/i386.c:1:
include/types.h:8:7: warning: no newline at end of file
In file included from loader/booter/i386.c:3:
loader/booter/include/idt.h:53:7: warning: no newline at end of file
loader/booter/i386.c:7: warning: #pragma pack(push[, id], <n>) is not supported on this target
loader/booter/i386.c:29: warning: #pragma pack(pop[, id], <n>) is not supported on this target
In file included from loader/booter/pic.c:1:
include/types.h:8:7: warning: no newline at end of file
loader/booter/pic.c:14: warning: 'inb' defined but not used
In file included from loader/booter/include/i386.h:4,
                 from loader/booter/main.c:1:
include/types.h:8:7: warning: no newline at end of file
loader/booter/main.c: In function 'kmain':
loader/booter/main.c:6: warning: implicit declaration of function 'init_printf'
loader/booter/main.c:5: warning: unused parameter 'argc'
loader/booter/main.c:5: warning: unused parameter 'argv'
include/clib/printf.c: In function 'dectohex':
include/clib/printf.c:15: warning: implicit declaration of function '_memset'
include/clib/printf.c:21: warning: implicit declaration of function 'reverse'
include/clib/printf.c: In function '_printf':
include/clib/printf.c:48: warning: implicit declaration of function '_strcpy'
include/clib/printf.c:29: warning: unused variable 'y'
i386.o: In function `i386_isrs_install':
i386.c:(.text+0x71): undefined reference to `memcpy'
There are two errors here. One is the "#pragma starts nethack" (GCC has an official replacement for packed structures), and the linker error is caused by some inefficient C usage. The rest of the warnings are for you to decide to act on. Getting around that and the missing base image, the thing just works as expected.

Regarding Makefiles, the wiki has quite a nice tutorial on their effective use.


I hope you can use that to get a bit further. Happy coding!

Re: Bug when printing...

Posted: Tue Mar 12, 2013 4:53 pm
by benjii
Thanks a lot for the help! I'll look at these warnings tomorrow... Perhaps I should add more CFLAGS so I won't miss such an obvious warnings...