Fixing Compile-Time Problems

The following sections discuss common problems you might encounter while compiling and how to avoid them.

Duplicating Extensions from Other Systems

Some ported programs may cause compilation problems because they rely on extensions that exist on other systems. XL Fortran supports many extensions like these, but some require compiler options to turn them on. See Options for Compatibility for a list of these options and Porting Programs to XL Fortran for a general discussion of porting.

Isolating Problems with Individual Compilation Units

If you find that a particular compilation unit requires specific option settings to compile properly, you may find it more convenient to apply the settings in the source file through an @PROCESS directive. Depending on the arrangement of your files, this approach may be simpler than recompiling different files with different command-line options.

Compiling with Thread-safe Commands

Thread-safe invocation commands, like xlf_r or xlf90_r, for example, use different search paths and call different modules than the non thread-safe invocations. Your programs should account for the different usages. Programs that compile and run successfully for one environment may produce unexpected results when compiled and run for a different use. The configuration file, xlf.cfg, shows the paths, libraries, and so on for each invocation command. (See Customizing the Configuration File for a sample configuration file and an explanation of its contents.)

Running out of Machine Resources

If the operating system runs low on resources (page space or disk space) while one of the compiler components is running, you should receive one of the following messages:

1501-229 Compilation ended because of lack of space.
1517-011 Compilation ended.  No more system resources available.
 
1501-053 (S) Too much initialized data.
1501-511. Compilation failed for file [filename].

You may need to increase the system page space and recompile your program. See the man page information man 8 mkswap swapon for more information about page space.

If your program produces a large object file, for example, by initializing all or part of a large array, you may need to do one of the following:

IBM Copyright 2003