Rating@Mail.ru

Форум по операционной системе GNU/Linux и свободному программному обеспечению


Текущее время: 22 фев 2018, 04:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
Непрочитанное сообщениеДобавлено: 06 июн 2017, 14:38 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Мне удалось найти правильную технологию сборки gcc:
Цитата:
I've taken to having GCC build the version of GMP, MPFR and MPC along with the compiler. I now get the source for the current version of the library, and extract it into the top-level directory of the GCC source: gmp-6.0.0, mpfr-3.1.2, etc. Then I create a symlink for each of them: ln -s gmp-6.0.0 gmp; ln -s mpfr-3.1.2 mpfr; ln -s mpc-1.0.2 mpc. Then I run GCC configure and build, and GCC builds these libraries too. – Jonathan Leffler Apr 30 '14 at 13:53
Не нужно компилировать недостающие библиотеки отдельно, а просто нужно распаковать их исходные коды в папки соседние с папкой проекта gcc который вы хотите собрать. И после этого в папке с проектом gcc нужно создать ссылки на папки с исходными кодами недостающих вам библиотек. После этого запустить сборку gcc (./configure, make, make install) компилятор сам соберёт их из исходников (какой умница :lol: )
Я попробовал так собрать gcc-4.7.1 на ОС МСВС-3,0 - действительно всё сконфигурировалось и пошло на сборку....
Но после 30 мин сборки выскочила ошибка:
/mpc/src/set_x.c:96: undefined reference to creall - это функция из семейства функций для вычисления реальной части комплексного числа.
К сожалению в заголовочном файле <complex.h> ОС МСВМ-3,0 определения этой функции нет :cry:
У кого есть какие-либо соображения, предложения как обойти эту ошибку времени компиляции ?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 07 июн 2017, 09:31 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10530
Откуда: Харьков
perseus писал(а):
Но после 30 мин сборки выскочила ошибка:

Для крупных проектов вы можете ускорить сборку на порядок (минут до 3-х ;-) ) как описано:
- Разработка программных проектов в Linux (в тексте это ~74 стр.)
- в теме форума Как правильно собирать ядро? (если не лень ковыряться в довольно хаотическом форумном обсуждении)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 07 июн 2017, 10:47 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10530
Откуда: Харьков
perseus писал(а):
выскочила ошибка:
/mpc/src/set_x.c:96: undefined reference to creall - это функция из семейства функций для вычисления реальной части комплексного числа.
К сожалению в заголовочном файле <complex.h> ОС МСВМ-3,0 определения этой функции нет :cry:
У кого есть какие-либо соображения, предложения как обойти эту ошибку времени компиляции ?

1. начните с того, что посмотреть в той системе:
Код:
[olej@dell Linux.books.own]$ man complex
...
2011-09-16

что там за дата у них стоит?
2. creall это:
Код:
long double creall(long double complex z);

long double - новый тип, который появляется со стандарта C89, или даже C99 в полной мере...
Про новые стандарты C см. Язык C: заметки на полях.
3. вам, возможно, придётся пересобрать библиотеку libm.so (где это находится) в новую версию.

P.S. Я же вас предупреждал, что это циклический итерационный многократный процесс... ;-)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 07 июн 2017, 15:38 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Цитата:
Для крупных проектов вы можете ускорить сборку на порядок (минут до 3-х ;-) ) как описано:

Сборка у меня происходит на машине с одноядерным Pentium-III 1260 MGz, 256 Mb ОЗУ и HDD-диск - особо не ускоришься, хотя я и изучил ваши рекомендации для ускорения процесса сборки, благодарю за подсказку ;-)
Цитата:
P.S. Я же вас предупреждал, что это циклический итерационный многократный процесс... ;-)

Осознав свою ошибку, что я использовал при компиляции более высокие версии библиотек, чем этого требовал gcc-4.7.1, я стал придерживаться инструкции по сборке и подобрал рекомендуемые версии библиотек, а именно: gmp-4.2.4, mpfr-2.4.2, mpc-0.8.2 :oops:
Вторая моя ошибка - не делал "make clean" после каждой неудачной попытки сборки. :oops:
Учтя это, мне наконец удалось запустить процесс сборки gcc-4.7.1 на МСВС-3.0 (ядро linux-2.4).....
Вот уже час колбасится, не знаю когда закончится, может придется до утра оставить :-?
Вообщем следим за процессом ;-)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 07 июн 2017, 15:44 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Олег Иванович, а чтобы собрать gcc-6.3.0 требуется установить какие-то патчи.
Поясните пожалуйста общий подход к этой технике. Можно ли установить патч на машину не подключённую к интернет ? :roll:


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 07 июн 2017, 17:00 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10530
Откуда: Харьков
perseus писал(а):
Поясните пожалуйста общий подход к этой технике. Можно ли установить патч на машину не подключённую к интернет ? :roll:

