忍者ブログ

なんだか

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

[PR]

×

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

cygwin64なgccをfedoraでクロスビルドしてみた

perlのビルドに失敗したのに、懲りず、今度はfedora18上でcygwin64なgccのビルドをやってみました。

fedoraだとmingw64系gccでのクロスビルドの環境がrpmでパッケージ化されているので
それをrawhide(f19)から以下を拝借します。
mingw-filesystem
mingw-binutils
mingw-gcc

それをしこしこと必要な部分をmingwをcygwinに地道に書き換えていきます。
mingwだとsys-rootの直下がmingwになっているのでそこだけusrにします。

cygwin関係のlibとheaderを今回は作成しない方法でやりました。
cygwin64の場合だとsys-root直下に
base-cygwin-toolchain-install-first-20130217-2.x86_64.tar.xz
を解凍します。

# cd /usr/x86_64-pc-cygwin/sys-root
# tar xJf base-cygwin-toolchain-install-first-20130217-2.x86_64.tar.xz
# cd usr
# ln -s ../bin
# ln -s ../lib

gccビルド時のハマりどころだけ簡単に説明しときます。

公開されているcygwin64のgccは、winsupのパッケージと一緒にビルドされているらしく
windows.hがないと言われてまず、ビルドが止まります。
cygwin-w64.hの
ヘッダーの検索に
%R/usr/include/w32api
を追加します。
次に、windows系のlibがないといって止まります。
これも同じくcygwin-w64.hに
/usr/lib/w32api
をlibの検索に引っかかるようにdefaultの検索
/lib /usr/lib

/usr/lib /usr/lib/w32api
にします。

base-cygwin-toolchain-install-first-20130217-2.x86_64.tar.xzのcygwin64なgccは

--disable-shared --enable-static


この設定でクロスコンパイルされているので、libgcc等がdll化されていません。
libgccのビルドの最後のほうでlinkエラーになりました。
回避方法はlibgccのconfigure、config.hostの中の該当箇所にx86_64-*-cygwin*を追加するだけです。
cygwin64用のgccのpatchが公開されていますが、ちょっと足りなかかったようです。

拍手[0回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

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