Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




Справочное руководство по MySQL

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

    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
    

    Ниже приведена информация, которую прислал нам пользователь HP-UX версии 11.x. Она касается компиляции MySQL компилятором Hp-UX:x:

     Окружение:
         подходящие компиляторы.
             setenv CC cc
    	 setenv CXX aCC
         опции
             setenv CFLAGS -D_REENTRANT
    	 setenv CXXFLAGS -D_REENTRANT
    	 setenv CPPFLAGS -D_REENTRANT
        % aCC -V
        aCC: HP ANSI C++ B3910B X.03.14.06
        % cc -V /tmp/empty.c
        cpp.ansi: HP92453-01 A.11.02.00 HP C Preprocessor (ANSI)
        ccom: HP92453-01 A.11.01.00 HP C Compiler
        cc: "/tmp/empty.c", line 1: warning 501: Empty source file.
     конфигурация:
        ./configure --with-pthread \
        --prefix=/source-control/mysql \
        --with-named-thread-libs=-lpthread \
        --with-low-memory
    

    к `include/m_ctype.h' добавлена запись #define _CTYPE_INCLUDED. Это одно из обозначений, определенных в HP в `/usr/include/ctype.h':

    /* Don't include std ctype.h when this is included */
    #define _CTYPE_H
    #define __CTYPE_INCLUDED
    #define _CTYPE_INCLUDED
    #define _CTYPE_USING /* Don't put names in global namespace. */
    
    • для того, чтобы компилятор распознавал прототип функции localtime_r, во время компиляции необходимо использовать флаг -D_REENTRANT. Можно также написать собственный прототип для localtime_r. Но я хочу устранить существующие ошибки без внесения новых. Поскольку я не знаю точно, когда этот ключ действительно нужен, я добавил его использование во всех случаях.
    • флаги оптимизации, используемые при сборке MySQL (-O3), не распознаются компилятором HP. Я не изменял ключи.

    При получении следующего сообщения об ошибке при работе 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++.


Поиск по документации:



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |