Intel® Fortran Compiler for Linux* - Application containing huge BSS section (~1G) suffer segmentation fault

First, users must have enough memory on the system (both physical memory plus swap space) to create arrays with the requested sizes.

Second, the default Linux* kernel on IA-32 loads shared libraries at 1 GB, which limits the contiguous address space available to the application. If the application (code) + static data exceed 2 GB the application will suffer a load time segmentation error.

Alternative solutions are:

  • Compile with -static, i.e. don't load any shared libraries.
  • Allocate some of the application€™s data differently, on the heap or on the stack, which will put it at a higher address than the shared libraries.
  • Rebuild the system€™s Linux kernel so that the shared libraries are loaded at a different default address.
  • Use the prelink command to place needed shared libraries at a different (higher) address.
For more complete information about compiler optimizations, see our Optimization Notice.