Comunidade OSDevBrasil.net
Maio 22, 2012, 08:02:30 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias: Anuncie a nossa comunidade a amigos, fóruns...
 
   Home   Ajuda Pesquisa Login Registrar  
Páginas: [1]
  Imprimir  
Autor Tópico: Compilação dos fontes do Bran kernel tutorial  (Lida 1121 vezes)
KernelPanic!
OS Newbie
*

Karma: 1
Mensagens: 22



Ver Perfil
« : 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
Mounter
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« Responder #1 : Dezembro 13, 2010, 10:17:38 »

Tenta trocar essa linha:

nasm -f aout -o start.o start.asm

por

nasm -f coff -o start.o start.asm

E me diga se deu certo... Dependendo do compilador, deve ser elf invez de coff...

Abraço

EDIT: Ia me esquecendo, o MinGW não é bom para compilar Kernels, você pode usar o cygwin ou o cross compiler que fiz:

Parte 1: http://code.google.com/p/projeto-sombra/downloads/detail?name=sdk-sombra.part1.exe&can=2&q=
Parte 2: http://code.google.com/p/projeto-sombra/downloads/detail?name=sdk-sombra.part2.rar&can=2&q=
« Última modificação: Dezembro 13, 2010, 10:24:11 por Mounter » Registrado

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

KernelPanic!
OS Newbie
*

Karma: 1
Mensagens: 22



Ver Perfil
« 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



Ver Perfil
« 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
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« 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

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

KernelPanic!
OS Newbie
*

Karma: 1
Mensagens: 22



Ver Perfil
« 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



Ver Perfil
« 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
Administrador
OS Sr. Member
*****

Karma: 12
Mensagens: 432


mrjostz@hotmail.com
Ver Perfil WWW Email
« 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

╔╗╔╦══╦╗╔╦══╦╗
║╚╝║╔╗║╚╝║╔╗║║
║╔╗║╠╣║╔╗║╠╣╠╣
╚╝╚╩╝╚╩╝╚╩╝╚╩╝

Projeto SOmBRA - http://code.google.com/p/projeto-sombra

S.O.: Ubuntu 10.04
Browser: Google Chrome 10

Páginas: [1]
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!