The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Стабильный выпуск HardenedBSD 12"
Отправлено Аноним, 21-Дек-18 06:05 
>ты фигачишь -flto=full в CFLAGS, а в мурзилках - в CFLAGS.clang

Так если зафигачить в CFLAGS.clang то оно не будет юзаться. Посмотри листинг выполняемых команд при компляции.

>вот и devel/cmake подтянулся

А теперь возьми и вместо:
CFLAGS.clang+=-flto=full
поставь:
CFLAGS.clang+=-O2
...и увидишь, что размер бинарника не изменится ни на байт.

Вот пример:
с CFLAGS.clang+=-O2:

# ls -l `pkg info -l cmake | grep \/bin\/ccmake`
-rwxr-xr-x  1 root  wheel  4265752 Dec 21 04:35 /usr/local/bin/ccmake
# md5 /usr/local/bin/ccmake
MD5 (/usr/local/bin/ccmake) = 41eeae1983e4cd6fb3827d8598651727

с CFLAGS.clang+=-flto=full:

# ls -l `pkg info -l cmake | grep \/bin\/ccmake`
-rwxr-xr-x  1 root  wheel  4265752 Dec 21 04:41 /usr/local/bin/ccmake
kp ports/devel/llvm70 # md5 /usr/local/bin/ccmake
MD5 (/usr/local/bin/ccmake) = 41eeae1983e4cd6fb3827d8598651727

А разницу в размере ты скорее всего получил за счет того, что компилял не штатным компилятором и линковал другим линкером.

А если забирать -flto в CFLAGS, то видно как LTO колбасит при линковке дольше обычного, md5 и размер результирующего бинарника меняется.

----------------------------------------------------------

Вот тебе пример компиляции uWSGI:

Штатный компилятор:
-r-xr-xr-x  1 root  wheel  871688 Dec 21 04:50 /usr/local/bin/uwsgi
MD5 (/usr/local/bin/uwsgi) = 1f9ebc989affbded937d26720aff9b5f

clang70 из портов. В /etc/make.conf добавленно все что ты писал выше, только закомментированны CFLAGS.clang и LDFLAGS:

-r-xr-xr-x  1 root  wheel  879928 Dec 21 04:51 /usr/local/bin/uwsgi
MD5 (/usr/local/bin/uwsgi) = a3fa26c2ad12591aa99d19ac93c8a16e

Раскомментированы CFLAGS.clang и LDFLAGS:

-r-xr-xr-x  1 root  wheel  874928 Dec 21 04:51 /usr/local/bin/uwsgi
MD5 (/usr/local/bin/uwsgi) = cfe5af237673e679341dcbbed04224ef

А теперь добавляем в CFLAGS -flto=full:

-r-xr-xr-x  1 root  wheel  952768 Dec 21 04:52 /usr/local/bin/uwsgi
MD5 (/usr/local/bin/uwsgi) = b9d6776db2c70695bc7267c46689b4d4

А вот если собрать с -flto=thin:

-r-xr-xr-x  1 root  wheel  965040 Dec 21 05:00 /usr/local/bin/uwsgi
MD5 (/usr/local/bin/uwsgi) = ba91b7c8470fd87c7a048518fe5110ee

...и если еще добавить в LDFLAGS: ,-plugin-opt,jobs=24 то линкует значительно быстрее чем -flto=full

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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