The OpenNET Project / Index page

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



"Стабильный выпуск HardenedBSD 12"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Стабильный выпуск HardenedBSD 12" +/
Сообщение от Аноним (43), 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

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

Оглавление
Стабильный выпуск HardenedBSD 12, opennews, 19-Дек-18, 00:37  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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