From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: "community@altlinux.ru" Date: Sun, 04 Sep 2005 11:45:37 +0400 From: anterior Content-Type: text/plain; format=flowed; delsp=yes; charset=koi8-r MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: User-Agent: Opera M2/8.01 (Linux, build 1204) Subject: [Comm] =?koi8-r?b?68/N0MnM0cPJ0SBsaW51eC0wLjAuMSA9Pj8=?= X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Sep 2005 02:45:50 -0000 Archived-At: List-Archive: List-Post: Привет пингвиноидам! Тут я вобщем раздобыл linux-0.01.tar.gz. Хотел на ее основе написать свою ОС (побаловаться ;) Но чего-то не могу скомпилировать linux-0.01(без изменений в коде). Видать GCC, GAS не подходят :( Может кто-то из вас пробовал баловаться так же как и я? Во первых мне пришлось подкорректировать Makefile. Часть его выглядела так: AS86 =as -0 -a CC86 =cc -0 LD86 =ld -0 AS =gas LD =gld LDFLAGS =-s -x -M CC =gcc CFLAGS =-Wall -O -fstrength-reduce -fomit-frame-pointer -fcombine-regs CPP =gcc -E -nostdinc -Iinclude ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o LIBS =lib/lib.a .c.s: $(CC) $(CFLAGS) \ -nostdinc -Iinclude -S -o $*.s $< .s.o: $(AS) -c -o $*.o $< .c.o: $(CC) $(CFLAGS) \ -nostdinc -Iinclude -c -o $*.o $< all: Image Image: boot/boot tools/system tools/build tools/build boot/boot tools/system > Image sync Я его изменил. Теперь он выглядел так: AS86 =as86 -0 -a CC86 =cc -0 LD86 =ld86 -0 AS =as LD =ld LDFLAGS =-s -x -M CC =cc CFLAGS =-Wall -O -fstrength-reduce -fomit-frame-pointer # Я убрал флаг -fcombine-regs (он отсутствует в gcc) CPP =cpp -E -nostdinc -Iinclude ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o LIBS =lib/lib.a .c.s: $(CC) $(CFLAGS) \ -nostdinc -Iinclude -S -o $*.s $< .s.o: $(AS) -c -o $*.o $< # Я убрал аттрибут -c так как тоже его нет в AS .c.o: $(CC) $(CFLAGS) \ -nostdinc -Iinclude -c -o $*.o $< Ну понятное дело что теперь у меня вряд-ли что нибудь скомпилируется. $make as -o boot/head.o boot/head.s boot/head.s: Assembler messages: boot/head.s:168: Error: alignment not a power of 2 make: *** [boot/head.o] Ошибка 1 Это первая ошибка. Далее шли разного рода ошибки. В основном были там где __asm__(... Их приходилось просто убирать. Но и в конце концов выходили ошибки Undefined reference. Вот такие дела. Может все равно возможно как-то скомпилировать это ядро. И еще: Кто знает киньте какие ссылки на статьи по написанию ОС с использованием C/C++. gcc version 3.2.3 (ALT Linux, build 3.2.3-alt2) GNU ld version 2.14.90.0.6 20030820 ld86 version: 0.16.3 -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/