由於主機更換的關係,在 FreeBSD 6.2 STABLE/AMD64 下編譯執行 MudOS v22.2b14(32bits compatible) 時遇到了許多問題,目前 FreeBSD 預設之 gcc 對於 -m32 的設定並不完整,但可以透過 gcc -dumpspecs > /usr/libdata/gcc/specs 後修改該檔案,加入以下支援 m32 的部份,包括 library 與 dynamic_linker(FreeBSD 必須先安裝 /usr/lib32)
*startfile_prefix_spec:
%{m32:/usr/lib32/; :/usr/lib/}*fbsd_dynamic_linker:
%{m32:/libexec/ld-elf32.so.1; :/libexec/ld-elf.so.1}
修改以上 specs 後便可以正常執行 gcc -m32,此外由於 RW MudOS 有使用 -lmysqlclient,因此在 AMD64 環境下必須先產生一份 i386 的 mysql library(例如 /usr/local/lib/mysql32),接著可利用 ldconfig -32 -m /usr/local/lib/mysql32 將 i386 版本的 mysql library 加入 /var/run/ld-elf32.so.hints 裡。完成以上步驟後便可以在 AMD64 環境下以 32bits mode 啟動 MudOS v22.2b14。
Recent Comments