How do I access more than 256 Megabytes of memory?
By default each program gets one segment register (see 2.24) for its
data segment. As each segment register covers 256 MB, any calls to
malloc more will fail. Also programs that declare large global or static
arrays may fail to load. To allocate more segment registers to your
program, use the linker option -bmaxdata to specify the number of bytes
you need in the data segment as follows:
cc -o myprog -bmaxdata:0x20000000 myprog.c
The example above would allocate an additional segment register to allow
for 512MB of data.