Notas Alpha-DEC-OSF1


Se você tiver problemas com compilação e tem o DEC CC e o gcc instalados, tente executar o configure desta forma:

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

Se você tiver problemas com o arquivo c_asm.h, você pode criar e usar um arquivo c_asm.h 'burro' com:

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

Perceba que os seguintes problemas com o programa ld pode ser corrigido fazendo o download do último kit de atualização da DEC (Compaq) de http://ftp.support.compaq.com/public/unix/.

Com o OSF1 V4.0D e o compilador 'DEC C V5.6-071 no Digital Unix V4.0 (Rev. 878)' o compilador tem alguns comportamentos estranhos (simbolos asm indefinidos). /bin/ld também aparece estar quebrado (problemas com erros _exit undefined ocorrendo ao ligar no mysqld). Neste sistema, temos compilado o MariaDB com a seguinte linha configure, depois de substituir /bin/ld com a versão do OSF 4.0C:

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

Com o compilador da Digital 'C++ V6.1-029', o seguinte deve funcionar:

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'

Em algumas versões do OSF1, a função alloca() está quebrada. Corrija isto removendo a linha no config.h que define 'HAVE_ALLOCA'.

A função alloca() pode também ter um protótipo incorreto em /usr/include/alloca.h. O alerta resultante deste erro pode ser ignorado.

configure irá usar a seguinte biblioteca thread automaticamente: --with-named-thread-libs='-lpthread -lmach -lexc -lc'.

Quando usar o gcc, você também pode tentar executar configure desta forma:

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

Se você tiver problemas com sinais (MySQL finalzar inesperadamente sobre alta carga), você pode ter encontrado um erro com threads e sinais no SO. Neste caso você pode dizer ao MariaDB para não usar sinais configurando-o com:

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

Isto não afeta a performance do MariaDB, mas tem efeitos colaterais que não permitem finalizar clientes que estão dormindo em uma conexão com mysqladmin kill ou mysqladmin shutdown. Neste caso o cliente irá morrer quando ele receber o próximo comando.

Com gcc 2.95.2, você provavelmente encontrará o seguinte erro de compilação:

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

Para corrigir isto você deve alterar para o diretório sql e fazer um corta e cola da última linha gcc, mas altere -O3 para -O0 (ou adicione -O0 imediatamente depois de gcc se você não tiver algumas opção -O na sua linha de compilação.) Depois disto feito você deve apenas voltar ao diretório superior e executar make novamente.

Retornar