BUILD

C++コンパイラとlibgcc_c.so、libstdc++.so

ビルドオプションのひとつであるCXXを何も指定しない場合、環境にも依ると思いますが、コンパイラにより生成されるmysqldバイナリが、libgcc_c.so、libstdc++.soにリンクする場合があります。CXXはC++コンパイラを指定するためのフラグです。例えばこんな感…

--with-tcp-portが効かない

Windowsでは効いていた(ような気がする)けど、Linuxバイナリにどうも--with-tcp-portが効いていない感じ。 ./configure --with-tcp-port=9999 && make sql/mysqld --help --verbose | grep portするとmaster-portとかreport-portとかは変わるのにportが変わ…

--with-libedit直ってない

どーしよー♪ どーしよー♪readlineはGPLだけどlibeditはBSDライセンスだからという理由で使おうとすると、mysqlクライアントの対話モードで日本語入力できない現象がまだ直ってません。日本語入力できるようにする前のEmacsみたいに、うちこんだ瞬間に空文字…

sennachkにlibsennaを組みんでビルド

以下でいいのかな。 CFLAGS=-static CXXFLAGS=-static ./configure XXX大丈夫っぽい。バイナリサイズでかくなるけどねw senna-1.0.7/src$ ldd sennachk libc.so.6 => /lib/tls/libc.so.6 (0x001e0000) /lib/ld-linux.so.2 (0x001c7000)要するに、1個下のエン…

--with-mysqld-ldflags=-static

通常、MySQLに限らずC/C++等のネイティブな言語で書かれたプログラムをビルドする際には、依存ライブラリに対してstaticなリンクを行う方法とdynamicなリンクを行う方法の2つの方法がコンパイラから提供されています。MySQLでは「全部Staticで」「全部Dynami…

PIC - Position Independent Codeについて

PICとは 任意のアドレスにロード可能なコードのこと。データのアクセスやジャンプは相対アドレスで行われます。 共有ライブラリはPICでコンパイルする PICでコンパイルすることで共有ライブラリが意図している本来の機能を発揮できます。PICでないと実行時の…

mi_rename.cがVC++でビルドできなくなったので修正

昨日Mergeしたmi_rename.cの改良を含んだソースをVC++でビルドしようとしたらコンパイラに怒られてビルドできず。こんな感じで、auto変数の宣言がブロック内の途中にあるとVC++はコンパイルさせてくれないみたいです。 { mi_open(old_name, O_RDONLY, o); ui…

configure --with-server-suffixとmake bin-dist

Tritonnバージョンを"--with-server-suffix"で記述するようにしてみたら、、、make bin-distとかのコマンドが、、 Creating and compressing archive mysql-tritonn-1.0.2-5.0.42-linux-x86_64/ mysql-tritonn-1.0.2-5.0.42-linux-x86_64/scripts/ mysql-tri…