Вообще то, патчи - это текстовые patch-файлы... в некотором специальном формате.
Которые создаются утилитой diff:
Код:
[olej@dell Linux.books.own]$ diff --help
Использование: diff [КЛЮЧ]... ФАЙЛЫ
Compare FILES line by line.
...

(там много интересного далее ;-) ).
Фактически, это снимок построчных различий <файл1> и <файл2> ... которые потом можно прилагать к <файл1>, чтобы из него получить <файл2>.
Делается это "наложение заплаток" утилитой:
Код:
[olej@dell Linux.books.own]$ patch --help
Usage: patch [OPTION]... [ORIGFILE [PATCHFILE]]
...

(там тое много интересного ;-) ).
Вот более-менее внятные описания того как это происходит:
Использование комманд diff и patch
Как создать и применить патч в Linux

Конечно для наложения патчей вам нужны сами .patch файлы. Но это вовсе не значит, что вы их должны получать online в ходе сборки. Вы можете их скачать на другом компьютере ... или даже совсем в другом месте (дом, работа, ...), а потом только перенести на носителе полученные файлы в место сборки.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 08 июн 2017, 10:40 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Цитата:
Вот уже час колбасится, не знаю когда закончится, может придется до утра оставить :-?
Вообщем следим за процессом ;-)

Придя утром на работу, наблюдаю результаты сборки:
real 379m10s
user 331m13s
sys 22m24s
Более 6 часов собиралось :-o
Инсталлируем:
real 4m59s
user 1m25s
sys 0m41s
Вуаля! Теперь на машине с МСВС-3.0 (ядро linux-2.4) имеем gcc версии 4.7.1 :-)
Но оказалось радоваться рано, при попытке собрать элементарную Go-программку "Hello world", командой gcc -o hello hello.go получаем сообщение от gcc-4.7.1 "компилятор Go не установлен" :cry:
Вот так облом, как же так, ведь gcc-4.7.1 должен поддерживать Go ?
Какие есть соображения на этот счёт, товарищи ?
Стоит ли пытаться ставить более высокую версию gcc или тут дело в ядре системы ?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 08 июн 2017, 11:55 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10530
Откуда: Харьков
perseus писал(а):
Вуаля! Теперь на машине с МСВС-3.0 (ядро linux-2.4) имеем gcc версии 4.7.1 :-)
Но оказалось радоваться рано, при попытке собрать элементарную Go-программку "Hello world", командой gcc -o hello hello.go получаем сообщение от gcc-4.7.1 "компилятор Go не установлен" :cry:
Вот так облом, как же так, ведь gcc-4.7.1 должен поддерживать Go ?
Какие есть соображения на этот счёт, товарищи ?
Стоит ли пытаться ставить более высокую версию gcc или тут дело в ядре системы ?

Я думаю, что дело в конфигурировании сборки: GCC поддерживает много языков и много процессорных архитектур, собирать все и по каждому чиху - достаточно бессмысленно, наберём 80% мусора, который не просили (например, он "поддерживает" FORTRAN, но компилировать FORTRAN-код собранный вами компилятор не станет? ... и не надо!).
gccgo - это отдельное приложение (программа) в составе огромного проекта GCC:
Код:
[olej@dell SinCos]$ ls -l /usr/bin/gccgo
-rwxr-xr-x. 1 root root 919840 апр  6  2016 /usr/bin/gccgo
[olej@dell SinCos]$ file /usr/bin/gccgo
/usr/bin/gccgo: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=eb500d8c026b4225057a938586fb7571c87767d2, stripped

Для компиляции Go-кода мы указываем программу gccgo, а не просто gcc.

P.S. Покажите ссылку точно того исходного архива, который вы собираете - возможно (если будет совершенно незанятое время ;-) ) я гляну что там нужно в конфигурациях. А вообще - ищите в README.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 08 июн 2017, 12:02 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10530
Откуда: Харьков
perseus писал(а):
Стоит ли пытаться ставить более высокую версию gcc или тут дело в ядре системы ?

Само ядро системы здесь не при чём - не тратьте на это время!


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 08 июн 2017, 12:33 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Цитата:
P.S. Покажите ссылку точно того исходного архива, который вы собираете - возможно (если будет совершенно незанятое время ;-) ) я гляну что там нужно в конфигурациях. А вообще - ищите в REDME.

REDME я конечно ещё раз тщательно проштудирую на счёт конфигурации.
Ссылку я уже не помню откуда исходники брал, это было неделю назад, но вот архив исходников gcc-4.7.1 который я инсталлировал могу тут выложить для всеобщего изучения интересующимися


Вложения:
gcc-4.7.1.tar.gz [101.36 МБ]
Скачиваний: 23
Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.648s | 21 Queries | GZIP : On ]