top
Loading...
2.12.5.6.Alpha-DEC-OSF/1注意事項
2.12.5.6. Alpha-DEC-OSF/1注意事項

如果遇到編譯問題并安裝了DEC CCgcc,嘗試這樣運行configure

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

如果遇到c_asm.h文件的問題,可以創建并使用一個“啞(dummy)c_asm.h文件:

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

請注意從http://ftp.support.compaq.com/public/unix/下載最新的DEC(Compaq)補丁可以修復ld程序的下面問題。

OSF1 V4.0D和編譯器"DEC C V5.6-071 on Digital UNIX V4.0 (Rev. 878)" 上,編譯器有了一些奇怪的行為(未定義asm標志)/bin/ld好象也被破壞(當鏈接mysqld時,發生_exit undefined問題)。在這個系統上,從OSF 4.0C的版本替換了/bin/ld后,我們設法用下列configure命令行編譯MySQL

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"

OSF1的某些版本中,alloca()函數被破壞,通過刪除定義'HAVE_ALLOCA'的“config.h的行更正它。

alloca()函數也可能在/usr/include/alloca.h里面有一個不正確的原型,源于此的警告可以忽略。

configure將自動地使用下列線程庫: --with-named-thread-libs="-lpthread -lmach -lexc -lc"

當使用gcc時,也可以試試這樣運行configure

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

如果你的信號有問題(MySQL出人意料地在高負載下死掉),可能遇到了一個線程和信號有關的OS 缺陷。在這種情況下,你可以告訴MySQL如下配置不使用信號:

CFLAGS=-DDONT_USE_THR_ALARM 
CXXFLAGS=-DDONT_USE_THR_ALARM 
./configure 

這不影響MySQL性能,但是有副作用,就是不能用mysqladmin killmysqladmin 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 (或如果編譯行沒有任何-O選項,應在gcc后面增加-O0)。之后,可以回到頂級目錄并重新運行make

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/installing.html
北斗有巢氏 有巢氏北斗