1

Обновился gcc на 4.4.3 и не компилит ничего. Что делать?

2

delta,
А что пишет-то?

3 (27.05.2010 13:45:43 отредактировано delta)

Например компилю пакет и пишет:* Messages for package sys-apps/kbd-1.15:

* ERROR: sys-apps/kbd-1.15 failed:
 *   econf failed
 * 
 * Call stack:
 *     ebuild.sh, line   54:  Called src_compile
 *   environment, line 2336:  Called econf '--enable-nls'
 *     ebuild.sh, line  544:  Called die
 * The specific snippet of code:
 *                      die "econf failed"
 * 
 * If you need support, post the output of 'emerge --info =sys-apps/kbd-1.15',
 * the complete build log and the output of 'emerge -pqv =sys-apps/kbd-1.15'.
 * The complete build log is located at '/var/tmp/portage/sys-apps/kbd-1.15/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-apps/kbd-1.15/temp/environment'.
 * S: '/var/tmp/portage/sys-apps/kbd-1.15/work/kbd-1.15'

Причем это с любым пакетом так.

А вот build.log
 * CPV:  sys-apps/kbd-1.15
 * REPO: gentoo
 * USE:  amd64 elibc_glibc kernel_linux multilib nls userland_GNU
>>> Unpacking source...
>>> Unpacking kbd-1.15.tar.gz to /var/tmp/portage/sys-apps/kbd-1.15/work
 * Applying kbd-1.12-kbio.patch ...
  [ ok ]
>>> Source unpacked in /var/tmp/portage/sys-apps/kbd-1.15/work
>>> Compiling source in /var/tmp/portage/sys-apps/kbd-1.15/work/kbd-1.15 ...
 * econf: updating kbd-1.15/config.guess with /usr/share/gnuconfig/config.guess
 * econf: updating kbd-1.15/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --enable-nls
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for bison... bison -y
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking for C compiler default output file name... 
configure: error: in `/var/tmp/portage/sys-apps/kbd-1.15/work/kbd-1.15':
configure: error: C compiler cannot create executables
See `config.log' for more details.

4

А что будет, если ручками создать что-то вроде

#include <stdio.h>

int main(void)
{
    printf("Hello!\n");
    return 0;
}

и скомпилячить его:

g++ -o hello hello.cpp

?

5 (26.05.2010 18:33:11 отредактировано delta)

Куда поместить и как назвать файл?

include <stdio.h>

int main(void)
{
    printf("Hello!\n");
    return 0;
}

ebuilды я еще не создавал поэтому не знаю что к чему.

6

куда угодно, в любой каталог. назвать hello.cpp и запустить компилятор приведенной выше строкой. Должен создаться исполняемый файл hello

7

Создал файл hello.cpp поместил его в /home 
запустил команду g++ -o hello hello.cpp     

выдал:gcc-config: error: could not run/locate 'g++'

8

delta,
тогда вместо g++ поставьте gcc

9

error: could not run/locate 'gcc'

10

delta,
Ну, тогда не знаю... Как еще может в Генте компилятор называьться??

11

gcc он в генте называется. Под рутом пробовали запускать?

С уважением, я
--------------------------
Гентушнег, антисоциал и немного сволочь.
Мой блог (крутится на домашнем ПК, за перебои в доступе ругайте провайдера)

12

Hvzh пишет:

Как еще может в Генте компилятор называьться??

звучит то как.. почти абсурдная ситуация "шо ни линукс, то разное название для gcc"..

system-root@asus:~$ whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc
system-root@asus:~$ whereis cpp
cpp: /usr/bin/cpp /lib/cpp
system-root@asus:~$ whereis g++
g++: /usr/bin/g++
system-root@asus:~$ 

вот если у вас такого нет, значит криво скомпилили.

13

delta пишет:

Обновился gcc на 4.4.3

Как обновляли? Повторно пересобирали его самого?

14

HTaeD пишет:

Повторно пересобирали его самого?

как можно скомпилить компилятор без компилятора?

15

system-root, ключевое слово "повторно".

16

Не вижу

 Консоль:

gcc-config -l

+ Могу присоветовать почитать "гэцэцэ упграде гуиде", помогает временами - http://www.gentoo.org/doc/en/gcc-upgrading.xml

17 (27.05.2010 10:07:02 отредактировано )

Nightwolf_ng пишет:

Не вижу

 Консоль:

gcc-config -l

+ Могу присоветовать почитать "гэцэцэ упграде гуиде", помогает временами - http://www.gentoo.org/doc/en/gcc-upgrading.xml


gcc-config: Active gcc profile is invalid!
[1] x86_64-pc-linux-gnu-4.4.3

Я специально не обновлял gcc, я обновился emerge --update --newuse --deep --ask world gcc там не заметил,так бы не обновлялся, а спросил. Я и раньше слышал о проблемах с gcc4.4.3 некоторые люди писали что приходилось уставливать заного систему. Мне не хотелось бы.

gcc-config config-x86_64-pc-linux-gnu выдает:* Your gcc has a bug with GCC_SPECS.
* Please re-emerge gcc.
* http://bugs.gentoo.org/68395

18

* Please re-emerge gcc.

Ну так и сделайте это  wink

19 (27.05.2010 17:14:23 отредактировано delta)

Путем команд # gcc-config 1
                      # source /etc/profile
                      # env-update
Hvzh, Перешел на старую версию gcc и g++ -o hello hello.cpp создает исполняемый файл все правильно.

Сделал emerge -e system все пересобрал но gcc неполучилось.

* Messages for package sys-devel/gcc-4.4.3-r2:

 * ERROR: sys-devel/gcc-4.4.3-r2 failed:
 *   emake failed with bootstrap-lean

gcc-config -l gjказывает
[1] x86_64-pc-linux-gnu-4.4.3
 * 
 * Call stack:
 *     ebuild.sh, line   54:  Called src_compile
 *   environment, line 5134:  Called toolchain_src_compile
 *   environment, line 5729:  Called gcc_src_compile
 *   environment, line 3289:  Called gcc_do_make
 *   environment, line 3079:  Called die
 * The specific snippet of code:
 *       emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with ${GCC_MAKE_TARGET}";
 * 
 * If you need support, post the output of 'emerge --info =sys-devel/gcc-4.4.3-r2',
 * the complete build log and the output of 'emerge -pqv =sys-devel/gcc-4.4.3-r2'.
 * The complete build log is located at '/var/tmp/portage/sys-devel/gcc-4.4.3-r2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-4.4.3-r2/temp/environment'.
 * S: '/var/tmp/portage/sys-devel/gcc-4.4.3-r2/work/build'

Второй раз сделал emerge -e system и теперь gcc 4.4.3 собрался.
Всем спасибо за ответы!

Здесь  http://linuxforum.ru/viewtopic.php?id=148 советуют gcc собирать 2 раза. У меня так и получилось, что дважды сделал emerge -e system.

20

delta пишет:

Здесь  gcc 4.4.3 vs 4.3.4 советуют gcc собирать 2 раза.

Так перед обновлением желательно 2 раза пересобрать не только gcc но и весь тулчейн. Тогда вы будете в полностью новой системе после обновления.

21 (13.10.2013 14:38:54 отредактировано delta)

Пересобрал world уже с помощью gcc 4.4.3.