iconv,libxml2iconvとlibxml2は非常に裏方的なライブラリだ。iconvは文字セットの変換を行うライブラリで、libxml2はXMLを操作するライブラリになる。これらを使用しているソフトウェアを利用していても、その存在を意識しないことは多いだろう。iconvはmingwPORTにもあるが、執筆時点では1.11と最新の1.13より古いため、オリジナルからビルドする。iconvのcp932パッチWindows上で使用するに当たって、よりWindowsアプリらしい動作にするためのパッチを導入する。WindowsのOSレベルでは、マイクロソフト的Shift_JISであるcp932とUnicode間の変換において、標準的なマッピングとは異なるマッピングを使用している。このパッチは、本来iconvが標準的なマッピングを使用するところを、Windowsの変換と同じマッピングを使用するように変更するものだ。これを適用しない場合、iconvを使用するソフトウェアを作成すると、本来意図する文字とは別の文字が使用され、様々な不具合を発生する可能性がある。ファイル名の変換を行う場合、存在するはずのファイルが発見できないといった、通常想定しないエラーになり、頭を悩ませることになる。似た文字にマッピングされるあたり、なおのこと気づきにくいバグになるだろう。Windowsのマッピングが正しいわけではないだろうが、正しいマッピングを使用することでMinGWで作成するソフトウェアが動作しないようでは困るので、猫科研究所ではパッチを適用することをお勧めする。libxmlftp://xmlsoft.org/libxml2/libxml2-sources-2.7.3.tar.gzいずれも/srcに展開しよう。上記で説明しているので省略する。ビルドlibiconvパッチを当てる以外は特別な点はない。install--enable-staticはstaticライブラリを作成する指定で、--disable-sharedは.DLL版のライブラリを作成させないオプションだ。猫科研究所ではstaticライブラリを推しているため、頻出のオプションである。libxml2いくつかオプションを指定する以外は特別な点はない。installconfigureの行は若干長いので\で改行してる点に注意。--without-modulesは一般的とは限らないオプションで、libxml2固有と思った方がよい。それぞれデバッグ不要、旧インターフェース不要、dynamicモジュール不使用の指定である。libxml2はpthreadが存在すると自動的にpthreadを使用するマルチスレッド版をビルド・インストールしようとする。pthreadは様々な注意が必要なので、猫科研究所では推奨しない。GCCにTDM版を使用している場合、注意が必要だ。Perl5.010001。