LINUX.ORG.RU

Флаги безопасности gcc

 


0

2

(Фиг знает помещать тему в Development или в Security, поэтому пишу в General)

Кто использует security-флаги gcc:

-fstack-protector
-Wformat 
-Wformat-security
-pie 
-fPIE

и другие? Есть ли влияние на стабильность и производительность? Много смысла использовать их на домашней машине?

Если ты об этом спрашиваешь, значит тебе это не нужно.

Хотя... для скородрочера любые средства хороши.

anonymous
()

Есть ли влияние на стабильность и производительность?

Несомненно.

Много смысла использовать их на домашней машине?

Если 1) у вас паранойя и 2) вы gentoo user, то есть, иначе нет.

juk4windows
()

-W опции ни на что не влияют - они настраивают информационные сообщения при компиляции.

В Fedora/RHEL есть опции круче:

-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
juk4windows
()
Ответ на: комментарий от juk4windows

Я про -pie и -fPIE прочитал в официальном мануале по секуризации дебиана.

Kindly_Cat
() автор топика

Чтобы точно знать, что можно включать без отрицательных последствий, смотри правила сборки пакетов Debian Wheezy и Sid.

anonymous
()
Ответ на: комментарий от Kindly_Cat

Не балуйтесь с оптимизацией при сборке binutils - `-O2 -march=native` - это единственно правильные флаги сборки для 99.99% пакетов.

juk4windows
()
Ответ на: комментарий от juk4windows

У меня на все пакеты такие флаги:

-march=core2 -mtune=generic -O2 -pipe -mfpmath=sse -msse3 -Wno-all

Для binutils убрать -pipe -mfpmath=sse -msse3 -Wno-all?

Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

Я уже сказал что надо использовать.

-march=core2 overrides -mtune=generic в вашем случае.

-mfpmath=sse -msse3 - нужны для полутора числодробильных пакетов, кроме этого от -mfpmath=sse кое-что крашится.

Итого, либо

-march=core2 -O2 -pipe

либо (чтобы я бы выбрал)

-march=native -O2 -pipe

juk4windows
()
Ответ на: комментарий от anonymous

Sil vy? ;)

Ты не совсем права.

march=core2 генерирует код лучше, чем -mtune generic, поэтому mtune в этом случае - бессмысленная (и даже вредная из-за разбухания кода) опция.

juk4windows
()
Ответ на: комментарий от juk4windows

march=core2 генерирует код лучше, чем -mtune generic, поэтому mtune в этом случае - бессмысленная (и даже вредная из-за разбухания кода) опция.

А ты ничего не спутал? Как раз таки оптимизации увеличивают размер кода.

Kindly_Cat
() автор топика
Ответ на: комментарий от Kindly_Cat

Я - нет ))

-march - генерит код под конкретную архитектуру.

-mtune - добавляет код ещё под некую универсальную (AMD/Intel) архитектуру.

-mtune=generic Produce code optimized for the most common IA32/AMD64/EM64T processors. If you know the CPU on which your code will run, then you should use the corresponding -mtune option instead of -mtune=generic. But, if you do not know exactly what CPU users of your application will have, then you should use this option.

As new processors are deployed in the marketplace, the behavior of this option will change. Therefore, if you upgrade to a newer version of GCC, the code generated option will change to reflect the processors that were most common when that version of GCC was released.

There is no -march=generic option because -march indicates the instruction set the compiler can use, and there is no generic instruction set applicable to all processors. In contrast, -mtune indicates the processor (or, in this case, collection of processors) for which the code is optimized.

-march=cpu-type Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for -mtune. Moreover, specifying -march=cpu-type implies -mtune=cpu-type.

Итого, в лучшем случае -mtune никогда не использовать.

Дистрибутивы её используют, но (!) только потому, что они не знают на каком процессоре сидит пользователь.

juk4windows
()
Ответ на: комментарий от anonymous

Простите, либо я не русский, но что значит «сделать трапом»?

juk4windows
()
Ответ на: комментарий от Kindly_Cat

Надо переключаться на hardended, будет там и -fstack-protector и прочие радости, всё под них пропатчено и собирается.

anonymous
()
Ответ на: комментарий от Kindly_Cat

Вроде проблем не замечал. У меня именно тулчейн с дефолтным ssp и pie. А не весь профиль целиком, если что. Ну и hardended в use.force

vasily_pupkin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.