LINUX.ORG.RU

Компилятор


0

0

Собрался откомпилировать совсем древнее ядро , а к нему требуется компилятор 1.4 . Вопрос такой - иде его взять ? И можно ли на одной машине иметь 2 разных компилятора ?

anonymous

Re: Компилятор

На ftp.gnu.org лежит gcc версии 1.4.2. Иметь два компилятора в принципе можно, только другой надо ставить локально, например, в свою домашнюю директорию. И потом создавать сим-линки или править Makefile.

parser ★★ ()
Ответ на: Re: Компилятор от parser

Re: Re: Компилятор

Сразу возник вопрос : что нужно скачивать - исходники или бинарники ? Я так понимаю - бинарники вряд ли будут работать на современных версиях . А что-бы собрать компилятор с исходников - это что-то необычное для меня :-)

anonymous ()
Ответ на: Re: Компилятор от parser

Re: Re: Компилятор

Необязательно ставить в локальную. Достаточно при сборке указать префикс или постфикс (например, 32, тогда все gcc будет иметь вид gcc32, g++32 и т.п.)

jackill ★★★★★ ()
Ответ на: Re: Re: Компилятор от jackill

Re: Re: Re: Компилятор

<pre> Первоначальная конфигурация makefile 0.01 : 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 $<

Я заменил следующие 4 строки , взятые из моего текущего ядра 2.4 : CROSS_COMPILE = AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E Потом заменил CFLAGS на : CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ -fno-omit-frame-pointer -fno-strict-aliasing -fno-common -g Но кажется , флаги я зря убрал .

Сначала пришлось убрать -c из строки $(AS) -c -o $*.o $< Потом следующий глюк : boot/head.s: Assembler messages : alignment not a power of 2 В файле head.s стоит такая строка : .align 3 И компилятор обругал эту строку , кажется , так : no power align 2 т.е. нечетное выравнивание ?

</pre>

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.