忍者ブログ

なんだか

知らないほうが幸せかもしれない

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

cygwin64でgettext-0.18.2をビルドしようとしたら

$ ../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

cygwin64でcloog-0.18.0をビルドしようと思ったら

checking for __gmpz_init in -lgmp... no
configure: error: Can't find gmp library.

configure時にこんなエラーが出ました。
config.logを覗いてみると

/usr/lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find crtfastmath.o: No such file or directory

crtfastmath.oがないのはなぜかというと
x86_64-pc-cygwin用のpatchの

+ tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfmt-dfprules i386/t-chkstk"

色がついた部分のi386/t-crtfmとt-dfprulesの間にspaceがありませんでした。

修正してx86_64-pc-cygwinのgccをビルドし、

$ cp crtfastmath.o /usr/lib/gcc/x86_64-pc-cygwin/4.8.0/

で、cloog-0.18.0をビルド出来ました。

拍手[0回]

cygwin64なgccのメッセージの表示が化けるのは

本家cygwin64のgccの出力です。cmdプロンプトで

bash-4.1$ LANG=ja_JP@ gcc -v
腟„▒粋昭▒▒ spec ▒‚’篏睡”▒▒—▒▒▒„▒障™▒€‚
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-cygwin/4.8.0/lto-wrapper.exe
▒‚帥ƒ若‚蚊ƒƒ▒ƒˆ: x86_64-pc-cygwin
configure 荐㊤▒š: /home/corinna/src/cross-cygwin/gcc/configure --host=x86_64-pc-
cygwin --target=x86_64-pc-cygwin --prefix=/usr --sysconfdir=/etc --enable-langua
ges=c,c++ --disable-shared --enable-static
▒‚鴻ƒ▒▒ƒƒ▒ƒ‰▒ƒ≪ƒ‡▒ƒĝ single
gcc ▒ƒ▒ƒ若‚吾ƒсƒ▒ 4.8.0 20130215 (experimental) (GCC)
bash-4.1$ LANG=ja_JP@ gcc
gcc: ▒‡翫‘順š„▒‚▒▒ƒ▒▒ƒ幞 ▒…ュŠ›▒ƒ•▒‚<‚ゃƒ▒▒Œ▒‚▒‚Š▒障›▒‚“
▒‚潟ƒ潟ƒ‘▒‚ゃƒ▒▒‚’▒œ罩≪—▒障—▒Ÿ▒€‚

--with-included-gettextで作りなおしたものの表示です。cmdプロンプトで

bash-4.1$ LANG=ja_JP@ gcc.exe -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/4.8/libexec/gcc/x86_64-pc-cygwin/4.8.0/lto-wrappe
r.exe
ターゲット: x86_64-pc-cygwin
configure 設定: ../gcc-4.8-20130217/configure --prefix=/usr/local/4.8 --enable-l
anguages=c,c++,fortran --build=x86_64-pc-cygwin --with-included-gettext --disabl
e-multilib --disable-bootstrap
スレッドモデル: single
gcc バージョン 4.8.0 20130217 (experimental) (GCC)
bash-4.1$ LANG=ja_JP@ gcc.exe
gcc: 致命的エラー: 入力ファイルがありません
コンパイルを停止しました。

gcc内のintlを使うと文字化けは起こらないようです。 --with-included-gettext


ちなみにdllは以下のように出来てます。

bash-4.1$ ls /usr/local/4.8/bin/*.dll
/usr/local/4.8/bin/cyggcc_s-seh-1.dll  /usr/local/4.8/bin/cygssp-0.dll
/usr/local/4.8/bin/cyggfortran-3.dll   /usr/local/4.8/bin/cygstdc++-6.dll
/usr/local/4.8/bin/cygquadmath-0.dll

base-cygwin-toolchain-install-first-20130222.x86_64.tar.xz
が出てます。libgcc等のdllが入ってます。

拍手[0回]

cygwin64なgccをbootstrapで作ってみた

パッケージが不十分なためかメッセージの日本語表示はできていませんが
一応、bootstrapでのビルドに成功しました。

クロスビルドではエラーにならなかったのに、nativeでビルドするとlinkエラーになるとか
謎の動作をしてくれるので、なかなかハマりどころ満載です。
これは、t-softfp-compatを作るようにして回避しました。
しかしながら、今度はその変更でfedoraでクロスビルドするとlinkエラーになるとか
crossとnativeのビルドでこれほど、違いが出るとは思ってもいませんでした。

base-cygwin-toolchain-install-first-20130221.x86_64.tar.xz
が出てます。

拍手[0回]

cygwin64なperl

親切な人がcygwin64で動くperlを作ってくれました。autoconf,automakeも
https://sourceforge.net/projects/cyg64files/


flex-2.5.37-1.x86_64.tar.xz
は動いてないのでご注意を

拍手[0回]

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

最新CM

最新記事

(07/27)
(03/27)
(03/26)
(03/23)
(03/22)
(03/19)
(03/18)
(03/18)
(03/15)
(03/14)
(03/13)
(03/12)
(03/11)
(03/11)
(03/08)
(03/08)
(03/06)
(03/05)
(03/02)
(03/01)
(02/28)
(02/27)
(02/24)
(02/23)
(02/22)

プロフィール

HN:
kenrou
性別:
非公開

バーコード

ブログ内検索

最古記事

(12/15)
(12/16)
(12/17)
(12/18)
(12/19)
(12/20)
(12/21)
(12/22)
(12/23)
(12/24)
(12/25)
(12/26)
(12/27)
(12/28)
(12/29)
(12/30)
(12/31)
(01/01)
(01/02)
(01/21)
(01/22)
(01/23)
(01/24)
(01/24)
(01/28)

P R

忍者アナライズ

コガネモチ

忍者カウンター

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31