Ada_Ru форум

Обсуждение языка Ада

Сборка gnat в Gentoo Linux

Оставить новое сообщение

Сообщения

aLTer
Сборка gnat в Gentoo Linux
2006-01-26 04:34:53

Здравствуйте!

 

Недавно установил Gentoo Linux, обновил портежи, набрал emerge gnat; Сначала всё шло как обычно - копирование из сети исходных текстов и других файлов, а потом появилось следующее сообщение:

--------------------------------------------------------------------------- ...

Unpacking gcc-ada-3.4.5.tar.bz2 to ...

Unpacking gcc-3.4-i386-r1.tar.bz2 to ...

patching file Make-lang.in

Source unpacked.

creating cache ./config.cache

...

checking for a BSD compatible install... /bin/install -c

/usr/bin/ld: unrecongnized option '--as-needed'

/usr/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

*** The command 'blabla/work/usr/bin/gcc -o conftest -O2 -march=i686 -fomit-frame-pointer -Lblabla/work/usr/lib/gcc/i486-linux-gnu/3.4.5 conftest.c' failed

*** You must set the env. variable CC to a working compiler.

 

!!! ERROR: dev-lang/gnat-3.45 failed.

!!! Function src_compile, Line 100, Exitcode 1

!!! configure failed

---------------------------------------------------------------------------

Скажите, пожалуйста, в какое значение необходимо установить переменную окружения CC (и почему сам порт этого не делает?)?

Или, может быть это ошибка в самом порте?

Или я что-то неправильно делаю? В остальном система и портежи работают как надо.

 

Заранее спасибо за ответ.

 

-- Vladimir

Скажите, пожалуйста, в какое значение необходимо установить переменную окружения CC (и почему сам порт этого не делает?)?

Или, может быть это ошибка в самом порте?

Или я что-то неправильно делаю? В остальном система и портежи работают как надо.

 

Заранее спасибо за ответ.

 

-- Vladimir

Возможно у вас стоит старый binutils?

У меня binutils-2.16.1, в нем ld знает опцию --as-needed.

Попробуйте обновить систему:

 

emerge -uD world

Это обычно нужно делаеть после обновления портеджей.

 

--

Maxim Reznik

aLTer wrote:

Здравствуйте!

 

Недавно установил Gentoo Linux, обновил портежи, набрал emerge gnat;

Сначала всё шло как обычно - копирование из сети исходных текстов и

других файлов, а потом появилось следующее сообщение:

---------------------------------------------------------------------------

...

 

Unpacking gcc-ada-3.4.5.tar.bz2 to ...

Unpacking gcc-3.4-i386-r1.tar.bz2 to ...

 

patching file Make-lang.in

 

Source unpacked.

 

creating cache ./config.cache

...

checking for a BSD compatible install... /bin/install -c

/usr/bin/ld: unrecongnized option '--as-needed'

/usr/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

*** The command 'blabla/work/usr/bin/gcc -o conftest -O2 -march=i686

-fomit-frame-pointer -Lblabla/work/usr/lib/gcc/i486-linux-gnu/3.4.5

conftest.c' failed

*** You must set the env. variable CC to a working compiler.

 

!!! ERROR: dev-lang/gnat-3.45 failed.

!!! Function src_compile, Line 100, Exitcode 1

!!! configure failed

---------------------------------------------------------------------------

 

Скажите, пожалуйста, в какое значение необходимо установить переменную

окружения CC (и почему сам порт этого не делает?)?

Или, может быть это ошибка в самом порте?

Или я что-то неправильно делаю? В остальном система и портежи работают как надо.

 

Заранее спасибо за ответ.

 

-- Vladimir

 

Привет!

 

Про dev-lang/gnat не знаю, должно по-идее всё собираться, но если вас интересует Ada-2005, тогда надо ставить dev-lang/gnat-gpl

 

В этом случае, надо проверить, какой у вас компилятор стоит. Это делается командой

 

myuser@Hostname~$ gcc -dumpversion

 

Если там будет что-то наподобие

3.3.5-20050130

то, насколько я понимаю, вам нужно сменить компилятор на gcc-3.4.

На форуме Gentoo поищите, там есть инструкции, как менять компилятор. Два способа предлагаются : быстрый (c пом. revdep-rebuild) и долгий, более безопасный (я сейчас как раз этим и занимаюсь, только исходников много надо выкачивать :) )

 

Способ № 2 работает так:

 

1. # emerge -uav gcc

2. # gcc-config i686-pc-linux-gnu-3.4.4 (Предполагается, что CHOST="i686-pc-linux-gnu")

3. # source /etc/profile

(Пока не устанавливать флаги CFLAGS, специфичные для gcc-3.4, такие как, например, -march=pentium-m , иначе могут быть проблемы с тем, что вы компилируете. Эти флаги можно будет установить после удаления gcc-3.3)

4. # emerge -e system

5. # emerge -e world

6. # emerge -l sys-libs/libstdc++-v3 (бинарники от gcc-3.3 и gcc-3.4, говорят несовместимы, поэтому для совместимости нужно сделать это действие)

А теперь, можно удалить старый компилятор

7. # emerge -aC =sys-devel/gcc-3.3*

 

И только после всего этого устанавливать gnat-gpl

Если он замаскирован, то как George уже сказал, делаем так

 

echo "dev-lang/gnat-gpl" >> /etc/portage/package.unmask

потом, как обычно emerge gnat-gpl

 

Алексей

Еще один момент. Самое самое первое действие - disable distcc, если вы этой штукой пользуетесь.

 

Алексей

Спасибо всем большое!

 

emerge gnat нормально отработал после обновления binutils (куда входит ld). Кстати, автору порта можно учесть это, чтобы он указывал на

необходимость новой версии binutils'a :-)

 

-- Vladimir

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти