Ada GPL 2006はx86_64では動かない?
Ada GPL 2006を流れに乗ってLinuxにインストールしてみた。が、環境が悪いのかコンパイラが上手く動かない。
とりあえずHello, World!をgnatmakeしてみたら、リンカがcrt1.oが無いと言って死んでしまう。どうも原因はx86_64な環境らしく、crt1.oは/usr/lib64にあるのだが、付属のgccが/usr/libを探しに行っているようだ。試しに付属のgcc単体を-B /usr/lib64を付けて適当なCのファイルをコンパイルしてみたところ、次のような感じで結局コンパイルできなかった。
ishikawa:/usr/gnat/bin% ./gcc -v Reading specs from /usr/gnat/lib/gcc/i686-pc-linux-gnu/3.4.6/specs Configured with: /cardhu.b/gnatmail/release-gpl/build-cardhu/src/configure --prefix=/usr/gnat --enable-languages=c,ada --disable-nls --disable-libada --target=i686-pc-linux-gnu --host=i686-pc-linux-gnu --disable-checking --enable-threads=posix Thread model: posix gcc version 3.4.6 for GNAT GPL 2006 (20060522) ishikawa:/usr/gnat/bin% ./gcc ~/hoge.c /usr/gnat/libexec/gcc/i686-pc-linux-gnu/3.4.6/ld: crt1.o: No such file: No such file or directory collect2: ld returned 1 exit status ishikawa:/usr/gnat/bin% ./gcc -B /usr/lib64 ~/hoge.c /usr/lib64/crt1.o: file not recognized: File format not recognized collect2: ld returned 1 exit status naz:/usr/gnat/bin%
当然と言えば当然なのかもしれないが、64bitなオブジェクトファイルは読んでくれないらしい。
configureのオプションをそのままコピーしてx86_64向けのgccをコンパイルすれば何とかなるのだろうか……。