$ ../gettext-0.18.2/configure --prefix=/usr --sysconfdir=/etc --build=x86_64-pc-cygwin
$ make
relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__imp_exit_failure'
とエラーが出て、ビルドが止まってしまいました。
エラーメッセージをたよりに検索してみたところ、
2Gの壁があるとかなんとかの情報を見つけました。
(実は関係無かったのですが)
グルーバル変数を参照するときに、参照できないことがあるとかの言われていたのはこの事だったのかなと思いつつ
いろいろ試したり、ソースを眺めていたりしたりしていたら、解決方法を見つけました。
windowsのx86_64なgccだとdllimportする時のnameが変わっていたのでした。
gettext-0.18.2/gettext-tools/woe32dll/export.hの
#if (defined _WIN64 && defined __MINGW32__)
を
#if (defined _WIN64 && defined __MINGW32__) || (defined __CYGWIN__ && defined __x86_64__)
に変更することで、無事ビルドが終了しました。
export.hをよく読んでみると、変数参照時の
2Gの壁を回避する?ために作成されたマクロだったようです。
意外と、あっさり、
2Gの壁をクリアしていたのには、驚きました。
[0回]
PR