Module Name: src Committed By: rillig Date: Mon Dec 28 15:21:33 UTC 2020
Modified Files: src/usr.bin/make: parse.c Log Message: make(1): remove mmap for loading files, only allow files < 1 GiB Using mmap is beneficial if the loaded data is read-only, or if it is accessed in random order. Neither of these applies here. When loading a file, make reads it strictly from top to bottom, once. During parsing, the loaded data is modified in-place to insert '\0' and '\n' for terminating strings and lines. Because of all of this, there is no benefit in using mmap. Reading the file using 2 calls to read(2) (one for the data, one for checking for EOF) loads the data in a single pass, instead of producing a page fault whenever the parser passes another page boundary. Use a Buffer for loading the file data, to avoid calling bmake_realloc directly. Do not resize the loaded buffer at the end. Each loaded file is short-lived anyway, and only a few files are loaded at the same time, so there is no point in optimizing this part for low memory usage. To generate a diff of this commit: cvs rdiff -u -r1.521 -r1.522 src/usr.bin/make/parse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.