diff options
| author | Junio C Hamano <gitster@pobox.com> | 2021-07-16 17:42:47 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2021-07-16 17:42:47 -0700 |
| commit | a93c6fd677f16285ce1109f9f200b2b235ab981e (patch) | |
| tree | f41a55ef2d736a19648bed510aa9ff8cdee40aee /object-file.c | |
| parent | fba551379ef89b92b9356caa4096144026250c22 (diff) | |
| parent | dc0592941138df684770bfe800ccad6b810214c3 (diff) | |
| download | git-a93c6fd677f16285ce1109f9f200b2b235ab981e.tar.gz | |
Merge branch 'ew/mmap-failures'
Error message update.
* ew/mmap-failures:
xmmap: inform Linux users of tuning knobs on ENOMEM
Diffstat (limited to 'object-file.c')
| -rw-r--r-- | object-file.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/object-file.c b/object-file.c index f233b440b2..b9c3219793 100644 --- a/object-file.c +++ b/object-file.c @@ -1023,12 +1023,26 @@ void *xmmap_gently(void *start, size_t length, return ret; } +const char *mmap_os_err(void) +{ + static const char blank[] = ""; +#if defined(__linux__) + if (errno == ENOMEM) { + /* this continues an existing error message: */ + static const char enomem[] = +", check sys.vm.max_map_count and/or RLIMIT_DATA"; + return enomem; + } +#endif /* OS-specific bits */ + return blank; +} + void *xmmap(void *start, size_t length, int prot, int flags, int fd, off_t offset) { void *ret = xmmap_gently(start, length, prot, flags, fd, offset); if (ret == MAP_FAILED) - die_errno(_("mmap failed")); + die_errno(_("mmap failed%s"), mmap_os_err()); return ret; } |
