|
The maximum size of an array that can be created by Intel® C++ IA-32 Compilers for Linux* or MacOS* is 2 GB. For the Intel C++ IA-32 Compiler for Windows* the maximum array size is 0x1FFFFFFF.
Note: You must have enough memory on the system (both physical memory plus swap space) to create arrays with the requested sizes.
On Linux or MacOS, typically, shared libraries are load at 1 GB, which limits the contiguous address space available to your program. You will get a load time error if your program + static data exceed this. The possible work-arounds are as follows:
- build with -static, ie don't load any shared libraries.
- rebuild your kernel so that the shared libraries get loaded at a different default address.
- Allocate some of your data differently, on the heap or on the stack, which will put it at a higher address than the shared libraries.
- Use the prelink command to place the shared libraries that you need at a different (higher) address.
This applies to:
|