Is gnat-4.9 supposed to work on x32, or is it currently unsupported? I'm suspecting it's unsupported: when I tried to build a cross-compiler from x86_64 to x32, I got numerous errors in the standard library build like
/home/builder/gcc-4.9/gcc-4.9-4.9.1/build/./gcc/xgcc -B/home/builder/gcc-4.9/gcc-4.9-4.9.1/build/./gcc/ -c -g -O2 -W -Wall -gnatpg -nostdinc -g \
a-tags.adb -o a-tags.o
a-tags.adb:82:04: warning: types for unchecked conversion have different sizes
a-tags.adb:85:04: warning: types for unchecked conversion have different sizes
a-tags.adb:90:04: warning: types for unchecked conversion have different sizes
a-tags.adb:93:04: warning: types for unchecked conversion have different sizes
a-tags.adb:96:04: warning: types for unchecked conversion have different sizes
a-tags.adb:102:04: warning: types for unchecked conversion have different sizes
a-tags.adb:105:04: warning: types for unchecked conversion have different sizes
a-tags.adb:108:04: warning: types for unchecked conversion have different sizes
a-tags.adb:111:04: warning: types for unchecked conversion have different sizes
a-tags.adb:766:07: warning: types for unchecked conversion have different sizes
../gcc-interface/Makefile:2834: recipe for target 'a-tags.o' failed
make[7]: *** [a-tags.o] Error 1
And in src/gcc/ada/system-linux-x86_64.ads, it looks like it does declare System.Memory_Size := 2**64, unconditionally.