Infomrix 4GL Compiler version 7.32.UC3 を gcc v4 で使おうとすると、 gcc が -fwritable-strings オプションをサポートしていないため、アプリケーションの コンパイルが出来ませんでした。また、$INFORMIXDIR/bin/c4gl を書き換えて無理にコンパイルすると、出来上がったアプリケーションが正しく動作しませんでした。
( フォームの実行時などに、「セグメントエラー」 ( Segmentation Error ) が発生 )
Informix 4GL Compiler version 7.32.UC4 では、GCC4 との組み合わせでも動作するようですね。リリースノートに、gcc 4 での問題を修正した旨の記述があります。
_________________________________________________________
RELEASE NOTES FOR IBM INFORMIX TOOLS 7.32.xC4
DATE: November 2006
________________________________________________________
II. Bugs addressed in the 7.32.xC4 release
00128321 When compiling 4GL.7.32.UC3 application the option
-fwritable-strings will not be accepted by GNU
compiler GCC.4.
試しに RedHat Fedora Core 4 で i4gldemo を動かしてみましたが、demo4.4geのコンパイルと実行が特に問題なく出来ているようです。なお、machine note には、 GCC 4 について何も記載がありませんでした。残念ながら現在のところ GCC4やRHFC4 などでの利用は自己責任でお願いします。
ただし、この話とは別に、RHFC4 などの、一部の SELINUX 環境では、4GL アプリケーションを実行しようとした時に、エラーが出て実行できない場合があります。
c4gl d4_load.4gl
./a.out
./a.out: error while loading shared libraries: /usr/ifxtooluc4/lib/tools/lib4gsh.so: cannot restore segment prot after reloc: Permission denied
上記のようなエラーが発生した場合、次のコマンドを試してみると問題が解決する場合があるようです。
chcon -t texrel_shlib_t $INFORMIXDIR/lib/tools/*.so*
( 多分、chcon -t texrel_shlib_t $INFORMIXDIR/lib/esql/*.so* も必要ですね )
以下のURLにある情報が参考になりました。
http://www.querix.com/support/support/knowledge-base/platform/faq_linux_redhat