Linux
GCC
Cygwin
クロスコンパイル

Cygwinでクロスコンパイル環境を構築したかったログ

これは何?

0から作るソフトウェア開発 - 環境準備その1Cygwinとコンパイラとアセンブラ

こちらのページを参考にCygwin環境にLinux向けのクロスコンパイル環境を構築しようとした所色々詰まって諦めるまでの記録を残します。
備忘録的に残していますが、解決方法をご存知の方是非ご教授をお願いします…是非に…。

行ったこと

Cygwin上でLinuxをターゲットにしたCコンパイラ環境を構築するためにはlinux-binutilslinux-gccという2つのパッケージを追加する必要があり、これを追加するために以下2つの方法を試しました。

1.Cygwinのセットアップからインストールを試す

Cygwinのセットアップファイルを実行 1

% ./setup-x86_64.exe -K http://cygwinports.org/ports.gpg 

インストールウィンドウが表示されるのでダウンロードサイトの選択まで進める
User URLにftp://ftp.cygwinports.org/pub/cygwinports
を入力してAdd-次へを選択
cygports.PNG

この後上手くいけばlinux-binutilslinux-gcc等パッケージが表示されるはずだが…

このように表示されて失敗してしまう
cygportsun.PNG

アドレスが変更されてる?と思い直接ftp://ftp.cygwinports.org/pub/cygwinportsにブラウザでアクセスしてみると存在、、Anonymousログインして中身を見ると何もなし
pub-cygwinports.PNG

ミラーアドレスも見つけられずここで断念、別の方法を試してみることに


2.ソースから直接ビルドを試す

cygwinportsの公式を確認するとgithubがリンクされており、リポジトリを確認すると目的のlinux-binutillinux-gccのcygport 2 を発見出来たのでそちらをビルドしてみることに

  • リポジトリのクローン
    先ず見つけたリポジトリをCygwinのローカルに持ってきました
    % git clone https://github.com/cygwinports/linux-binutils

  • cygportからのビルド
    次にビルドですが、cygportのビルドは

    • fetch : ソースを取得
    • prop : 作業ディレクトリの構築
    • compile : パッケージのコンパイル という段階でビルドを行うようなので(いけむランド - cygport再入門 より) そのように実行しますが…
cygport ./linux-binutils.cygport fetch

--2018-05-01 23:44:22--  http://ftp.jaist.ac.jp/pub/GNU/binutils/binutils-2.29.1.tar.bz2
ftp.jaist.ac.jp (ftp.jaist.ac.jp) をDNSに問いあわせています... 150.65.7.130
ftp.jaist.ac.jp (ftp.jaist.ac.jp)|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 29123355 (28M) [application/x-bzip2]
`binutils-2.29.1.tar.bz2.tmp' に保存中

binutils-2.29.1.tar 100%[===================>]  27.77M   162KB/s 時間 14s

2018-05-01 23:44:35 (2.03 MB/s) - `binutils-2.29.1.tar.bz2.tmp' へ保存完了 [29123355/29123355]


~~~中略\~\~~

--2018-05-01 23:44:45--  https://src.fedoraproject.org/cgit/rpms/binutils.git/plain/binutils-2.29-skip-rp14918-test-for-arm.patch
src.fedoraproject.org (src.fedoraproject.org) をDNSに問いあわせています... 209.132.181.15, 209.132.181.16
src.fedoraproject.org (src.fedoraproject.org)|209.132.181.15|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not found
2018-05-01 23:44:46 エラー 404: Not found。

*** ERROR: wget http://pkgs.fedoraproject.org/cgit/rpms/binutils.git/plain/binutils-2.29-skip-rp14918-test-for-arm.patch failed

諸々URI失効で取得出来ず…
一縷の望みをかけてprop,compileをかけるも当然の様に必要ファイルが足りずにエラー終了


おわりに

以上2つを行っていったのですがどちらも問題が発生、自分の知識では対処できないと感じ、現状はVM上にLinuxを構築してそちらの環境を使っています。

悔しいのでもう少し知識を着けてから再挑戦したいですね…

注釈


  1. -K はftpアクセス用の公開鍵を指定するオプション *-K --pubkey : Path to extra public key file (gpg format)* 

  2. cygportとはcygwinのパッケージを作成するツールレシピを示す記述形式 - いけむランド - cygport再入門より