The OpenNET Project / Index page

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



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

Оглавление

Релиз набора компиляторов LLVM 6.0, opennews (?), 09-Мрт-18, (0) [смотреть все]

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


42. "Что-то пока не фонтан этот clang/clang++ :-("  +/
Сообщение от Ne01eX (ok), 15-Мрт-18, 12:45 
Где-то в соседней теме какой-то умник кричал, что дескать с помощью clang можно собрать gcc. Несколько лет назад я пробовал собрать этот набор компиляторов (gcc) с помощью clang, но не взлетело. В этот раз, исключительно just for fun озадачился сборкой gcc-7.3.0 с помощью clang clang++.

Собственно, я и не ожидал что сборка зайдёт дальше непосредственно gcc и g++, но clang не смог сделать даже это.

Пробовал с llvm-6.0.0 на x86_64 и i586. Чуть попозже попробую ещё раз, подойдя более серъёзно (реально интересует такая возможность).

Ну и пока что... Я, опять же, just for fun попробовал сравнить эффективность сборки (размер ELF и его производительность) gcc/g++ и clang/clang++ около 20 пакаджей (с флажками -O2 и -O3, всего по четыре каждого для двух платформ - i586 и x86_64). Чё-то всё пока не пользу clang. Опять же, - меня слабо интересуют искусственные попугаи, мне реально интересно, где использование clang/clang++ даст хоть какой-то плюс. Пускай это будет даже +1% по производительности и -1% по объёму. Может подскажете такое ПО? :-)

Интереса для попробую с -Ofast (это -O3 -ffast-math -fno-protect-parens -fstack-arrays). То что gcc это умеет, я не сомневаюсь. Умеет ли так clang?

P.S. clang++ заваливается на сборке mariadb (хотя, теоретически не должен). Кто-нибудь собирал им mariadb 10.2.13 или 10.3.5 с полным набором плагинов. Особенно интересуют плагины rocksdb (собранный с jemalloc и zstd) и tokudb. :-) У кого-нибудь получалось их собрать clang++?

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

43. "Что-то пока не фонтан этот clang/clang++ :-("  +1 +/
Сообщение от Andrey Mitrofanov (?), 16-Мрт-18, 11:19 
> Где-то в соседней теме какой-то умник кричал, что дескать с помощью clang
> можно собрать gcc. Несколько лет назад я пробовал собрать этот набор
>компиляторов (gcc) с помощью clang, но не взлетело.

"Обычно" неродным компилятором собирают только stage1 gcc
   https://gcc.gnu.org/install/build.html
- бутстрапят из другого компилятора, а не билдят целиком.

С т.з. банальной эрудиции, FreeBSD, собирающая базу с системным clang, _должна_ же [успешно] собирать gcc-[67890] в портах системным clang-ом. Хотя они и "второй системный" gcc-4.2.1 попользуют -- недорого возьмут.

...а вот же, например:
   https://gcc.gnu.org/ml/gcc/2015-05/msg00028.html
   https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00973.html
   https://gcc.gnu.org/ml/gcc/2014-10/msg00269.html
и далее https://duckduckgo.com/?q=with+clang+bootstrap+site:gcc.gnu.... везде.

Для fun-а
   https://duckduckgo.com/?q=diverse+double+compilation
   https://www.schneier.com/blog/archives/2006/01/countering_tr...
//
   https://lists.gnu.org/archive/html/guile-user/2017-11/msg000...

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

44. "Что-то пока не фонтан этот clang/clang++ :-("  +/
Сообщение от Ne01eX (ok), 16-Мрт-18, 12:15 
>[оверквотинг удален]
> ...а вот же, например:
>    https://gcc.gnu.org/ml/gcc/2015-05/msg00028.html
>    https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00973.html
>    https://gcc.gnu.org/ml/gcc/2014-10/msg00269.html
> и далее https://duckduckgo.com/?q=with+clang+bootstrap+site:gcc.gnu.... везде.
> Для fun-а
>    https://duckduckgo.com/?q=diverse+double+compilation
>    https://www.schneier.com/blog/archives/2006/01/countering_tr...
> //
>    https://lists.gnu.org/archive/html/guile-user/2017-11/msg000...

Вообще в точку попал, спасибо! По предпоследней ссылке: Там чувак (Dan) в комментах в одном абзаце всю статью рассказал (мне понравился коммент как пример лаконичности). :-)

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

45. "Что-то пока не фонтан этот clang/clang++ :-("  +/
Сообщение от Andrey Mitrofanov (?), 16-Мрт-18, 13:23 
>>    https://www.schneier.com/blog/archives/2006/01/countering_tr...
>> //
>>    https://lists.gnu.org/archive/html/guile-user/2017-11/msg000...
> Вообще в точку попал, спасибо! По предпоследней ссылке: Там чувак (Dan) в
> комментах в одном абзаце всю статью рассказал (мне понравился коммент как
> пример лаконичности). :-)

Самый фан в --

" If they produce the same binary, then either they are both non malicious, or they are both malicious in the exact same way (which we are guessing is relatively unlikely since they don't share any of the same code) " --https://www.schneier.com/blog/archives/2006/01/countering_tr...

-- то есть либо оба норм, либо оба прохаканы, но одинаково. Мы можем только гадать, но отметаем неудобный вариант, как ... маловероятный.

Наука!

Wheeler trick обходит _это_ с "completely independent compilers: A and T" -- независимы настолько, что одного хака в двух быть не может.

...
У автора Mes более надёжный подход: исходим не из 2ух недоверенных компилеров, а пишем минимальный, маленький и обозримый в одно лицо компилятор, достаточный и работоспособный только на ... stage1 gcc или tinycc, достаточный для сборки stage1 gcc.

И кста, твой комментатор исходил из "имеем исходники gcc, которым не доверяем" и совсем не отразил это (=что мы не читаем исходники и не знаем, не лежит ли хак в них) в гадальной части, типа: ...или хак находится в недоверенных исходниках, или его там нет.

А у тов.Wheeller-а про _недоверие_ таки именно к исходникам gcc не было: он-то ловит "самораспространяющийся хак (патченную сборку) бинарника", не _обсуждая_ хаки в исходниках. В отличие "упростившего всё" от комментатора Dan.

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

46. "Что-то пока не фонтан этот clang/clang++ :-("  +/
Сообщение от Ne01eX (ok), 16-Мрт-18, 14:18 
>[оверквотинг удален]
> а пишем минимальный, маленький и обозримый в одно лицо компилятор, достаточный
> и работоспособный только на ... stage1 gcc или tinycc, достаточный для
> сборки stage1 gcc.
> И кста, твой комментатор исходил из "имеем исходники gcc, которым не доверяем"
> и совсем не отразил это (=что мы не читаем исходники и
> не знаем, не лежит ли хак в них) в гадальной части,
> типа: ...или хак находится в недоверенных исходниках, или его там нет.
> А у тов.Wheeller-а про _недоверие_ таки именно к исходникам gcc не было:
> он-то ловит "самораспространяющийся хак (патченную сборку) бинарника", не _обсуждая_
> хаки в исходниках. В отличие "упростившего всё" от комментатора Dan.

Ладно, лирика это всё. На практике тому же gcc абсолютно всё равно какие флаги используются в stage1. Он всё равно напихает своих при конфигурации. О какой повторяемости результата stage1/stage2 вообще тогда может быть и речь?

Короче вечером попробую повторить, собрав только базовую инфраструктуру и Си компилятор.

Пока у меня отдельно шуршит сборка gcc-7_20180315.

clang пока тихо дожидается своего часа =)

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

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

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




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

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