Компиляция glibc

Тема в разделе "WASM.UNIX", создана пользователем Mika0x65, 20 июн 2010.

  1. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Мое почтение всем.

    Пытаюсь скомпилировать glibc для отладки загрузчика ELF'ов (ld.so). Собрать хочу с отладочной информацией (-g) и без оптимизации (-O0). С первым проблем нет -- в gdb виден исходный код загрузчика, но из-за оптимизации часть значений увидеть не удается, gdb сообщает, что <value optimized out>. Компилирую в Debian, опцию -g передаю через $DEB_BUILD_OPTIONS. А вот как быть с оптимизацией не понятно. Пробовал через DEB_BUILD_OPTIONS, но все равно получаю оптимизацию O1 (вроде как). Подскажите, как собрать glibc без оптимизации. Заранее благодарен.
     
  2. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    А в чём проблема скачать архив с сорцами, сделать ./configure и руками поправить CFLAGS в сгенерированном мейкфайле?
     
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Может я плохо смотрел, но там нет configure. Сегодня вечером проверю еще раз.
     
  4. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    Есть или нет - не суть. Просто хотел сказать, что забей на apt и установи libc руками из исходников.
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Cr4sh
    Ага, примерно так сейчас и делаю. configure нашелся -- оказывается, если исходник качать через apt-get source libc6, то приходит урезанная версия, без configure. А если скачать tar.gz руками c gnu.org, то все Ок. Теперь осталось побороть все ошибки ./configure && make (что само по себе героический акт) и может получится нормально запустить ld.so под отладкой. Надеюсь, в Debian glibc использовали "как есть", без каких-то специфических изменений.
     
  6. wf_

    wf_ New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2009
    Сообщения:
    40
    лучше передать необходимые параметры через переменные окружения, например до ./configure:
     
  7. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Сделал так:

    ./configure ... CFLAGS="-g". Кстати, скомпилировать glibc с -O0 нельзя из-за

    config.h.in:
    #if !defined __ASSEMBLER__ && !defined _ISOMAC && !defined __OPTIMIZE__
    # error "glibc cannot be compiled without optimization"
    #endif

    Пока не знаю, можно ли это изменить, но с -O1 отлаживать вроде бы, можно.