The configuration file specifies information that the compiler uses when you invoke it. XL Fortran provides the default configuration file /etc/opt/ibmcmp/xlf/9.1/xlf.cfg at installation time.
If you are running on a single-user system, or if you already have a compilation environment with compilation scripts or makefiles, you may want to leave the default configuration file as it is.
Otherwise, especially if you want many users to be able to choose among several sets of compiler options, you may want to add new named stanzas to the configuration file and to create new commands that are links to existing commands. For example, you could specify something similar to the following to create a link to the xlf95 command:
ln -s /opt/ibmcmp/xlf/9.1/bin/xlf95 /home/lisa/bin/my_xlf95
When you run the compiler under another name, it uses whatever options, libraries, and so on, that are listed in the corresponding stanza.
Notes:
The configuration file contains the following attributes:
You may find it more convenient to set up this attribute than to pass options to the linker through the -W compiler option. However, most unrecognized options are passed to the linker anyway.
include = -l/path1, -l/path2, ...
The following is an example of a configuration file:
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 provides the library libxlf90_r.so in addition to libxlf90_t.so. The library libxlf90_r.so is a superset of libxlf90_t.so, which is a partial thread-support run-time library. The file xlf.cfg has been set up to link to libxlf90_r.so automatically when you use the xlf90_r, xlf95_r, and xlf_r commands.