KernelPanic!
OS Newbie
Karma: 1
Mensagens: 22
|
 |
« : Dezembro 13, 2010, 01:01:37 » |
|
Acompanhei o tutorial do Bran Kernel (que esta disponibilizado no site) na hora de compilar os fontes com o arquivo build.bat obtenho a seguinte mensagem de erro:
start.o: file not recognized: File format no recognized
Estou usando o mingw como compilador e o nasm no Windows XP.
|
|
|
|
|
Registrado
|
|
|
|
|
|
KernelPanic!
OS Newbie
Karma: 1
Mensagens: 22
|
 |
« Responder #2 : Dezembro 13, 2010, 11:44:17 » |
|
Substitui por coff e ainda tenho as seguintes mensagens de erro: start.asm:48: error: COFF format does not support 16-bit relocations start.asm:58: error: COFF format does not support non-32-bit relocations a mensagem de erro da linha 58 também se repete para as linhas 64 e 73
Experimentei também substituir por elf e na hora de linkar: ld: cannot perform PE operations on non PE output file 'kernel.bin'
O problema esta na parte de montagem do código em asm, então (suponho), que não tem nava a ver com o uso do mingw. Aliás por que o mingw não é bom para compilar kernels?
Você (mounter) ou alguém ja conseguiu compilar o código fonte do tutorial?
|
|
|
|
|
Registrado
|
|
|
|
KernelPanic!
OS Newbie
Karma: 1
Mensagens: 22
|
 |
« Responder #3 : Dezembro 14, 2010, 02:20:12 » |
|
Pesquisei no google a mensagem de erro (File not recorgnized) e encontrei em um forum um cara com o mesmo problema que resolveu trocando do mingw para o djgpp. Tentei compilar com o DJGPP e os arquivos .c compilam com um monte de warnings (mas geram os arquivos objeto) e na hora de linkar aparecem a seguinte mensagem
start.o:start.o:(.text+0x35): relocation truncated to fit: 16 against '_gp' start.o:start.o:(.text+0x43): relocation truncated to fit: 16 against '.text' start.o:start.o:(.text+0x4b): relocation truncated to fit: 16 against '_idtp'
Tentei também com o cygwin mas continua com a velha mensagem de erro "File not recognized"
|
|
|
|
|
Registrado
|
|
|
|
|
Mounter
|
 |
« Responder #4 : Dezembro 14, 2010, 02:06:14 » |
|
Sim, faz algum tempo que consegui compilar o código fonte deste tutorial... tente trocar o COFF por aout, pode ser que resolva estes problemas, se não qualquer coisa, posso ver se consigo compilar.
|
|
|
|
|
Registrado
|
|
|
|
KernelPanic!
OS Newbie
Karma: 1
Mensagens: 22
|
 |
« Responder #5 : Dezembro 14, 2010, 08:11:18 » |
|
Se eu utilizo coff obtenho a mensagem de erro: na montagem: start.asm:48: error: COFF format does not support 16-bit relocations start.asm:58: error: COFF format does not support non-32-bit relocations
e por aout, mensagem de erro na linkagem: start.o:start.o:(.text+0x35): relocation truncated to fit: 16 against '_gp'
|
|
|
|
« Última modificação: Dezembro 14, 2010, 08:19:04 por KernelPanic! »
|
Registrado
|
|
|
|
KernelPanic!
OS Newbie
Karma: 1
Mensagens: 22
|
 |
« Responder #6 : Dezembro 19, 2010, 07:43:50 » |
|
Consegui compilar os fontes no Linux. A montagem do arquivo assembly funcionou com elf.
Sem contar que pra funcionar tive que corrigir um monte de erros de compilação dos fontes.
O que mais me estranha é que o os fontes foram feitos para compilar no Windows, e pelo que testei é praticamente impossível de compilar estes fontes no Windows. Alguém aqui já conseguiu compilar o tutorial no Windows?
|
|
|
|
|
Registrado
|
|
|
|
|
Mounter
|
 |
« Responder #7 : Dezembro 20, 2010, 09:05:21 » |
|
O que pode acontecer é uma diferença nas versões dos compiladores, pois esses tutoriais ai já tem algum tempo e pode acontecer de ter mudado alguns detalhes neles.
|
|
|
|
|
Registrado
|
|
|
|
|