On 19.10.2015 12:07, Florian Weimer wrote:
On 10/19/2015 02:50 AM, Alexander Cherepanov wrote:
> gcc doesn't support objects more than half the address space in size --
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67999 . So if you are
> malloc'ing >2GB on 32-bit platforms you should be concerned.
This needs to be fixed in GCC. Even if we artificially fail large
allocations in malloc, there will be cases where people call mmap or
shmat directly. And at least for the latter two, there is an
expectation that this works with larger-than-2-GiB mappings for 32-bit
processes (to the degree that Red Hat shipped very special 32-bit
kernels for a while to support this).
I'm all for fixing it in GCC. It gives more flexibility: you cannot
support huge objects in libc when your compiler doesn't support them but
you can choose if you want to support them in libc when you compiler
support them. But I guess it's not easy to fix.
OTOH perhaps ability to create huge objects in libc should be somehow
hidden by default? As evidenced by this thread:-)
--
Alexander Cherepanov