Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: najjannaj am 11. November 2005, 10:09
-
Hallo,
ich suche noch einen Helfer für U-OS oder wenigstens etwas Hilfe beim Umstellen des Systems, damit man es unter Windows kompilieren kann und das Umschreiben auf einen FAT12-Bootloader! Würde mich über jede kleine Hilfe freuen!
http://uos.maep.de
Danke im Vorraus!
Mit freundlichen Grüßen
Jan (najjannaj)
-
was wäre denn das ausser dem Makefile?
-
Wie meinst du was wäre das außer das umschreiben der Makefile?? da ich nicht mehr soviel Zeit habe wie damahls und ich auch alleine ehrlich gesagt keine Lust mehr habe an U-OS weiterzuarbeiten, frage ich um allgemeine Hilfe! Bei allem! Also als 2ter Entwickler von U-OS! Und wenn das jemand nicht möchte aber bereit wäre mir bei der Umstellung der Makefile und eines Fat12Bootloaders trozdem zu helfen wär ich auch sehr dankbar!
Hier der Fehler der bei der Komilierung unter Windows auftritt, komischerweiße bei Linux nicht, warum?
----------------------------------------
D:\uos>make
nasm -f bin ./boot/boot.asm -o bl.img
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o kernel.o kernel.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o processore/irq.o processore/irq.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o processore/idt.o processore/idt.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o processore/cpuid.o processore/cpuid.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/8259.o hw/8259.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/8253.o hw/8253.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/keyboard.o hw/keyboard.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/clock.o hw/clock.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/dma.o hw/dma.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o hw/floppy.o hw/floppy.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o mem/paging.o mem/paging.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o mem/fismem.o mem/fismem.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o io/io.o io/io.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o libc/stdlib.o libc/stdlib.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o libc/bitops.o libc/bitops.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o libc/stdio.o libc/stdio.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o libc/string.o libc/string.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o task/task.o task/task.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o task/scheduler.o task/scheduler.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o task/tss.o task/tss.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o task/semaphore.o task/semaphore.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o task/ipc/signal.o task/ipc/signal.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o video.o video.c
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o system/kprg.o system/kprg.c
system/kprg.c: In function 'halt':
system/kprg.c:95: warning: passing argument 1 of 'sig_kill' makes integer from p
ointer without a cast
system/kprg.c:97: warning: passing argument 1 of 'sig_kill' makes integer from p
ointer without a cast
gcc -nostdlib -fomit-frame-pointer -fno-builtin -Wall -march=i386 -I./header -I./header/libc -c -o system/shell.o system/shell.c
ld -Bstatic --oformat binary -okernel.bin kernel.o processore/irq.o processore/idt.o processore/cpuid.o hw/8259.o hw/8253.o hw/keyboard.o hw/clock.o hw/dma.o hw/floppy.o mem/paging.o mem/fismem.o io/io.o libc/stdlib.o libc/bitops.o libc/stdio.o libc/string.o task/task.o task/scheduler.o task/tss.o task/semaphore.o task/ipc/signal.o video.o system/kprg.o system/shell.o -Ttext 0x10000 -Map kernel.map
C:\Djgpp\bin\ld.exe: warning: cannot find entry symbol start; defaulting to 0001
0000
processore/idt.o:idt.c:(.text+0x6d7): undefined reference to `exec_irq'
system/shell.o:shell.c:(.text+0x468): undefined reference to `_memcpy'
make.exe: *** [kernel.bin] Error 1
D:\uos>
----------------------------------------
-
due musst den pointer in ein interger casten dort wo die zeilen nummer stehen...
unsigned int integer = (unsigned int) pointer;
system/kprg.c:95: warning: passing argument 1 of 'sig_kill' makes integer from p
ointer without a cast
system/kprg.c:97: warning: passing argument 1 of 'sig_kill' makes integer from p
ointer without a cast
dann must du bei allen asembler routinen die in c verlinkt sind einen underscore dafor machen....
gruss
-
Also das mit dem Pointer war mir schon bewusst, hatte ich nur vergessen ging aber trotzdem! Mir gings um die letzten 2 Fehler die ich mit dem "_" wegbekommen habe, zumindest den "exec_irq" aber ich hab in meinem kompletten Sourcecode keine "memcpy" funktion eingebaut! Hab auch extra alle dateien nochmal nach dem wort durchsucht und nichts gefunden! Warum geht es dann aber unter Linux und unter Windows nicht?? Es bleibt jetzt nur noch der Fehler übrig:
system/shell.o:shell.cTraurig.text+0x468): undefined reference to `_memcpy'
Danke schonmal!
-
na irgendwo musst du sie ja haben, sonst würde der compiler nicht mekern.
vieleicht ein extern memcopy(); oder so...
-
Doch, der gcc benutzt memcpy für Sachen wie:
char buffer[1024] = "ein string";
Bastel dir halt eine simple memcpy Funktion und es sollte funktionieren.
-
Ich wollte es grad schreiben und sehe dann wieder das wir mit SSJ7Gohan einen fähigen Entwickler hier haben! 8)