GCC 6.3 или GCC 7.x в качестве системного компилятора

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-04-23 0:40:11

Приветствую.

На досуге пробую собрать FreeBSD 11-STABLE с помощью установленного из портов GCC 6.3 и 7-devel.
Конфигурация сорцов (/etc/src.conf):

Код: Выделить всё

WITHOUT_AMD=true
WITHOUT_ASSERT_DEBUG=true
WITHOUT_ATM=true
WITHOUT_BHYVE=true
WITHOUT_BLUETOOTH=true
WITH_BSD_GREP=true
WITHOUT_BSNMP=true
WITHOUT_CLANG=true
WITHOUT_DEBUG=true
WITHOUT_DMAGENT=true
WITHOUT_EXAMPLES=true
WITHOUT_FLOPPY=true
WITHOUT_FORMAT_EXTENSIONS=true
WITHOUT_GAMES=true
WITHOUT_GDB=true
WITHOUT_HYPERV=true
WITHOUT_HTML=true
WITHOUT_IPFILTER=true
WITHOUT_IPFW=true
WITHOUT_IPX=true
WITHOUT_IPX_SUPPORT=true
WITHOUT_KDUMP=true
WITHOUT_LDNS=true
WITHOUT_LIB32=true
WITHOUT_LLDB=true
WITHOUT_LOCATE=true
WITHOUT_LPR=true
WITHOUT_MAIL=true
WITHOUT_MAILWRAPPER=true
WITHOUT_NDIS=true
WITHOUT_NETGRAPH=true
WITHOUT_NETGRAPH_SUPPORT=true
WITHOUT_PPP=true
WITHOUT_PROFILE=true
WITHOUT_SENDMAIL=true
WITH_SVN=true
WITHOUT_TALK=true
WITHOUT_TELNET=true
WITHOUT_TESTS=true
WITHOUT_UNBOUND=true
WITHOUT_WIRELESS=true
Конфигурация сборочного инструмента (/etc/make.conf):

Код: Выделить всё

KERNCONF=COMP
MAKE_JOBS_NUMBER=5
WITHOUT_DEBUG=true
# This setting to build world without -Werror:
NO_WERROR=
# This setting to build kernel without -Werror:
WERROR=
CC=/usr/local/bin/gcc7
CXX=/usr/local/bin/g++7
CPP=/usr/local/bin/cpp7
DEFAULT_VERSIONS=perl5=5.24 ruby=2.4 tcltk=8.6
Подстановка библиотек (/etc/libmap.conf):

Код: Выделить всё

# $FreeBSD: stable/11/etc/libmap.conf 253853 2013-08-01 05:50:42Z jlh $
includedir /usr/local/etc/libmap.d
libgcc_s.so.1   gcc7/libgcc_s.so.1
libgomp.so.1    gcc7/libgomp.so.1
libobjc.so.3    gcc7/libobjc.so.4
libssp.so.0     gcc7/libssp.so.0
libstdc++.so.6  gcc7/libstdc++.so.6
В такой конфигурации GCC сами себя пересобирают и переустанавливаются.
Но make buildworld пишет ошибки, которые при использовании системного LLVM/Clang не выявляются. Одни я исправил. К другим не пойму, как подступиться.
Вот эти:

Код: Выделить всё

In file included from /usr/src/lib/libc/iconv/__iconv.c:31:0:
/usr/src/lib/libc/iconv/iconv-internal.h:35:48: error: unknown type name '__iconv_bool'; did you mean 'iconv_t'?
 int __bsd___iconv_get_list(char ***, size_t *, __iconv_bool);
                                                ^~~~~~~~~~~~
                                                iconv_t
/usr/src/lib/libc/iconv/__iconv.c:34:1: warning: no previous prototype for '__iconv' [-Wmissing-prototypes]
 __iconv(iconv_t a, char **b, size_t *c, char **d,
 ^~~~~~~
*** Error code 1

Stop.
make[1]: stopped in /usr/src/lib/libc_nonshared
*** Error code 1
и

Код: Выделить всё

/usr/local/bin/gcc7 -O2 -pipe   -DSHELL -I. -I/usr/src/bin/sh -DNDEBUG -g -MD  -MF.depend.expand.o -MTexpand.o -std=gnu99 -fstack-protector-strong -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address     -c /usr/src/bin/sh/expand.c -o expand.o
/usr/local/bin/gcc7 -O2 -pipe   -DSHELL -I. -I/usr/src/bin/sh -DNDEBUG -g -MD  -MF.depend.histedit.o -MThistedit.o -std=gnu99 -fstack-protector-strong -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address     -c /usr/src/bin/sh/histedit.c -o histedit.o
/usr/src/bin/sh/histedit.c: In function 'histedit':
/usr/src/bin/sh/histedit.c:127:9: error: '_el_fn_sh_complete' undeclared (first use in this function); did you mean '_el_fn_complete'?
         _el_fn_sh_complete);
         ^~~~~~~~~~~~~~~~~~
         _el_fn_complete
/usr/src/bin/sh/histedit.c:127:9: note: each undeclared identifier is reported only once for each function it appears in
*** Error code 1
Кому удалась сборка GNU-компилятором?
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-04-24 10:12:55

Интересно же, сможет ли система собираться альтернативным набором компиляторов C/C++.

