The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

GCC удалён из основного состава FreeBSD , opennews (??), 03-Мрт-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


152. "GCC удалён из основного состава FreeBSD "  –2 +/
Сообщение от Аноним (150), 04-Мрт-20, 15:51 
В целом конечно печалит, что используют clang. Ведь теперь считай что бы развернуть систему нужно уже собирать транслятор на С++. Требования возросли. В следующей эволюционной версии может быть нужен уже Rust.
Конечно ничего страшного, но просто это сильно находит противников системного программирования, которые плотно и убежденно топят за классический Си.
Ответить | Правка | Наверх | Cообщить модератору

157. "GCC удалён из основного состава FreeBSD "  +1 +/
Сообщение от анонн (ok), 04-Мрт-20, 17:29 
> Ведь теперь считай что бы развернуть систему нужно уже собирать транслятор на С++. Требования возросли. В следующей эволюционной версии может быть нужен уже Rust.

Жаль только, что требования к минимальному знанию матчасти комментаторами остались прежними ((

1. "теперь" - на самом деле _штатно_ для tier1 платформ с 2013 года.
2. https://gcc.gnu.org/install/prerequisites.html
> Tools/packages necessary for building GCC
> ISO C++98 compiler
> Necessary to bootstrap GCC, although versions of GCC prior to 4.8 also allow bootstrapping with a ISO C89

3. Чтобы развернуть систему, достаточно скачать base.txz и kernel.txz. Собирать их компилятором (и тем более, собирать сам компилятор) - совсем не обязательно.

> Конечно ничего страшного, но просто это сильно находит противников системного программирования, которые плотно и убежденно топят за классический Си.

Бедолаги. Надеюсь, им никто не запрещает использовать tcc или древние версии gcc?

Ответить | Правка | Наверх | Cообщить модератору

159. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от пох. (?), 04-Мрт-20, 18:10 
> 1. "теперь" - на самом деле _штатно_ для tier1 платформ с 2013
> года.

на самом деле до 2016 (то есть он уже требовался - но CURRENT, который вменяемые себе не поставят) и до 2018 можно было отключать.

Что все и делали, поскольку для сборки системы вполне хватало "немодного древнего" gcc, а собирается это чудовище, действительно, в разы дольше чем собирался до-clangовый word целиком.
Причем где-то в процессе образуется пара экземпляров компилятора, жрущих по пол-гигабайта оперативы.

В 11й версии WITHOUT_CLANG был окончательно доломан на этих платформах, что особенно доставляло на фоне его ld, неспособного слинковать собственно freebsd.
(кажется, починили?)

> Бедолаги. Надеюсь, им никто не запрещает использовать tcc или древние версии gcc?

им никто не запрещает сесть и переписать clang на plain c. Жаль что они не умеют кодить, правда?

Ответить | Правка | Наверх | Cообщить модератору

165. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от Dmitry (??), 04-Мрт-20, 18:51 
> Что все и делали, поскольку для сборки системы вполне хватало "немодного древнего" gcc, а собирается это чудовище, действительно, в разы дольше чем собирался до-clangовый word целиком.
> Причем где-то в процессе образуется пара экземпляров компилятора, жрущих по пол-гигабайта оперативы.

Не поверишь, но компилиться дольше оно из-за того, что собирает кросскомпилятор.
Попробуй в /etc/src.conf дать ему такое:
WITHOUT_LLVM_TARGET_AARCH64="YES"
WITHOUT_LLVM_TARGET_ARM="YES"
WITHOUT_LLVM_TARGET_MIPS="YES"
WITHOUT_LLVM_TARGET_POWERPC="YES"
WITHOUT_LLVM_TARGET_SPARC="YES"

>В 11й версии WITHOUT_CLANG был окончательно доломан на этих платформах, что особенно доставляло на фоне его ld, неспособного слинковать собственно freebsd.
>(кажется, починили?)

ld для tier1 никогда и не был поломан. Откуда такие сведения ?

Ответить | Правка | Наверх | Cообщить модератору

173. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от анонн (ok), 04-Мрт-20, 20:47 
>> Что все и делали, поскольку для сборки системы вполне хватало "немодного древнего" gcc, а собирается это чудовище, действительно, в разы дольше чем собирался до-clangовый word целиком.
>> Причем где-то в процессе образуется пара экземпляров компилятора, жрущих по пол-гигабайта оперативы.
> Не поверишь, но компилиться дольше оно из-за того, что собирает кросскомпилятор.
> Попробуй в /etc/src.conf дать ему такое:
> WITHOUT_LLVM_TARGET_AARCH64="YES"
> WITHOUT_LLVM_TARGET_ARM="YES"
> WITHOUT_LLVM_TARGET_MIPS="YES"
> WITHOUT_LLVM_TARGET_POWERPC="YES"
> WITHOUT_LLVM_TARGET_SPARC="YES"

Ну вон:


grep WITHOUT_LLV /etc/src.conf
WITHOUT_LLVM_TARGET_AARCH64=true
WITHOUT_LLVM_TARGET_ARM=true
WITHOUT_LLVM_TARGET_MIPS=true
WITHOUT_LLVM_TARGET_POWERPC=true
WITHOUT_LLVM_TARGET_SPARC=true

и как раз крутится свежая сборка в фоне, в 1 job - уже часа 4, несмотря на ccache на стареньком SSD и "полный" /usr/obj (тоже на SSD).
За это время на этой же машине можно было десяточку раза 2 собрать.

> ld для tier1 никогда и не был поломан. Откуда такие сведения ?

Речь не о "поломке" системного ld, а об использовании именно шлангового.
Оно и само-то по себе появилось не так давно - в конце 2016 был WITH_LLD_AS_LD (т.е. нужно было выставлять явно), а уж по умолчанию активно для amd64 с 2018.

Ответить | Правка | Наверх | Cообщить модератору

175. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от Dmitry (??), 04-Мрт-20, 21:25 
Попробуй добавить
WITHOUT_CLANG_FULL и WITHOUT_CROSS_COMPILER
Ответить | Правка | Наверх | Cообщить модератору

180. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от анонн (ok), 04-Мрт-20, 22:46 
> Попробуй добавить
>  WITHOUT_CLANG_FULL и WITHOUT_CROSS_COMPILER

grep CROSS /etc/src.conf
WITHOUT_CROSS_COMPILER=true

А "--analyze" опция (которая, насколько я знаю, не соберется без CLANG_FULL) вообще-то самому нужна ;)

PS: оно все еще компиляет.
> ===> secure/lib/libcrypto (obj,all,install)

такое чувство, что ccache наоборот, замедляет (конкретно эту) сборку.
И hit rate почему-то 3.42 % - то ли я зачистил диск (и забыл), то ли из-за того, что прошлая сборка была предыдущей версией компилятора.

Ответить | Правка | Наверх | Cообщить модератору

199. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от aaa (??), 05-Мрт-20, 16:12 
Странно, у меня мир собирается за час, на железе 12-летней давности и без SSD
Ответить | Правка | Наверх | Cообщить модератору

205. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от пох. (?), 05-Мрт-20, 17:49 
PS: оно все еще компиляет.
> ===> secure/lib/libcrypto (obj,all,install)

ты просто брезглив, но невнимателен - у тебя ж, наверняка, многопроцессная сборка? Ну вот пока оно одним-другим процессами собирает твой libcrypto - остальные пять жуют какой-нибудь libllvm и его окрестности - просто ты этого не видишь, эта строчка давным-давно уехала вверх. А следующую за ней придется подождать.

ps'ом смотри, убедишься, кто на самом деле все ништяки зохавал.

Ответить | Правка | К родителю #180 | Наверх | Cообщить модератору

206. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от анонн (ok), 05-Мрт-20, 18:54 
> PS: оно все еще компиляет.
>> ===> secure/lib/libcrypto (obj,all,install)
> ты просто брезглив, но невнимателен - у тебя ж, наверняка, многопроцессная сборка?

Угу - ты не заметил "как раз крутится свежая сборка в фоне, в 1 job - уже часа 4," и основной посыл "За это время на этой же машине можно было десяточку раза 2 собрать.", но невнимателен я.

> ps'ом смотри, убедишься, кто на самом деле все ништяки зохавал.

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


Ответить | Правка | Наверх | Cообщить модератору

210. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от пох. (?), 05-Мрт-20, 20:12 
> Угу - ты не заметил "как раз крутится свежая сборка в фоне, в 1 job - уже часа 4,"

ффак, я только цитату читал, а не оригинал (не хватало еще тут все читать) - но ЗАЧЕМ так страдать-то? 8-O

При всей моей нелюбви к llvm, было бы у змейгорыныча три жопы - давно б домой улетел.

Ответить | Правка | Наверх | Cообщить модератору

214. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от пох. (?), 06-Мрт-20, 14:43 
Ну, кстати, час на E3-1245 - не скажу, чтобы от запрещения лишних кросскомпиляторов сильно полегчало.

Ответить | Правка | К родителю #206 | Наверх | Cообщить модератору

204. "GCC удалён из основного состава FreeBSD "  +/
Сообщение от пох. (?), 05-Мрт-20, 17:45 
> Не поверишь, но компилиться дольше оно из-за того, что собирает кросскомпилятор.

не только, не только - поверь, там основной потерей является то, что сборка c++ (причем там такой, вполне модный-современный плюс, а не времен Си-с-классами) всегда тяжелее plain c.

Но вот на фоне этого еще и мильен таржетов под платформы которых у тебя не то что нет, а на которых оно в общем-то толком и работать не собиралось никогда - действительно, бесили - неужели ж можно стало?!

> WITHOUT_LLVM_TARGET_AARCH64="YES"

это вот кому-то спасибо огромное (хотя по словам автора - 12/14%, а потери от llvm'овых либ - они не в процентах, они в разах). Прям прослезился.

Оно в releng попало какой-нибудь, или только 11 stable ?

> ld для tier1 никогда и не был поломан. Откуда такие сведения ?

оттуда же, оттуда же, из man src.conf.
Вот тебе позапрошлогодние дефолты:
     WITHOUT_LLD_IS_LD
             Set to use GNU binutils ld as the system linker, instead of
             LLVM's LLD.

             This is a default setting on amd64/amd64, arm/arm, arm/armeb,
             arm/armv6, i386/i386, mips/mipsel, mips/mips, mips/mips64el,
             mips/mips64, mips/mipsn32, pc98/i386, powerpc/powerpc,
             powerpc/powerpc64 and sparc64/sparc64.

Он не то что совсем поломан был, он то ли ядро, то ли не только ядро не мог слинковать. Поэтому (если ты руками ничего не трогал) на этом tier1 собиралось clang'ом, не собирался gcc, но зато ld у тебя было аж два - родной clang'овский, который дальше не использовался никак, и ld-gold, которым собиралась собственно операционная система, хоть и скомпиленная шлангом. При этом WITHOUT_LLD было можно (и нужно, нахрена мне второй-полуработающий, вызываемый по спецзаказу для ничего нужного)

Дальше это вроде победили, но я к тому времени безнадежно поломал свою версию, и в zfs, и в ядре, и с тех пор не обновляюсь, потому что не получится - мои правки несовместимы с апстримными.

Ответить | Правка | К родителю #165 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру