[Bug c++/100358] New: Not all filesystems support posix_fallocate() (e.g. ZFS)

andy at omnios dot org gcc-bugzilla@gcc.gnu.org
Fri Apr 30 13:18:52 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100358

            Bug ID: 100358
           Summary: Not all filesystems support posix_fallocate() (e.g.
                    ZFS)
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: andy at omnios dot org
  Target Milestone: ---

I've been troubleshooting a raft of testsuite failures with gcc 11.1 on OmniOS
(an illumos distribution, using Target: x86_64-pc-solaris2.11).

For example:

dir-only-3.C:10:2: internal compiler error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.

> $G
C++ symbol demangling enabled
> $C
fffffc7fffdf2b90 libc.so.1`memcpy+0x554()
fffffc7fffdf2bd0 elf_out::end+0x102()
fffffc7fffdf2ca0 finish_module_processing+0x4cf()
fffffc7fffdf2d70 c_parse_final_cleanups+0x78c()
fffffc7fffdf2d90 compile_file+0x24()
fffffc7fffdf2e50 toplev::main+0x7e9()
fffffc7fffdf2e80 main+0x31()
fffffc7fffdf2eb0 _start_crt+0x87()
fffffc7fffdf2ec0 _start+0x18()


This turns out to be due to the use of posix_fallocate() in gcc/cp/module.cc -
elf_out::create_mapping()

Although illumos supports the posix_fallocate() function, I am running gcc to
compile files on a ZFS filesystem, and that filesystem does not support this.
Swapping back to ftruncate() resolves the problem, and I suggest that if
posix_fallocate() fails with EINVAL, the code should then try ftruncate().


More information about the Gcc-bugs mailing list