概要
低レイヤを知りたい人のためのCコンパイラ作成入門をやっていたら、M1起因によるエラーが出たので、その解決策を残しておく。
問題
コンパイラ本体の作成で cc -o tmp tmp.s
を行った時、以下のエラーが出た。
tmp.s: Assembler messages: tmp.s:1: Error: unknown pseudo-op: `.intel_syntax' tmp.s:4: Error: operand 1 must be an integer register -- `mov rax,123'
どうやらM1起因のようだ。
解決策
- https://www.sigbus.info/compilerbook/Dockerfile に compilerbookのDockerfileの中身が書いてある
- ↑のファイルのFROMを
ubuntu:latest
からamd64/ubuntu:latest
にしてbuildし直す