Пока что добился того, что система собралась с GCC 4.2.1, но ядро, собранное GCC7 останавливает загрузку на определении ATA-устройств - пришлось использовать ядро, собранное Clang'ом. После прогрузки гибрида X'ы не стартовали, пересборка портов натыкается на отсутствующую libc+.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Аватара пользователя
Neus
капитан
Сообщения: 1976
Зарегистрирован: 2008-09-08 21:59:56

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение Neus » 2017-04-24 12:29:48

:st: :cz2:
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

guest
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение guest » 2017-04-24 13:30:29

iZEN писал(а):Интересно же, сможет ли система собираться альтернативным набором компиляторов C/C++.

Пока что добился того, что система собралась с GCC 4.2.1, но ядро, собранное GCC7 останавливает загрузку на определении ATA-устройств - пришлось использовать ядро, собранное Clang'ом. После прогрузки гибрида X'ы не стартовали, пересборка портов натыкается на отсутствующую libc+.
Никогда не сталкивались с теорией построения компилятора? (на спецухах ВМК, системотехники и еще ряде - должен
был быть такой курс, лет 30-40 назад был)

Можно открыть для себя много нового... И тогда быстро избавитесь от верхней каши...

ps. Даже в документации к развертыванию GCC руками, много полезного написано, в том числе и про linker.
pps. Играться в сборку ОС и Ядра - можно, нкто не запрещает, но не понимая что делают компилятор
и линковщик и КАК ОНИ это делают, заниматься сборкой можно долго и безрезультатно,особливо ЯДРА.

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-04-24 18:32:08

Несколько лет назад пробовал переводить FreeBSD с GCC 4.2.1 на GCC 4.6. Вполне неплохо работало.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение hizel » 2017-05-08 11:16:13

передергиваешь на компиляцию - заведи себе генту

>сорцов

пфф
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-05-08 13:38:38

Не надо меня учить, что мне делать. FreeBSD до некоторых пор собиралась компилятором GCC из портов, а с развитием LLVM/Clang в некоторых местах вдруг перестала. Это разве не говорит о том, что разработчики всё больше ориентируются на конкретный тип компилятора, на его побочные эффекты и перестают следить за чистотой и стандартностью кода?
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение hizel » 2017-05-08 13:51:08

не видел конец твоей партянки, понятно, ты промахнулся мимо багзилы
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

guest
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение guest » 2017-05-08 14:36:45

iZEN писал(а):Не надо меня учить, что мне делать. FreeBSD до некоторых пор собиралась компилятором GCC из портов, а с развитием LLVM/Clang в некоторых местах вдруг перестала. Это разве не говорит о том, что разработчики всё больше ориентируются на конкретный тип компилятора, на его побочные эффекты и перестают следить за чистотой и стандартностью кода?
мусье явно что-то путает, если опустить тип лицензионности, clang гораздо строже парсит исходники
в отличие от gcc, и точнее и понятней указывает на возможные ошибки.

неудивительно что целый ряд linux дистрибутивов уже несколько лет чистит код
используя clang/llvm, некоторые уже используют как альтернативный компилятор
с прицелом на будущий переход.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение hizel » 2017-05-08 15:48:37

>lang гораздо строже парсит исходники в отличие от gcc

пруфцы покажете?

> точнее и понятней указывает на возможные ошибки.

завезли начиная с gcc 5.x такое же как в clang

>неудивительно что целый ряд linux дистрибутивов уже несколько лет чистит код используя clang/llvm

это какие?
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

guest
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение guest » 2017-05-08 17:30:16

hizel писал(а):>lang гораздо строже парсит исходники в отличие от gcc

пруфцы покажете?
порты - хоть обсобирайтесь и обсмотритесь
> точнее и понятней указывает на возможные ошибки.

завезли начиная с gcc 5.x такое же как в clang
Андерсен?
>неудивительно что целый ряд linux дистрибутивов уже несколько лет чистит код используя clang/llvm

это какие?
gentoo, debian - достаточно?

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение hizel » 2017-05-08 18:52:57

понятно, ананимус опять обосрался
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

guest
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение guest » 2017-05-08 19:42:47

hizel писал(а):понятно, ананимус опять обосрался
продолжай в лошадки играть

ultimo
проходил мимо
Сообщения: 2
Зарегистрирован: 2017-05-13 7:46:55

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение ultimo » 2017-05-13 7:49:26

Зачем ядро на gcc собирать если на кленг все стабильно работает?
Только вот некоторые порты все еще приходится на gcc собирать.

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-05-13 13:41:42

Вы правда не понимаете, зачем?
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

мимоходом
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение мимоходом » 2017-05-13 18:05:15

iZEN писал(а):Вы правда не понимаете, зачем?
интересно узнать?

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1095
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение iZEN » 2017-05-13 18:57:28

У меня есть потребность проверить, сможет ли система быть отвязана от конкретного компилятора и будет ли при этом она работоспособна. Если у вас какие-то проблемы личного характера с восприятием этой потребности или какие-то фанатично-идеологические "скрепы души", прошу, не засоряйте тему обозначением своего мнения — меня оно не интересует. Меня интересует чисто техническая возможность откомпилировать систему последними версиями компиляторов GCC.
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

мимоходом
проходил мимо

GCC 6.3 или GCC 7.x в качестве системного компилятора

Непрочитанное сообщение мимоходом » 2017-05-13 21:41:22

iZEN писал(а): Меня интересует чисто техническая возможность откомпилировать систему последними версиями компиляторов GCC.
понято.