поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    2.6.6.7. Примечания к Alpha-DEC-OSF/1

    В случае проблем компиляции при установленных DEC CC и gcc попробуйте запустить configure следующим образом:

    CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 \
    ./configure --prefix=/usr/local/mysql
    

    Если возникнут проблемы с файлом c_asm.h, можно создать и использовать ``фиктивный'' c_asm.h при помощи следующих команд:

    touch include/c_asm.h
    CC=gcc CFLAGS=-I./include \
    CXX=gcc CXXFLAGS=-O3 \
    ./configure --prefix=/usr/local/mysql
    

    Отметим, что перечисленные ниже проблемы с программой ld могут быть решены путем загрузки последнего набора патчей от DEC (Compaq) с https://ftp.support.compaq.com/public/unix/.

    При использовании OSF/1 4.0D и компилятора DEC C V5.6-071 на Digital Unix V4.0 (Rev. 878) компилятор начинает вести себя странно (неопределенные asm-символы). Кроме того, /bin/ld также, похоже, содержит ошибки (проблемы с ошибками _exit undefined возникающими при линковании mysqld). На этих системах нам удалось организовать компиляцию MySQL с помощью следующей строки configure, заменив /bin/ld аналогичным файлом из версии OSF 4.0C:

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
    

    С Digital-компилятором "C++ V6.1-029" должно работать:

    CC=cc -pthread
    CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
           -arch host
    CXX=cxx -pthread
    CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all \
             -arch host -noexceptions -nortti
    export CC CFLAGS CXX CXXFLAGS
    ./configure --prefix=/usr/mysql/mysql
    	    --with-mysqld-ldflags=-all-static \
                --disable-shared --with-named-thread-libs="-lmach -lexc -lc"
    

    В некоторых версиях OSF/1 испорчена функция alloca(). Ситуацию можно поправить удалением из файла config.h строки, в которой определяется HAVE_ALLOCA.

    Может также существовать некорректный прототип для функции alloca() в /usr/include/alloca.h. Предупреждение, вызванное этим, можно игнорировать.

    configure будет автоматически использовать следующие потоковые библиотеки: --with-named-thread-libs="-lpthread -lmach -lexc -lc".

    При использовании gcc можно попробовать запустить configure следующей строкой:

    shell> CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ...
    

    Возникновение проблем с сигналами (MySQL неожиданно аварийно завершает работу при большой нагрузке), может означать, что вы обнаружили ошибку при работе операционной системы с потоками и сигналами. В данном случае можно запретить MySQL использовать сигналы путем конфигурации его следующим образом:

    shell> CFLAGS=-DDONT_USE_THR_ALARM \
           CXXFLAGS=-DDONT_USE_THR_ALARM \
           ./configure ...
    

    Это не повлияет на производительность MySQL, но приведет к побочному эффекту, который проявляется как невозможность оборвать работу клиента со спящим соединением командами mysqladmin kill или mysqladmin shutdown. Вместо этого клиент завершит работу при попытке послать следующую команду.

    При использовании gcc 2.95.2 может возникать следующая ошибка компиляции:

    sql_acl.cc:1456: Internal compiler error in `scan_region', at except.c:2566
    Please submit a full bug report.
    

    Чтобы выйти из положения в этом случае, следует перейти в каталог sql и выполнить последнюю строку gcc (просто выделите ее, например, мышкой и вставьте в терминал), изменив в ней -O3 на -O0 (или добавьте -O0 непосредственно после gcc, если у вас в строке компиляции отсутствует какая-либо опция -O). После выполнения указанных действий вернитесь в каталог верхнего уровня и запустите make повторно.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100