64bit Linux(Ubuntu)で32bitプログラムをコンパイルする方法

64bit Linuxで32bitコードを生成するには、gccに-m32オプションをつけてコンパイルします。のはずなのですが、

/usr/include/features.h:374:25: fatal error: sys/cdefs.h: そのようなファイルやディレクトリはありません
#  include <sys/cdefs.h>

というエラーが発生

こんなときはlibc6-dev-i386をインストールすればOKです。

Ubuntuの場合はこんな感じです。

sudo apt-get install libc6-dev-i386