Skip to content

Releases: yunkya2/elf2x68k

20240929

29 Sep 08:10
Compare
Choose a tag to compare
  • x68k2elf.py でX68k libcなど一部のライブラリのELF形式への変換に失敗する不具合を修正しました。
  • x68k2elf.py で変換元のオブジェクトファイルの拡張アラインメント情報が変換後のELF形式に反映されない問題を修正しました。
  • _dos_bus_err() の関数プロトタイプ宣言がx68k/dos.hになかったのを修正しました。
  • Human68k v3.x でのDOSコール番号の変更に関して、Humanのバージョン番号を参照してDOSコール番号を使い分ける処理が_dos_rename() でのみ行われていなかったのを修正しました。

※ macOS 版の更新は brew upgrade yunkya2/tap/elf2x68k で行ってください。

20240716

16 Jul 12:03
Compare
Choose a tag to compare
  • dirent.h のディレクトリ操作関連API (opendir(), readdir() 等) に対応しました。
  • samples/ に置いていたサンプルコードを別リポジトリ elf2x68k-sample に分離しました。
  • macOS向けのインストール手順を変更して、バイナリ配布の代わりにHomebrewのFormulaとして提供するようにしました。
    • brew install yunkya2/tap/elf2x68k でインストールされます
    • ソースコードからのビルドを行うため数10分程度かかります
  • macOS向けにリモートデバッグをサポートするためのスクリプト m68k-xelf-gdb, m68k-xelf-gdb-init, m68k-xelf-gdb-kill を追加しました。

20240629

29 Jun 14:19
Compare
Choose a tag to compare
  • Apple Silicon macOS (14.5 Sonoma) 用のビルド済みバイナリを追加しました (elf2x68k-Darwin-*.tar.bz2)。
    • macOS は開発元未確認のアプリの実行がデフォルトで禁止されているため、実行には spctlコマンドによる許可 が必要になるようです。設定はセキュリティ上のリスクがあることを確認の上行ってください。
    • セキュリティが気になる方は、補足ドキュメント を参考にソースコードからビルドすることをお勧めします(M3 MacBook Airで30分程度かかります)。
  • 以下のサンプルコードを追加しました。リリースバイナリには含まれていないので、利用する場合はソースコードを clone してください。
    • defsptool - Human68k システムディスクのスプライトパターンエディタをBas2C変換してコンパイルする
    • xsp - よっしん氏作の スプライト管理システム XSP のサンプルコードを elf2x68k でビルドする
  • 使用するソースコードを以下の最新版に更新しました。
    • binutils-2.42
    • gcc-13.3.0
    • newlib-4.4.0.20231231
  • XC ライブラリのインストール処理を改善しました。
    • LHa コマンドをビルドする代わりに unlha.py を使用するように変更しました。
    • ライブラリ生成に ar コマンドを使っていたのを m68k-xelf-ar を使用するよう修正しました。
  • MinGW 環境で UTF-8 の X-BASIC ソースコードから C への変換に失敗する不具合を修正しました。

20240616

16 Jun 05:00
Compare
Choose a tag to compare
  • bas2c に関する以下の修正を取り込みました。
    • 文字列型(str型)を返す関数を変換した際の関数プロトタイプが誤っていた不具合を修正しました。
    • 変換後のプログラムで問題を起こす可能性のある「関数のstr型引数への代入」「str型を返す関数でローカル変数を返す」といった操作をエラーとして扱うようにしました。
  • m68k-xelf-gcc コマンドの -o オプションで出力ファイル名を指定した際の、ELF ファイルと X 形式実行ファイルのファイル名決定ルールを変更しました。
    • 通常の、-o オプションで *.x ファイルを指定する使い方には特に影響はありません。
    • -o オプションを指定しなかった場合のデフォルトでは、ELF ファイル a.out と X形式実行ファイル a.x を生成します。

20240616-gcc14

16 Jun 05:04
Compare
Choose a tag to compare
  • 使用するソースコードをリリース時点での以下の最新版に更新しました。
    • binutils-2.42
    • gcc-14.1.0
    • newlib-4.4.0.20231231
  • gcc-14ではいくつかの新機能が取り込まれた一方で、エラー検出の強化によって従来の gcc でコンパイルできていたソースコードがエラーになる場合があります。また、同じソースコードでも gcc-13 での生成バイナリよりサイズが大きくなる傾向もあるため、従来の gcc-13 版のリリースと並行する形で gcc-14 版をリリースすることにしました。
    • gcc-14 でのエラー対応については、GCC 14への対応について を参照してください。
    • MinGW 版では、gcc の -fanalyzer で表示される Text Art 図が崩れる既知の不具合があります。

20240606

06 Jun 15:05
Compare
Choose a tag to compare
  • bas2c を用いた X-BASIC プログラムのコンパイルに対応しました。m68k-xelf-bas コマンドで X-BASIC から C への変換と変換後のソースコードのコンパイルまでを一度に実行できます。
  • -o オプションを指定しなかった場合の実行ファイルのデフォルトファイル名を a.out から a.x に変更しました。
  • C++ のプログラムから生成した実行ファイルの .bss セクションの初期化が不十分だった不具合を修正しました。
  • テキストモードでの入力時、CTRL-Z のコードが EOF 扱いでなくそのまま読めてしまう不具合を修正しました。

20240119

19 Jan 13:42
Compare
Choose a tag to compare
  • C++例外を使ったソースコードのコンパイルに対応しました。
  • 標準C++ライブラリに例外処理とRTTIを無効にしたバージョンを用意しました。コンパイル時のオプションに-specs=c++small.specs を指定することで使われます。

20240114 (20240115)

14 Jan 06:04
Compare
Choose a tag to compare

ABI が変更されたため、20231202 版以前の elf2x68k で生成したオブジェクトファイルやライブラリは、本バージョン以降の elf2x68k では利用できません。最新バージョンでの再コンパイルが必要になります
gdbserver-x68k の仕様も合わせて変更されました。elf2x68k の更新の際は合わせて最新版に更新してください

(20240115追記) 20240114リリースのLinux版で、スクリプトでダウンロードするXCのファイルを誤って入れたままアーカイブを作ってしまっていたため、削除したバージョン(20240115)に差し替えました。MINGW版の方は変更ありません

  • binutils, gcc のバージョンをそれぞれ最新版に更新しました (binutils-2.41, gcc-13.2.0)
  • elf2x68k.py の仕様を変更し、ELF実行ファイル内の再配置情報を使ってX形式ファイルを生成できるようにしました
  • XC等で作られたオブジェクトファイルやライブラリをELF形式に変換するスクリプト x68k2elf.py を追加しました
  • C Compiler PRO-68K v2.1 (XC) のライブラリを利用できるようにしました。無償公開されているファイルを取得してインストールするスクリプトを添付しています
  • XCのライブラリを利用できるようにするため、ABIをXC互換のものに変更しました

20231202

02 Dec 14:58
Compare
Choose a tag to compare
  • rename() を呼び出すとリンクエラーになる不具合を修正しました。
  • libdos内の_dos_setpdb()が利用できない不具合を修正しました。

20231112

11 Nov 15:32
Compare
Choose a tag to compare
  • DOSコールのエラー番号からerrnoへの変換で配列範囲外にアクセスする可能性がある問題を修正しました。
  • fstat()を実行するとファイルの読み出し位置が狂う問題を修正しました。
  • fgets()でstdinから入力を行う際に改行を入力しても呼出元へ戻らない問題を修正しました。