Мое почтение всем. Пытаюсь скомпилировать glibc для отладки загрузчика ELF'ов (ld.so). Собрать хочу с отладочной информацией (-g) и без оптимизации (-O0). С первым проблем нет -- в gdb виден исходный код загрузчика, но из-за оптимизации часть значений увидеть не удается, gdb сообщает, что <value optimized out>. Компилирую в Debian, опцию -g передаю через $DEB_BUILD_OPTIONS. А вот как быть с оптимизацией не понятно. Пробовал через DEB_BUILD_OPTIONS, но все равно получаю оптимизацию O1 (вроде как). Подскажите, как собрать glibc без оптимизации. Заранее благодарен.
А в чём проблема скачать архив с сорцами, сделать ./configure и руками поправить CFLAGS в сгенерированном мейкфайле?
Cr4sh Ага, примерно так сейчас и делаю. configure нашелся -- оказывается, если исходник качать через apt-get source libc6, то приходит урезанная версия, без configure. А если скачать tar.gz руками c gnu.org, то все Ок. Теперь осталось побороть все ошибки ./configure && make (что само по себе героический акт) и может получится нормально запустить ld.so под отладкой. Надеюсь, в Debian glibc использовали "как есть", без каких-то специфических изменений.
Сделал так: ./configure ... CFLAGS="-g". Кстати, скомпилировать glibc с -O0 нельзя из-за config.h.in: #if !defined __ASSEMBLER__ && !defined _ISOMAC && !defined __OPTIMIZE__ # error "glibc cannot be compiled without optimization" #endif Пока не знаю, можно ли это изменить, но с -O1 отлаживать вроде бы, можно.