LINUX.ORG.RU

Как включить #progma once в gcc по умолчанию?

 


0

1

Можно ли, не меняя исходники, обойти прерывание компиляции при повторных включениях заголовков? Или нужно все же менять исходники?

3 пакета (sys-apps/findutils, sys-apps/coreutils и app-arch/tar) ругаются при сборке.

P.S.

Система на uclibc-0.9.33.2, gcc 4.5.3-r2

★★
Ответ на: комментарий от PolarFox

Понимаю, т.е. по любому корректировки исходников не избежать?

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

А разве для этого не используется связка #ifndef и #define?

да, и это стандартный способ, но:

a) NAME_H не гарантированно уникален, особенно при использовании библиотек
б) он медленнее ( в gcc решено )
в) он банально многословный

#pragma once же всем хорош, но не стандартен, хоть и поддерживается всеми популярными компиляторами

wota ★★
()
Ответ на: комментарий от Artificial_Thought

Это понятно, но нужно вносить изменения в исходный код, что не хотелось бы делать. Параметрми запуска gcc это не исправить?

P.S.

Я просмотрел параметры запуска gcc, касающиеся заголовков и так и не въехал пока, возможно это или нет. Мог что-либо упустить, поэтому решил спросить, может был у кого опыт обхода этой ситуации.

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

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

Boy_from_Jungle ★★★★
()

Система на uclibc-0.9.33.2

sys-apps/findutils, sys-apps/coreutils и app-arch/tar

А может их заменить на busybox и прописать в package.provided?

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

Спасибо за идею! Счас гляну, что там можно сделать.

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

Вполне можно было бы сажать говнокодеров на кол, чтобы не добавлять костыли в компилятор.

anonymous
()

Зачем такое может понадобиться? Там шо, в ваших хидерах что-то вроде инкремента каунтера? (шото помню в какой-то книге какой-то умник «счетчик загрузки библиотеки» в хидере инкрементил.)

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

Поддерживает. Но при компиляции указанных пакетов вываливается ошибка повторного включения заголовка с прерыванием компиляции.

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

Можно сказать и так. А может патчи забыли для них укомплектовать. Буду разбираться потихоньку.

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

Осталось отыскать кто бы этим занялся..

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

Думаю просто не наложены патчи - буду смотреть дополнительно.

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

Да, но вопрос заключался не в этом.

glibych ★★
() автор топика

Скриптик напиши — делов-то. Что-нибудь вроде

for F in *.h
do
echo "#pragma once" > tmpfile
cat $F >> tmpfile
mv -f tmpfile $F
done

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

На три файла можно и вручную будет патчи накидать и чуток поменять ebuild, но мне придется пока отложить этот вопрос - сейчас будет не до всего, в ноябре только смогу дальше продолжить.

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