構成ファイルは、呼び出された時にコンパイラーが使用する情報を指定します。XL Fortran は、 インストール時にデフォルト構成ファイル /etc/opt/ibmcmp/xlf/9.1/xlf.cfg を 提供します。
シングルユーザー・システム上で実行している場合、またはコンパイル・スクリプトや makefiles を持つコンパイル環境をすでに 持っている場合は、デフォルトの構成ファイルをそのままにしておくこともできます。
それ以外の場合、特に多数のユーザーにいくつかの一連のコンパイラー・オプションの中から選択できるようにさせたい場合は、 次のように新しく命名したスタンザを構成ファイルに追加して、既存のコマンドにリンクする新規コマンドを作成することもできます。 たとえば、以下と同様の方法で指定して、xlf95 コマンドとのリンクを作成することができます。
ln -s /opt/ibmcmp/xlf/9.1/bin/xlf95 /home/lisa/bin/my_xlf95
他の名前でコンパイラーを実行すると、コンパイラーは対応するスタンザにリストされているオプション、ライブラリーなどを 使用します。
注:
構成ファイルには、以下の属性が含まれています。
認識されないオプションのほとんどは、いずれの場合もリンカーに 渡されますが、-W コンパイラー・オプションによってリンカーにオプションを渡すよりも、 この属性を設定した方が便利です。
include = -l/path1, -l/path2, ...
構成ファイルの例を以下に示します:
xlf95: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qfree=f90 * Alias for standard Fortran compiler f95: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qfree=f90 fsuffix = f95 * Fortran 90 compiler xlf90: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qxlf90=noautodealloc:nosignedzero,-qfree=f90 * Alias for Fortran 90 compiler f90: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qxlf90=noautodealloc:nosignedzero,-qfree=f90 fsuffix = f90 * Original Fortran compiler xlf: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qnozerosize,-qsave,-qalias=intptr, -qposition=appendold,-qxlf90=noautodealloc:nosignedzero, -qxlf77=intarg:intxor:persistent:noleadzero:gedit77: noblankpad:oldboz:softeof * Alias for original Fortran compiler f77: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qnozerosize,-qsave,-qalias=intptr, -qposition=appendold, -qxlf90=noautodealloc:nosignedzero,-qxlf77=intarg: intxor:persistent:noleadzero:gedit77:noblankpad: oldboz:softeof * Alias for original Fortran compiler, used for XPG4 compliance fort77: use = DEFLT libraries = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qnozerosize,-qsave,-qalias=intptr,-qposition=appendold, -qxlf90=noautodealloc:nosignedzero,-qxlf77=intarg:intxor: persistent:noleadzero:gedit77:noblankpad:oldboz:softeof * xlf with links to thread-safe components xlf_r: use = DEFLT libraries = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath smplibraries = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath smplibraries_64 = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qthreaded,-qnozerosize,-qsave,-qalias=intptr, -qposition=appendold,-qxlf90=noautodealloc:nosignedzero, -qxlf77=intarg:intxor:persistent:noleadzero:gedit77: noblankpad:oldboz:softeof * xlf90 with links to thread-safe components xlf90_r: use = DEFLT libraries = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath smplibraries = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath smplibraries_64 = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qxlf90=noautodealloc:nosignedzero,-qfree=f90, -qthreaded * xlf95 with links to thread-safe components xlf95_r: use = DEFLT libraries = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath libraries_64 = -lxlf90_r,-lxlopt,-lxlomp_ser,-lxl,-lxlfmath smplibraries = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath smplibraries_64 = -lxlf90_r,-lxlopt,-lxlsmp,-lxl,-lxlfmath gcc_libs = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc gcc_libs_64 = -ldl,-lrt,-lpthread,-lm,-lc,-lgcc options = -qfree=f90,-qthreaded * Common definitions DEFLT: xlf = /opt/ibmcmp/xlf/9.1/exe/xlfentry crt = /usr/lib/crt1.o crtp = /usr/lib/crti.o crte = /usr/lib/crtn.o crtbegin = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/crtbegin.o crtend = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/crtend.o crtsavres = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/crtsavres.o mcrt = /usr/lib/gcrt1.o gcrt = /usr/lib/gcrt1.o crt_64 = /usr/lib64/crt1.o crtp_64 = /usr/lib64/crti.o crte_64 = /usr/lib64/crtn.o crtbegin_64 = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/64/crtbegin.o crtend_64 = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/64/crtend.o crtsavres_64 = /usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/64/crtsavres.o mcrt_64 = /usr/lib64/gcrt1.o gcrt_64 = /usr/lib64/gcrt1.o include_32 = -I/opt/ibmcmp/xlf/9.1/include include_64 = -I/opt/ibmcmp/xlf/9.1/include64 dis = /opt/ibmcmp/xlf/9.1/exe/dis code = /opt/ibmcmp/xlf/9.1/exe/xlfcode hot = /opt/ibmcmp/xlf/9.1/exe/xlfhot ipa = /opt/ibmcmp/xlf/9.1/exe/ipa bolt = /opt/ibmcmp/xlf/9.1/exe/bolt defaultmsg = /opt/ibmcmp/xlf/9.1/msg/en_US as = /usr/bin/as as_64 = /usr/bin/as ld = /usr/bin/ld ld_64 = /usr/bin/ld cppoptions = -C cpp = /opt/ibmcmp/xlf/9.1/exe/cpp dynlib = -dynamic-linker,/lib/ld.so.1 dynlib_64 = -dynamic-linker,/lib64/ld64.so.1 libdirs = -L/opt/ibmcmp/xlsmp/1.3/lib,-L/opt/ibmcmp/xlf/9.1/lib, -R/opt/ibmcmp/xlsmp/1.3/../../lib, -R/opt/ibmcmp/xlf/9.1/../../lib libdirs_64 = -L/opt/ibmcmp/xlsmp/1.3/lib64,-L/opt/ibmcmp/xlf/9.1/lib64, -R/opt/ibmcmp/xlsmp/1.3/../../lib64, -R/opt/ibmcmp/xlf/9.1/../../lib64 gcc_path = /usr gcc_path_64 = /usr gcc_libdirs = -L/usr/lib/gcc-lib/powerpc-suse-linux/3.3.3, -L/usr/powerpc-suse-linux/lib, -L/usr/lib,-L/lib, gcc_libdirs_64 = -L/usr/lib/gcc-lib/powerpc-suse-linux/3.3.3/64, -L/usr/lib/gcc-lib/powerpc-suse-linux/3.3.3, -L/usr/powerpc-suse-linux/lib, -L/usr/lib,-L/lib64, -L/usr/lib64 xlcmp_path = /opt/ibmcmp/xlf/9.1 bigdata = -T/opt/ibmcmp/xlf/9.1/exe/elf32ppclinux.x bigdata_shr = -T/opt/ibmcmp/xlf/9.1/exe/elf32ppclinux_shr.x options = -qnoenablevmx modes_configure = 32_64 crt2 = NULL crt2_64 = NULL xlf_path = /opt/ibmcmp/xlf/9.1
XL Fortran は、ライブラリー libxlf90_t.so に加え、 libxlf90_r.so を提供します。 ライブラリー libxlf90_r.so は部分的スレッド・サポート実行時ライブラリーである libxlf90_t.so のスーパーセットです。 ファイル xlf.cfg は、xlf90_r、 xlf95_r、 および xlf_r コマンドの使用時に libxlf90_r.so に自動的にリンクするように設定されています。