22.09.2012 16:29, Andrey Rahmatullin пишет: >>>>>> scons prefix=/usr sysconfdir=/etc FLAGS="$(DEB_BUILD_OPTIONS)" >>>>>> LINKFLAGS="$(LDFLAGS)" CCFLAGS="$(CPPFLAGS) $(CFLAGS)" >>>>> В общем случае зависит от SConstruct, но зачем вы туда передаёте >>>>> DEB_BUILD_OPTIONS? >>>> На всякий случай... >>>> Где-то я прочитал: "If you want to pass custom additonal options to >>>> configure, >>>> you can set up the DEB_BUILD_OPTIONS environment variable." >>> Нашлось >>> http://www.cyberciti.biz/faq/rebuilding-ubuntu-debian-linux-binary-package/ >>> и http://www.mplayerhq.hu/DOCS/HTML/zh_CN/linux.html >>> Судя по всему, один идиот неправильно использовал DEB_BUILD_OPTIONS в >>> своём пакете mplayer, а другой, ещё больший, прочитал его доку и решил, >>> что она применима для любых пакетов вообще, что и написал в своей. >> Хм... Меня вы тоже идиотом считаете? > Нет, пока вы не станете прочитанную в плохих левых хауту дезинформацию > рассказывать другим. Хм... Но они-то верили, что делают правильно... Наверное...
>>>> Его содержимое включается в переменные с опциями сборки автоматически? >>> Нет, разумеется. Читайте: >>> http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options >> Тьфу, блин. Надо будет прочитать Policy полностью. >> Так всё-таки, если я хочу их использовать, я должен всегда обрабатывать их >> самостоятельно, как в примере, или есть автоматические подстановки (например, >> для GNU системы сборки)? > Кого их? Опции в DEB_BUILD_OPTIONS, очевидно... >>>>>> Любопытно, разве scons не должен брать два последних параметра из >>>>>> окружения? >>>>> Нет конечно, scons полностью и сознательно игнорирует окружение. Это тоже >>>>> "фича". >>>> С целью? o.O >>> Чтобы не зависеть от окружения. >> В чём смысл? > SCons does not automatically propagate the external environment used to > execute 'scons' to the commands used to build target files. This is so > that builds will be guaranteed repeatable regardless of the environment > variables set at the time scons is invoked. Ээээ... Они полагают, что пользователь, который собирает программу, будет не в состоянии сам контролировать свои переменные окружения? >>>>>> Короче, как сделать, чтобы было правильно? >>>>>> С флагами мне не очень понятно, запутался. >>>>> В ситуации, когда содержимое флагов надо всё равно передавать в сборочную >>>>> систему вручную, необходимо и достаточно спросить значения флагов у >>>>> dpkg-buildflags и правильно их передать куда надо. >>>> Т.е., нужно: >>>> "$(shell dpkg-buildflags --get CPPFLAGS)"? >>>> Почему переменные с флагами не устанавливаются автоматически? >>> Что значит не устанавливаются? >> Почему они не включаются в make файл. > Какой ещё файл? В rules, в смысле. >> Кстати, внезапно: >> `gcc -o build/linux2/configure_tests/conftest_0.o -c -O2-D_FORTIFY_SOURCE=2 >> -g >> -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat >> -Werror=format-security >> -DPACKAGE=\"rhvoice\" -DVERSION=\"0.3\" -I. -Is$ >> cc1: error: argument to '-O' should be a non-negative integer >> scons: Configure: n` >> >> scons действительно создаёт configure.log. >> Проблема оказалась здесь: -O2-D_FORTIFY_SOURCE=2 . >> Проблема решилась расстановкой пробелов внутри кавычек вокруг опций. > Скорее это склеивание в SConstruct кривое. Ясно. Я написал, может посмотрит, исправит. Кстати, я заметил ещё такую штуку: `gcc -o build/linux2/configure_tests/conftest_0.o -c -O2 -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wextra -DPACKAGE=\"rhv\ oice\" -DVERSION=\"0.3\" -I. -Isrc/include build/linux2/configure_tests/conftest_0.c` Опции -O2 - повторяются два раза, как и установка _FORTIFY_SOURCE. Это где-то у меня ошибка, связанная с дублированием опций? >> P.S.: >> Нормально, что hardening-check пишет 'Immediate binding: no, not found!' ? > Вы его не заказывали, а по дефолту оно выключено. man dpkg-buildflags Ясно. Кстати, а hardening (например, проверка стека) сильно влияет на производительность? -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

