]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++/modules: Fallback to ftruncate if posix_fallocate fails [PR115008]
authorNathaniel Shead <nathanieloshead@gmail.com>
Sat, 21 Dec 2024 12:42:28 +0000 (23:42 +1100)
committerNathaniel Shead <nathanieloshead@gmail.com>
Sun, 29 Dec 2024 00:15:44 +0000 (11:15 +1100)
commit84aa7065deec49bab9fb0b085cd0a0dcc42cc479
tree204b49257be7cb45e5146ff682c6437f7e9d2145
parentce81cd2eac686dc0f1c91ada0000c779add550b0
c++/modules: Fallback to ftruncate if posix_fallocate fails [PR115008]

Depending on the libc and filesystem, in cases where posix_fallocate
cannot do an efficient preallocation it may return EINVAL.  In such a
case we should fall back to ftruncate instead.

Apparently, depending on the system the use of posix_fallocate can have
a noticeable speedup over ftruncate in general (depending on the system)
so it probably isn't worth it to use ftruncate in all cases.

PR c++/100358
PR c++/115008

gcc/cp/ChangeLog:

* module.cc (elf_out::create_mapping): Fallback to ftruncate if
posix_fallocate fails.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
gcc/cp/module.cc