libc: Do not set errno when mmap(MAP_TRYFIXED) fails.
If this mmap call fails, we'll fall back to moving the allocation to
a different virtual address. Setting errno here might result in
functions further up the call stack misinterpreting an error condition.
Indeed, this surfaced in git's calling of getdelim() in a loop, where
getdelim() would return -1 at EOF, but the caller would find ENOMEM in
errno from a previous, successful, call and interpret that as an OOM.
Fix-to:
07a8ffeaab3fc830679c6836a6ee198ad1a3275f
Suggested-by: aggelos