I enable compatible mode on my 64 bit system. I compiled the latest kernel(2.6.22-rc3) with below config:
# CONFIG_IA32_AOUT is not set

Then I compiled DRM kernel module, it reported below error info:
make[1]: Entering directory `/usr/src/linux-2.6'
  CC [M]  /GFX/build/component/Drm/drm/linux-core/drm_ioc32.o
/GFX/build/component/Drm/drm/linux-core/drm_ioc32.c:32:32: error: linux/ioctl32.h: No such file or directory
make[2]: *** [/GFX/build/component/Drm/drm/linux-core/drm_ioc32.o] Error 1

I checked the kernel git log, found that ioctl32.h had been deleted in commit 6272e2667965dfb5b59199f462cd0f001fb304a6:

commit 6272e2667965dfb5b59199f462cd0f001fb304a6
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue May 8 00:29:21 2007 -0700
    cleanup compat ioctl handling
    Merge all compat ioctl handling into compat_ioctl.c instead of splitting it
    over compat.c and compat_ioctl.c.  This also allows to get rid of ioctl32.h

Now I disable the compatible mode in kernel config to compile DRM kernel pass. Please fix this problem.