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.