Skip to content

Latest commit

 

History

History

filesystem

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

There are several ways, a filesystem can be used to introduce nondeterminism:

  1. readdir order is already covered in its own section

  2. storing mtime, ctime or atime values of files touched during build will introduce varying timestamps

  3. using st_ino or st_dev fields from stat(2)

  4. storing st_size for directories or using st_blocks or st_blksize for any file, because it is filesystem-dependent. E.g. creating a million files and removing them again, will cause a directory to be large on ext4

Seen in the wild:

    • .pyc files in cpython
    • compiled free pascal (fpc) files
    • fwnn .dic files