2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

xbyak_aarch64をGoogle Colabで動かす。

Last updated at Posted at 2019-12-12

はじめに

ARM用のJITコンパイラxbyak_aarch64を動かしてみる。ここでは、Google ColabでQEMUを使って動かす。なお、QEMUは、AARCH64の命令を(Google Colabのバイナリの前提である)x86_64の命令に変換するために使っている。

まず、以下のパッケージが必要である。

!apt update
!apt install binutils-aarch64-linux-gnu cpp-8-aarch64-linux-gnu cpp-aarch64-linux-gnu
!apt install g++-8-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-8-aarch64-linux-gnu gcc-8-aarch64-linux-gnu-base:amd64 gcc-aarch64-linux-gnu pkg-config-aarch64-linux-gnu
!apt install qemu qemu-block-extra:amd64 qemu-system-arm qemu-system-common qemu-user qemu-user-static qemu-utils qemu-system-aarch64

次に、環境変数を設定ののち、ソースコードのダウンロード、そしてサンプルコードのコンパイルおよび実行を行う。

  • 環境変数設定
    • LD_PRELOADは、デフォルトだとtcmallocをロードするがうまく動かないので削除している。
  • xbyak_aarch64のダウンロード
  • コンパイル
  • 実行 ($3+4$の足し算をしている)
%env LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib
%env PATH=$PATH:/usr/aarch64-linux-gnu/lib:/usr/bin:/bin
%env LD_PRELOAD=
!ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ld-linux-aarch64.so.1
!git clone http://github.com/fujitsu/xbyak_aarch64
!cd xbyak_aarch64/sample;aarch64-linux-gnu-g++ add.cpp
!/usr/bin/qemu-aarch64 xbyak_aarch64/sample/a.out

注意事項

Qemu 3.1は、2018年12月にリリースされている。このため、Qemu 2.1が配布されているUbuntu 18.04では、すべての命令が動くとは限らない(コアダンプする場合がある)。よって、Qemu 3.1にマニュアルインストールするか、Ubuntu 19.04(Disco)以降に乗り換える必要がある。

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?