🍋

FatELF(Macのfat binaryのLinux版)

2023/01/12に公開

MacOSのMach-Oのオブジェクトファイルではfat binaryといって複数のアーキテクチャの実行イメージを共存させることができます。このしくみを利用してひとつの実行ファイルでx86_64とarm64の両方に対応することができます。

同様のことがLinuxでもできないかなと思ったら、これを教えてもらいました。

FatELF: Universal Binaries for Linux.
https://icculus.org/fatelf/

https://github.com/icculus/fatelf
最終更新は2021年7月。
githubにあるコマンドラインツールで、複数のELF実行ファイルをひとつにまとめたてFatELFファイルを作ったり、FatELFから必要なものを取り出すのはできそうです。

Ubuntu 9.04 でデモ版が作られました。

https://en.wikipedia.org/wiki/Fat_binary
ここに書いてある限りは 2021年の段階でLinuxカーネルのメインラインにはマージされておらず、検索しても特に新しい情報は無いので今もマージされていないのだろうと思います。
特に強いニーズが無かったのでしょうね。

Discussion