default kernel for machine uses 1Gb system RAM. this kernel will happily run executables up to around 1Gb size, as you might expect. these executables are from fortran77 source, on f77 compiler or pgf77 compiler. however with a kernel compiled for 2Gb RAM in xconfig, linux runs OK and recognises that it has 2GB system RAM but will only run executables of up to around 400Mb. this isn't a fortran problem, all programs have the same error, and i've checked the code and debug reports with xxgdb.
Please update to the latest kernel release. The 400MB application size limit is partly due to library mapping locations and other similar fixed address allocations. The latest Red Hat kernels include the 4GB BIGMEM patch so that they can access 4GB of RAM *and* still provide a 3-1 split of virtual address to kernel mapped memory space. This should solve your problem. The issue you are reporting isn't actually a bug, it's a side effect of the 2-2 split option in the kernel.
bigmem patch in 2.2.12-5.0 seems to not solve this problem. compiles & boots OK, same memory error.
bigmem patch in 2.2.14-12 still not solving problem. machine memory recognised OK, memory split only slightly improved (can now run up to about 600Mb).
C library issue
in kernel 2.4.0-test4, with HIGHMEM support enabled, the problem solved by adjusting the TASK_UNMAPPED_BASE definition line in processor.h. normally defined as 'TASK_SIZE/3', i set to 'TASK_SIZE/1.5'. i would expect HIGHMEM patch to do this anyway though, patch doesn't solve problem without this fix. (fix discussed with ingo molnar mingo).