Cygwinのクロス環境を64ビット版にしてみる

Last Updated on 2021年9月8日 by kabekin

S1やFMの開発に使ってるCygwin+GCC環境ですが、64ビット版Cygwinに置き換えできないか確認しています。

順調に動いていた6809とZ80用のGCC環境ですが、H8マイコンのGCCを追加したりしていると、
調子が悪くなってしまいました・・・
バックアップしていたファイルを戻したり、色々やってもどうにも調子が悪いのでもう一度作り直そうと思います^^

せっかくなので最新版のCygwinで環境を作り64ビット版でいけないか試してみるのも目的です
6809/Z80用のクロス環境で動作させたいのは以前ダウンロードした
gcc6809-3.4.6-cygwin-CoCo-20071007-bin.tar.gz
z88dk-src-v199A-RC.tgz
です。

こちらが64ビット版Cygwinで動作しないか確認してみます
gcc6809もz88dkも新しいバージョンが出ているので、追々こちらも試したいところ・・・
と、いうわけでWindows10 64ビット版へのCygwin64ビット版インストールの記録をメモ。

https://www.cygwin.com/ から setup-x86_64.exeをダウンロードしてインストール開始
インストールしたのは Version 2.909(64Bit)
Choose A Download Source は「 Install from Internet」 で次へ
Select Root Install Directory は デフォルトの「c:\cygwin64」All Users にチェックで次へ
Select Local Package Directoryはデフォルトのまま次へ
Select Your Internet Connection は「Use System Proxy Setting」で次へ
Choose A Download Site は「https://ftp.yz.yamagata-u.ac.jp」で次へ
Select Packeagesで必要なパッケージを追加

追加したのは
Cygwin32-gcc-g++    6.4.0-1    GCC for Cygwin 32bit tool chain (C++)
gcc-g++    11.2.0-1    GCC Compiler Collection (C++)
make    4.3-1    The GNU version of the ‘make’ utility
autoconf    13-1    Wrapper script for autoconf commands
binutils    2.37-1    GNU assembler, linker, and simiar utilities
の5個
Cygwin64ビット版のインストール完了。

64ビット版はcygwin64フォルダに入って32ビット版とは別々に管理できるようで便利かも^^
インストールされたCygwinのバージョン確認。
cygcheck -c cygwin →  3.2.0-1 がインストールされました
新しいCygwinのコンソールはフォントの変更などができるのでTeraTermなどのターミナルは不要かも
z88dkのインストール
z88dk-src-v199A-RC.tgz  →  エラーでビルドできず
z88dk-src-2.1.tgz →  エラーでビルドできず
以前ビルドしたz88dkをフォルダごとコピーでOK
gcc6809のインストール
gcc6809-3.4.6-cygwin-CoCo-20071007-bin.tar.gzをインストール
/usr/local/m6809/
/usr/local/bin/
/usr/local/lib/gcc/m6809/3.4.6/
/usr/local/libexec/gcc/m6809/3.4.6/
に展開でOK
z88dkとgcc6809が入ったのでS1-CP/M80をビルドしてみると

アセンブラ呼び出しでエラー発生
64ビット版が問題なのかとコマンドラインから直接呼んでみると

ちゃんと動きます
これはコマンド呼出し時の64ビット版と32ビット版とかの問題ではなく別の問題っぽいです^^;;

原因を調べるために32ビット版Cygwinで同じことをして現象を確認します
https://www.cygwin.com/ から setup-x86.exe をダウンロードしインストール
インストールしたのは Version 2.909(32Bit)
インストール操作は上記64ビット版と同様
gcc-g++    11.2.0-1    GCC Compiler Collection (C++)
make    4.3-1    The GNU version of the ‘make’ utility
autoconf    13-1    Wrapper script for autoconf commands
binutils    2.37-1    GNU assembler, linker, and simiar utilities
4個のパッケージ追加
z88dkは32ビット版でもエラーでビルド不可→以前のビルドをフォルダごとコピー
gcc6809-3.4.6-cygwin-CoCo-20071007-bin.tar.gzは新規インストール
64ビット版同様にS1-CP/M80をビルドしてみると
正常にビルドできます^^

生成されたCP/M80も正常に起動しました

ということは64ビット版でコマンド呼び出し時に何か起こってる部分を解決できれば64ビット版でもいけそうかも・・・

今回の作業をまとめると
64ビット版Cygwinだとコマンド呼び出し部でエラーが発生するが32ビット版ではOK
z88dkは64ビット版、32ビット版にかかわらずエラーでビルドできない。
gcc6809は新し目のCygwinでも問題なく動作する。

z88dkは以前は私の環境でもビルドできていたのでCygwinのバージョンと相性がありそうです
以前から使っている
z88dk-src-v199A-RC.tgz
が最近のCygwinに合わないのは納得がいきますが、最新の
88dk-src-2.1.tgz
でもビルドできないのは、Linuxの世界の難しさを思い知らされます^^;;;

やっぱ32ビット版のソフトを64ビット環境で動作させるのは難しいんですかね
もう少し調べてみます

そんなCygwin64ビット版に6809 / Z80 開発環境整備の記録・・・

2件のコメント

  1. samの環境はまだ32bitです。いずれ64bit化できるといいなって思っていました。
    問題はz88dk環境のソースコードからのビルドとgcc6809環境をGNU makeから利用するということですね。
    かべきんさんがトライされたのでハードルはずっと低くなったことだし、ぼちぼちsamもトライしてみます(^^

    1. z88DKのビルドは32ビット版でも最近のCygwinではエラーになってしまいました。gcc6809は最近の新し目のCygwinでも32ビット版ではOKでした。
      64ビット版はどちらもNGでダメでしたが、ネットで調べると情報があるので、色々調べてみます^^

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください