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

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


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

    2.6.6.3. Примечания к HP-UX версий 11.x

    Для HP-UX версий 11.x мы рекомендуем использовать MySQL не ниже 3.23.15.

    Из-за некоторых критических ошибок в стандартных библиотеках HP-UX до попытки запуска MySQL на HP-UX 11.0 необходимо установить следующие патчи:

    PHKL_22840 Streams cumulative
    PHNE_22397 ARPA cumulative
    

    Применение данных патчей решит проблему получения EWOULDBLOCK от recv() и EBADF от accept() в потоковых приложениях.

    При использовании gcc 2.95.1 в системе, к которой не были применены патчи, возникнет ошибка:

    In file included from /usr/include/unistd.h:11,
    		 from ../include/global.h:125,
    		 from mysql_priv.h:15,
    		 from item.cc:19:
    /usr/include/sys/unistd.h:184: declaration of C function ...
    /usr/include/sys/pthread.h:440: previous declaration ...
    In file included from item.h:306,
    		 from mysql_priv.h:158,
    		 from item.cc:19:
    

    Проблема заключается в том, что HP-UX существуют несовместимые определения функции pthreads_atfork(). Конфликтующие прототипы находятся в /usr/include/sys/unistd.h:184 и в /usr/include/sys/pthread.h:440 (подробности приведены ниже).

    Одно из возможных решений заключается в том, чтобы скопировать /usr/include/sys/unistd.h в mysql/include и отредактировать unistd.h так, чтобы определение совпадало с определением из pthread.h. Ниже приведен результат работы diff:

    183,184c183,184
    <      extern int pthread_atfork(void (*prepare)(), void (*parent)(),
    <                                                void (*child)());
    ---
    >      extern int pthread_atfork(void (*prepare)(void), void (*parent)(void),
    >                                                void (*child)(void));
    

    После этого должна работать конфигурационная программа со следующими параметрами:

    CFLAGS="-fomit-frame-pointer -O3 -fpic" CXX=gcc \
    CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti -O3" \
    ./configure --prefix=/usr/local/mysql --disable-shared
    

    Если вы используете MySQL 4.0.5 с компилятором HP-UX, то вам подойдет (проверено на cc B.11.11.04):

    CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --with-extra-character-set=complex
    

    Вы можете игнорировать ошибки, подобные этой:

    aCC: warning 901: unknown option: `-3': use +help for online documentation
    

    При получении следующего сообщения об ошибке при работе configure

    checking for cc option to accept ANSI C... no
    configure: error: MySQL requires a ANSI C compiler (and a C++ compiler).
    Try gcc. See the Installation chapter in the Reference Manual.
    

    следует удостовериться, что путь к компилятору K&R не указан раньше, чем путь к компиляторам HP-UX C и C++.

    Еще одна причина, по которой вы не сможете скомпилировать MySQL, заключается в том, что вы забыли указать флаг +DD64, описанный выше.

     
    © 1997-2005 PHP Club Team
    Rambler's Top100