threads / bug / 24140

[BUG] git clean not working on FreeBSD/NFS

Subject: [BUG] git clean not working on FreeBSD/NFS

## tl;dr

10 messages between Jun 17, 2010 and Jun 18, 2010.

replies: 9people: 4as markdown or json

Török Edwin· Jun 17, 2010, 14:26 UTC · lore
Hi,

I am running git 1.7.1 on a FreeBSD 8 box which has its home dir mounted via NFS (I guess the NFS server is a Linux box). When running 'git clean -x -f -d' it fails to remove some directories: warning: failed to remove 'libclamav/.deps/' warning: failed to remove 'libclamav/.libs/' warning: failed to remove 'libclamav/c++/.deps/' warning: failed to remove 'libclamav/c++/.libs/' warning: failed to remove 'libclamav/c++/llvm/test/CodeGen/X86/Output/'

This causes buildbot managed builds to fail every 2nd time.
Steps to reproduce:
1. FreeBSD 8 with home mounted via NFS (NFS server probably Linux)
2. Checkout ClamAV, and ./configure it (some other autotooled program
would work too probably)
3. ./config.status
4. git clean -x -f -d -- libclamav
5. ls -l libclamav/.deps

Step 4. fails, step 5 shows remaining files. You can repeat steps 3 and 4 to see the failure over and over again. If instead of the 'git clean' you run 'rm -rf' that works!

Looking at the truss output I see that the error is that the directory is not empty (see end of this mail for detailed truss output): rmdir(0x8011e3080,0x5ff560,0x10,0x2000,0x626298,0x0) ERR#66 'Directory not empty

Which is indeed true, if I run 'ls' on those directories they still have some files in them: git made no attempt to stat/unlink them (it must have missed them during directory listing?). Here are the remaining files: $ ls libclamav/.deps libclamav_la-textnorm.Plo libclamav_la-upx.Plo unrar20.Plo libclamav_la-tnef.Plo libclamav_la-uuencode.Plo unrar_iface.Plo libclamav_la-unarj.Plo libclamav_la-vba_extract.Plo unrarcmd.Plo libclamav_la-uniq.Plo libclamav_la-version.Plo unrarfilter.Plo libclamav_la-unsp.Plo libclamav_la-wwunpack.Plo unrarhlp.Plo libclamav_la-untar.Plo libclamav_la-yc.Plo unrarppm.Plo libclamav_la-unzip.Plo unrar.Plo unrarvm.Plo libclamav_la-upack.Plo unrar15.Plo

There is a second box attached to same NFS server, a Linux 2.6.26. I can't reproduce this bug on that box, so I assume this a FreeBSD / or FreeBSD + NFS specific bug.

However this bug reproduces almost always on the FreeBSD box (2 out of 3 tries approximatively).

uname -mrsp: FreeBSD 8.0-RELEASE amd64 amd64
gcc:
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070719  [FreeBSD]
git --version: git version 1.7.1

There isn't anything relevant in dmesg on the NFS client, and I don't have access to the NFS server.

FWIW running "rm -rf" DOES work!

Relevant part of 'truss git clean -x -f -d -- libclamav': lstat("libclamav/c++/.deps",{ mode=drwx------ ,inode=3222465128,size=20480,blksize=4096 }) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xffff80080111e094,0x0) = 0 (0x0) lseek(5,0x0,SEEK_SET) = 0 (0x0) close(5) = 0 (0x0) lstat("libclamav/cab.c",{ mode=-rw------- ,inode=3535781250,size=18996,blksize=4096 }) = 0 (0x0) lstat("libclamav/cab.h",{ mode=-rw------- ,inode=3535781252,size=1933,blksize=4096 }) = 0 (0x0) lstat("libclamav/cache.c",{ mode=-rw------- ,inode=3535781253,size=19730,blksize=4096 }) = 0 (0x0) lstat("libclamav/cache.h",{ mode=-rw------- ,inode=3535781283,size=1053,blksize=4096 }) = 0 (0x0) lstat("libclamav/chmunpack.c",{ mode=-rw------- ,inode=3535781284,size=22473,blksize=4096 }) = 0 (0x0) lstat("libclamav/chmunpack.h",{ mode=-rw------- ,inode=3535781285,size=3364,blksize=4096 }) = 0 (0x0) lstat("libclamav/clamav.h",{ mode=-rw------- ,inode=3535781286,size=7166,blksize=4096 }) = 0 (0x0) lstat("libclamav/clambc.h",{ mode=-rw------- ,inode=3535781287,size=2738,blksize=4096 }) = 0 (0x0) lstat("libclamav/cltypes.h",{ mode=-rw------- ,inode=3535781288,size=1840,blksize=4096 }) = 0 (0x0) lstat("libclamav/cpio.c",{ mode=-rw------- ,inode=3535781289,size=7978,blksize=4096 }) = 0 (0x0) lstat("libclamav/cpio.h",{ mode=-rw------- ,inode=3535781290,size=971,blksize=4096 }) = 0 (0x0) lstat("libclamav/cvd.c",{ mode=-rw------- ,inode=3535781291,size=16233,blksize=4096 }) = 0 (0x0) lstat("libclamav/cvd.h",{ mode=-rw------- ,inode=3535781292,size=1246,blksize=4096 }) = 0 (0x0) lstat("libclamav/dconf.c",{ mode=-rw------- ,inode=3535781293,size=11601,blksize=4096 }) = 0 (0x0) lstat("libclamav/dconf.h",{ mode=-rw------- ,inode=3535781294,size=3481,blksize=4096 }) = 0 (0x0) lstat("libclamav/default.h",{ mode=-rw------- ,inode=3535781295,size=1308,blksize=4096 }) = 0 (0x0) lstat("libclamav/disasm-common.h",{ mode=-rw------- ,inode=3535781296,size=14271,blksize=4096 }) = 0 (0x0) lstat("libclamav/disasm.c",{ mode=-rw------- ,inode=3535781297,size=78128,blksize=4096 }) = 0 (0x0) lstat("libclamav/disasm.h",{ mode=-rw------- ,inode=3535781298,size=1014,blksize=4096 }) = 0 (0x0) lstat("libclamav/disasmpriv.h",{ mode=-rw------- ,inode=3535781299,size=1678,blksize=4096 }) = 0 (0x0) lstat("libclamav/dlp.c",{ mode=-rw------- ,inode=3535781300,size=13646,blksize=4096 }) = 0 (0x0) lstat("libclamav/dlp.h",{ mode=-rw------- ,inode=3535781301,size=4678,blksize=4096 }) = 0 (0x0) lstat("libclamav/dsig.c",{ mode=-rw------- ,inode=3535781302,size=5612,blksize=4096 }) = 0 (0x0) lstat("libclamav/dsig.h",{ mode=-rw------- ,inode=3535781303,size=1004,blksize=4096 }) = 0 (0x0) lstat("libclamav/elf.c",{ mode=-rw------- ,inode=3535781304,size=20341,blksize=4096 }) = 0 (0x0) lstat("libclamav/elf.h",{ mode=-rw------- ,inode=3535781305,size=2645,blksize=4096 }) = 0 (0x0) lstat("libclamav/encoding_aliases.h",{ mode=-rw------- ,inode=3535781306,size=2010,blksize=4096 }) = 0 (0x0) lstat("libclamav/entconv.c",{ mode=-rw------- ,inode=3535781307,size=20631,blksize=4096 }) = 0 (0x0) lstat("libclamav/entconv.h",{ mode=-rw------- ,inode=3535781308,size=1923,blksize=4096 }) = 0 (0x0) lstat("libclamav/entitylist.h",{ mode=-rw------- ,inode=3535781309,size=32878,blksize=4096 }) = 0 (0x0) lstat("libclamav/execs.h",{ mode=-rw------- ,inode=3535781310,size=1888,blksize=4096 }) = 0 (0x0) lstat("libclamav/explode.c",{ mode=-rw------- ,inode=3535781311,size=7778,blksize=4096 }) = 0 (0x0) lstat("libclamav/explode.h",{ mode=-rw------- ,inode=3533647648,size=1684,blksize=4096 }) = 0 (0x0) lstat("libclamav/filetypes.c",{ mode=-rw------- ,inode=3533647649,size=8010,blksize=4096 }) = 0 (0x0) lstat("libclamav/filetypes.h",{ mode=-rw------- ,inode=3533647650,size=2933,blksize=4096 }) = 0 (0x0) lstat("libclamav/filetypes_int.h",{ mode=-rw------- ,inode=3533647651,size=8669,blksize=4096 }) = 0 (0x0) lstat("libclamav/filtering.c",{ mode=-rw------- ,inode=3533647652,size=23994,blksize=4096 }) = 0 (0x0) lstat("libclamav/filtering.h",{ mode=-rw------- ,inode=3533647653,size=1441,blksize=4096 }) = 0 (0x0) lstat("libclamav/fmap.c",{ mode=-rw------- ,inode=3533647654,size=18843,blksize=4096 }) = 0 (0x0) lstat("libclamav/fmap.h",{ mode=-rw------- ,inode=3533647655,size=1978,blksize=4096 }) = 0 (0x0) lstat("libclamav/fsg.c",{ mode=-rw------- ,inode=3533647656,size=3455,blksize=4096 }) = 0 (0x0) lstat("libclamav/fsg.h",{ mode=-rw------- ,inode=3533647657,size=1009,blksize=4096 }) = 0 (0x0) lstat("libclamav/hashtab.c",{ mode=-rw------- ,inode=3533647658,size=20657,blksize=4096 }) = 0 (0x0) lstat("libclamav/hashtab.h",{ mode=-rw------- ,inode=3533647659,size=4535,blksize=4096 }) = 0 (0x0) lstat("libclamav/htmlnorm.c",{ mode=-rw------- ,inode=3533647660,size=53427,blksize=4096 }) = 0 (0x0) lstat("libclamav/htmlnorm.h",{ mode=-rw------- ,inode=3533647661,size=1513,blksize=4096 }) = 0 (0x0) lstat("libclamav/iana_cctld.h",{ mode=-rw------- ,inode=3533647662,size=11288,blksize=4096 }) = 0 (0x0) lstat("libclamav/iana_tld.h",{ mode=-rw------- ,inode=3533647663,size=17214,blksize=4096 }) = 0 (0x0) lstat("libclamav/inffixed64.h",{ mode=-rw------- ,inode=3533647664,size=8089,blksize=4096 }) = 0 (0x0) lstat("libclamav/inflate64.c",{ mode=-rw------- ,inode=3533647665,size=42823,blksize=4096 }) = 0 (0x0) lstat("libclamav/inflate64.h",{ mode=-rw------- ,inode=3533647666,size=3083,blksize=4096 }) = 0 (0x0) lstat("libclamav/inflate64_priv.h",{ mode=-rw------- ,inode=3533647667,size=8156,blksize=4096 }) = 0 (0x0) lstat("libclamav/is_tar.c",{ mode=-rw------- ,inode=3533647668,size=2212,blksize=4096 }) = 0 (0x0) lstat("libclamav/is_tar.h",{ mode=-rw------- ,inode=3533647669,size=1102,blksize=4096 }) = 0 (0x0) lstat("libclamav/ishield.c",{ mode=-rw------- ,inode=3533647670,size=23291,blksize=4096 }) = 0 (0x0) lstat("libclamav/ishield.h",{ mode=-rw------- ,inode=3533647671,size=934,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse",{ mode=drwx------ ,inode=671908298,size=4096,blksize=4096 }) = 0 (0x0) stat("libclamav/jsparse/",{ mode=drwx------ ,inode=671908298,size=4096,blksize=4096 }) = 0 (0x0) open("libclamav/jsparse/",O_NONBLOCK,022) = 5 (0x5) fstat(5,{ mode=drwx------ ,inode=671908298,size=4096,blksize=4096 }) = 0 (0x0) fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0) fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0) = 512 (0x200) lstat("libclamav/jsparse/future_reserved_words.list",{ mode=-rw------- ,inode=671908299,size=227,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/generated",{ mode=drwx------ ,inode=805472893,size=41,blksize=4096 }) = 0 (0x0) stat("libclamav/jsparse/generated/",{ mode=drwx------ ,inode=805472893,size=41,blksize=4096 }) = 0 (0x0) open("libclamav/jsparse/generated/",O_NONBLOCK,034) = 6 (0x6) fstat(6,{ mode=drwx------ ,inode=805472893,size=41,blksize=4096 }) = 0 (0x0) fcntl(6,F_SETFD,FD_CLOEXEC) = 0 (0x0) fstatfs(0x6,0x7fffffffc960,0x8011e5040,0x3,0x0,0x0) = 0 (0x0) getdirentries(0x6,0x8011e9000,0x1000,0x8011e5188,0xfffffffffffffb90,0x0) = 512 (0x200) lstat("libclamav/jsparse/generated/keywords.h",{ mode=-rw------- ,inode=805472894,size=7530,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/generated/operators.h",{ mode=-rw------- ,inode=805472895,size=7473,blksize=4096 }) = 0 (0x0) getdirentries(0x6,0x8011e9000,0x1000,0x8011e5188,0x27,0x27) = 0 (0x0) lseek(6,0x0,SEEK_SET) = 0 (0x0) close(6) = 0 (0x0) lstat("libclamav/jsparse/js-norm.c",{ mode=-rw------- ,inode=671908300,size=42262,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/js-norm.h",{ mode=-rw------- ,inode=671908301,size=1194,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/keywords.list",{ mode=-rw------- ,inode=671908302,size=147,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/lexglobal.h",{ mode=-rw------- ,inode=671908303,size=3087,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/operators.gperf",{ mode=-rw------- ,inode=671908304,size=931,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/special_keywords.list",{ mode=-rw------- ,inode=671908305,size=47,blksize=4096 }) = 0 (0x0) lstat("libclamav/jsparse/textbuf.h",{ mode=-rw------- ,inode=671908306,size=1045,blksize=4096 }) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x1b,0x1b) = 0 (0x0) lseek(5,0x0,SEEK_SET) = 0 (0x0) close(5) = 0 (0x0) lstat("libclamav/libclamav.map",{ mode=-rw------- ,inode=3533647672,size=3455,blksize=4096 }) = 0 (0x0) lstat("libclamav/line.c",{ mode=-rw------- ,inode=3533647673,size=2715,blksize=4096 }) = 0 (0x0) lstat("libclamav/line.h",{ mode=-rw------- ,inode=3533647674,size=1484,blksize=4096 }) = 0 (0x0) lstat("libclamav/lzma_iface.c",{ mode=-rw------- ,inode=3533647675,size=3180,blksize=4096 }) = 0 (0x0) lstat("libclamav/lzma_iface.h",{ mode=-rw------- ,inode=3533647676,size=1679,blksize=4096 }) = 0 (0x0) lstat("libclamav/macho.c",{ mode=-rw------- ,inode=3533647677,size=14817,blksize=4096 }) = 0 (0x0) lstat("libclamav/macho.h",{ mode=-rw------- ,inode=3533647678,size=1037,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher-ac.c",{ mode=-rw------- ,inode=3533647679,size=48723,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher-ac.h",{ mode=-rw------- ,inode=3533647680,size=3570,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher-bm.c",{ mode=-rw------- ,inode=3533647681,size=11727,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher-bm.h",{ mode=-rw------- ,inode=3533647682,size=1787,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher.c",{ mode=-rw------- ,inode=3533647683,size=19988,blksize=4096 }) = 0 (0x0) lstat("libclamav/matcher.h",{ mode=-rw------- ,inode=3533647684,size=5610,blksize=4096 }) = 0 (0x0) lstat("libclamav/mbox.c",{ mode=-rw------- ,inode=3533647685,size=93154,blksize=4096 }) = 0 (0x0) lstat("libclamav/mbox.h",{ mode=-rw------- ,inode=3533647686,size=1481,blksize=4096 }) = 0 (0x0) lstat("libclamav/md5.c",{ mode=-rw------- ,inode=3533647687,size=7560,blksize=4096 }) = 0 (0x0) lstat("libclamav/md5.h",{ mode=-rw------- ,inode=3533647688,size=766,blksize=4096 }) = 0 (0x0) lstat("libclamav/message.c",{ mode=-rw------- ,inode=3533647689,size=58761,blksize=4096 }) = 0 (0x0) lstat("libclamav/message.h",{ mode=-rw------- ,inode=3533647690,size=3440,blksize=4096 }) = 0 (0x0) lstat("libclamav/mew.c",{ mode=-rw------- ,inode=3533647691,size=22062,blksize=4096 }) = 0 (0x0) lstat("libclamav/mew.h",{ mode=-rw------- ,inode=3533647692,size=1356,blksize=4096 }) = 0 (0x0) lstat("libclamav/mpool.c",{ mode=-rw------- ,inode=3533647693,size=19987,blksize=4096 }) = 0 (0x0) lstat("libclamav/mpool.h",{ mode=-rw------- ,inode=3533647694,size=2181,blksize=4096 }) = 0 (0x0) lstat("libclamav/msexpand.c",{ mode=-rw------- ,inode=3533647695,size=3379,blksize=4096 }) = 0 (0x0) lstat("libclamav/msexpand.h",{ mode=-rw------- ,inode=3533647696,size=872,blksize=4096 }) = 0 (0x0) lstat("libclamav/mspack.c",{ mode=-rw------- ,inode=3533647697,size=70371,blksize=4096 }) = 0 (0x0) lstat("libclamav/mspack.h",{ mode=-rw------- ,inode=3533647698,size=11179,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis",{ mode=drwx------ ,inode=945711766,size=4096,blksize=4096 }) = 0 (0x0) stat("libclamav/nsis/",{ mode=drwx------ ,inode=945711766,size=4096,blksize=4096 }) = 0 (0x0) open("libclamav/nsis/",O_NONBLOCK,017) = 5 (0x5) fstat(5,{ mode=drwx------ ,inode=945711766,size=4096,blksize=4096 }) = 0 (0x0) fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0) fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0) = 512 (0x200) lstat("libclamav/nsis/bzlib.c",{ mode=-rw------- ,inode=947061420,size=38398,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/bzlib_private.h",{ mode=-rw------- ,inode=947061421,size=12997,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/infblock.c",{ mode=-rw------- ,inode=947061422,size=22142,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nsis_bzlib.h",{ mode=-rw------- ,inode=947061423,size=5987,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nsis_zconf.h",{ mode=-rw------- ,inode=947061424,size=74,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nsis_zlib.h",{ mode=-rw------- ,inode=947061425,size=7753,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nsis_zutil.h",{ mode=-rw------- ,inode=947061426,size=1864,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nulsft.c",{ mode=-rw------- ,inode=947061427,size=13446,blksize=4096 }) = 0 (0x0) lstat("libclamav/nsis/nulsft.h",{ mode=-rw------- ,inode=947061429,size=869,blksize=4096 }) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x17,0x17) = 0 (0x0) lseek(5,0x0,SEEK_SET) = 0 (0x0) close(5) = 0 (0x0) lstat("libclamav/ole2_extract.c",{ mode=-rw------- ,inode=3533647699,size=29069,blksize=4096 }) = 0 (0x0) lstat("libclamav/ole2_extract.h",{ mode=-rw------- ,inode=3533647700,size=987,blksize=4096 }) = 0 (0x0) lstat("libclamav/others.c",{ mode=-rw------- ,inode=3533647701,size=25145,blksize=4096 }) = 0 (0x0) lstat("libclamav/others.h",{ mode=-rw------- ,inode=3533647702,size=17106,blksize=4096 }) = 0 (0x0) lstat("libclamav/others_common.c",{ mode=-rw------- ,inode=3533647703,size=21064,blksize=4096 }) = 0 (0x0) lstat("libclamav/packlibs.c",{ mode=-rw------- ,inode=3533647704,size=7863,blksize=4096 }) = 0 (0x0) lstat("libclamav/packlibs.h",{ mode=-rw------- ,inode=3533647705,size=1039,blksize=4096 }) = 0 (0x0) lstat("libclamav/pdf.c",{ mode=-rw------- ,inode=3533647707,size=41297,blksize=4096 }) = 0 (0x0) lstat("libclamav/pdf.h",{ mode=-rw------- ,inode=3533647708,size=870,blksize=4096 }) = 0 (0x0) lstat("libclamav/pe.c",{ mode=-rw------- ,inode=3533647709,size=87025,blksize=4096 }) = 0 (0x0) lstat("libclamav/pe.h",{ mode=-rw------- ,inode=3533647710,size=6239,blksize=4096 }) = 0 (0x0) lstat("libclamav/pe_icons.c",{ mode=-rw------- ,inode=3533647711,size=64573,blksize=4096 }) = 0 (0x0) lstat("libclamav/pe_icons.h",{ mode=-rw------- ,inode=3523231968,size=1374,blksize=4096 }) = 0 (0x0) lstat("libclamav/perflogging.c",{ mode=-rw------- ,inode=3523231969,size=3833,blksize=4096 }) = 0 (0x0) lstat("libclamav/perflogging.h",{ mode=-rw------- ,inode=3523231970,size=2747,blksize=4096 }) = 0 (0x0) lstat("libclamav/petite.c",{ mode=-rw------- ,inode=3523231971,size=14026,blksize=4096 }) = 0 (0x0) lstat("libclamav/petite.h",{ mode=-rw------- ,inode=3523231972,size=1056,blksize=4096 }) = 0 (0x0) lstat("libclamav/phish_domaincheck_db.c",{ mode=-rw------- ,inode=3523231973,size=2237,blksize=4096 }) = 0 (0x0) lstat("libclamav/phish_domaincheck_db.h",{ mode=-rw------- ,inode=3523231974,size=1253,blksize=4096 }) = 0 (0x0) lstat("libclamav/phish_whitelist.c",{ mode=-rw------- ,inode=3523231975,size=2329,blksize=4096 }) = 0 (0x0) lstat("libclamav/phish_whitelist.h",{ mode=-rw------- ,inode=3523231976,size=1197,blksize=4096 }) = 0 (0x0) lstat("libclamav/phishcheck.c",{ mode=-rw------- ,inode=3523231977,size=45951,blksize=4096 }) = 0 (0x0) lstat("libclamav/phishcheck.h",{ mode=-rw------- ,inode=3523231978,size=2301,blksize=4096 }) = 0 (0x0) lstat("libclamav/qsort.c",{ mode=-rw------- ,inode=3523231979,size=5112,blksize=4096 }) = 0 (0x0) lstat("libclamav/readdb.c",{ mode=-rw------- ,inode=3523231980,size=85767,blksize=4096 }) = 0 (0x0) lstat("libclamav/readdb.h",{ mode=-rw------- ,inode=3523231982,size=2401,blksize=4096 }) = 0 (0x0) lstat("libclamav/rebuildpe.c",{ mode=-rw------- ,inode=3523231983,size=6510,blksize=4096 }) = 0 (0x0) lstat("libclamav/rebuildpe.h",{ mode=-rw------- ,inode=3523231984,size=947,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex",{ mode=drwx------ ,inode=1077739768,size=4096,blksize=4096 }) = 0 (0x0) stat("libclamav/regex/",{ mode=drwx------ ,inode=1077739768,size=4096,blksize=4096 }) = 0 (0x0) open("libclamav/regex/",O_NONBLOCK,020) = 5 (0x5) fstat(5,{ mode=drwx------ ,inode=1077739768,size=4096,blksize=4096 }) = 0 (0x0) fcntl(5,F_SETFD,FD_CLOEXEC) = 0 (0x0) fstatfs(0x5,0x7fffffffcdd0,0x8011e5040,0x2,0x0,0x0) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0xfffffffffffffb90,0x0) = 512 (0x200) lstat("libclamav/regex/cclass.h",{ mode=-rw------- ,inode=1077739769,size=2846,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/cname.h",{ mode=-rw------- ,inode=1077739770,size=4263,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/engine.c",{ mode=-rw------- ,inode=1077739771,size=26506,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regcomp.c",{ mode=-rw------- ,inode=1077739774,size=35560,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regerror.c",{ mode=-rw------- ,inode=1077739779,size=4460,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regex.h",{ mode=-rw------- ,inode=1077739780,size=3613,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regex2.h",{ mode=-rw------- ,inode=1077739781,size=6870,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regexec.c",{ mode=-rw------- ,inode=1077739783,size=5756,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/regfree.c",{ mode=-rw------- ,inode=1077739784,size=2559,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/strlcpy.c",{ mode=-rw------- ,inode=1077739785,size=1590,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex/utils.h",{ mode=-rw------- ,inode=1077739786,size=2401,blksize=4096 }) = 0 (0x0) getdirentries(0x5,0x8011e8000,0x1000,0x8011e5128,0x17,0x17) = 0 (0x0) lseek(5,0x0,SEEK_SET) = 0 (0x0) close(5) = 0 (0x0) lstat("libclamav/regex_list.c",{ mode=-rw------- ,inode=3523231985,size=20096,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex_list.h",{ mode=-rw------- ,inode=3523231986,size=2258,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex_suffix.c",{ mode=-rw------- ,inode=3523231987,size=10442,blksize=4096 }) = 0 (0x0) lstat("libclamav/regex_suffix.h",{ mode=-rw------- ,inode=3523231988,size=1177,blksize=4096 }) = 0 (0x0) lstat("libclamav/rtf.c",{ mode=-rw------- ,inode=3523231989,size=20004,blksize=4096 }) = 0 (0x0) lstat("libclamav/rtf.h",{ mode=-rw------- ,inode=3523231990,size=854,blksize=4096 }) = 0 (0x0) lstat("libclamav/scanners.c",{ mode=-rw------- ,inode=3523231991,size=63242,blksize=4096 }) = 0 (0x0) lstat("libclamav/scanners.h",{ mode=-rw------- ,inode=3523231992,size=938,blksize=4096 }) = 0 (0x0) lstat("libclamav/sha1.c",{ mode=-rw------- ,inode=3523231995,size=14998,blksize=4096 }) = 0 (0x0) lstat("libclamav/sha1.h",{ mode=-rw------- ,inode=3523231996,size=2209,blksize=4096 }) = 0 (0x0) lstat("libclamav/sha256.c",{ mode=-rw------- ,inode=3523231997,size=12499,blksize=4096 }) = 0 (0x0) lstat("libclamav/sha256.h",{ mode=-rw------- ,inode=3523231998,size=2151,blksize=4096 }) = 0 (0x0) lstat("libclamav/sis.c",{ mode=-rw------- ,inode=3523231999,size=37808,blksize=4096 }) = 0 (0x0) lstat("libclamav/sis.h",{ mode=-rw------- ,inode=3523232000,size=853,blksize=4096 }) = 0 (0x0) lstat("libclamav/special.c",{ mode=-rw------- ,inode=3523232001,size=11374,blksize=4096 }) = 0 (0x0) lstat("libclamav/special.h",{ mode=-rw------- ,inode=3523232002,size=1285,blksize=4096 }) = 0 (0x0) lstat("libclamav/spin.c",{ mode=-rw------- ,inode=3523232003,size=13171,blksize=4096 }) = 0 (0x0) lstat("libclamav/spin.h",{ mode=-rw------- ,inode=3523232004,size=920,blksize=4096 }) = 0 (0x0) lstat("libclamav/str.c",{ mode=-rw------- ,inode=3523232005,size=12521,blksize=4096 }) = 0 (0x0) lstat("libclamav/str.h",{ mode=-rw------- ,inode=3523232006,size=2088,blksize=4096 }) = 0 (0x0) lstat("libclamav/table.c",{ mode=-rw------- ,inode=3523232007,size=4834,blksize=4096 }) = 0 (0x0) lstat("libclamav/table.h",{ mode=-rw------- ,inode=3523232008,size=1429,blksize=4096 }) = 0 (0x0) lstat("libclamav/text.c",{ mode=-rw------- ,inode=3523232009,size=9233,blksize=4096 }) = 0 (0x0) lstat("libclamav/text.h",{ mode=-rw------- ,inode=3523232010,size=1803,blksize=4096 }) = 0 (0x0) lstat("libclamav/textdet.c",{ mode=-rw------- ,inode=3523232011,size=5981,blksize=4096 }) = 0 (0x0) lstat("libclamav/textdet.h",{ mode=-rw------- ,inode=3523232012,size=860,blksize=4096 }) = 0 (0x0) lstat("libclamav/textnorm.c",{ mode=-rw------- ,inode=3523232013,size=4154,blksize=4096 }) = 0 (0x0) lstat("libclamav/textnorm.h",{ mode=-rw------- ,inode=3523232014,size=1143,blksize=4096 }) = 0 (0x0) lstat("libclamav/tnef.c",{ mode=-rw------- ,inode=3523232015,size=9814,blksize=4096 }) = 0 (0x0) lstat("libclamav/tnef.h",{ mode=-rw------- ,inode=3523232016,size=870,blksize=4096 }) = 0 (0x0) lstat("libclamav/type_desc.h",{ mode=-rw------- ,inode=3523232017,size=3041,blksize=4096 }) = 0 (0x0) lstat("libclamav/unarj.c",{ mode=-rw------- ,inode=3523232018,size=26039,blksize=4096 }) = 0 (0x0) lstat("libclamav/unarj.h",{ mode=-rw------- ,inode=3523232019,size=1213,blksize=4096 }) = 0 (0x0) lstat("libclamav/uniq.c",{ mode=-rw------- ,inode=3523232020,size=2800,blksize=4096 }) = 0 (0x0) lstat("libclamav/uniq.h",{ mode=-rw------- ,inode=3523232021,size=1225,blksize=4096 }) = 0 (0x0) lstat("libclamav/unsp.c",{ mode=-rw------- ,inode=3523232022,size=15170,blksize=4096 }) = 0 (0x0) lstat("libclamav/unsp.h",{ mode=-rw------- ,inode=3523232023,size=1687,blksize=4096 }) = 0 (0x0) lstat("libclamav/untar.c",{ mode=-rw------- ,inode=3523232024,size=5811,blksize=4096 }) = 0 (0x0) lstat("libclamav/untar.h",{ mode=-rw------- ,inode=3523232025,size=1340,blksize=4096 }) = 0 (0x0) lstat("libclamav/unzip.c",{ mode=-rw------- ,inode=3523232026,size=15846,blksize=4096 }) = 0 (0x0) lstat("libclamav/unzip.h",{ mode=-rw------- ,inode=3523232027,size=4249,blksize=4096 }) = 0 (0x0) lstat("libclamav/upack.c",{ mode=-rw------- ,inode=3523232028,size=22118,blksize=4096 }) = 0 (0x0) lstat("libclamav/upack.h",{ mode=-rw------- ,inode=3523232029,size=972,blksize=4096 }) = 0 (0x0) lstat("libclamav/upx.c",{ mode=-rw------- ,inode=3523232030,size=16871,blksize=4096 }) = 0 (0x0) lstat("libclamav/upx.h",{ mode=-rw------- ,inode=3523232031,size=1163,blksize=4096 }) = 0 (0x0) lstat("libclamav/uuencode.c",{ mode=-rw------- ,inode=3517287488,size=2945,blksize=4096 }) = 0 (0x0) lstat("libclamav/uuencode.h",{ mode=-rw------- ,inode=3517287489,size=964,blksize=4096 }) = 0 (0x0) lstat("libclamav/vba_extract.c",{ mode=-rw------- ,inode=3517287492,size=28078,blksize=4096 }) = 0 (0x0) lstat("libclamav/vba_extract.h",{ mode=-rw------- ,inode=3517287494,size=1540,blksize=4096 }) = 0 (0x0) lstat("libclamav/version.c",{ mode=-rw------- ,inode=3517287495,size=293,blksize=4096 }) = 0 (0x0) lstat("libclamav/wwunpack.c",{ mode=-rw------- ,inode=3517287496,size=5492,blksize=4096 }) = 0 (0x0) lstat("libclamav/wwunpack.h",{ mode=-rw------- ,inode=3517287497,size=933,blksize=4096 }) = 0 (0x0) lstat("libclamav/yc.c",{ mode=-rw------- ,inode=3517287498,size=6140,blksize=4096 }) = 0 (0x0) lstat("libclamav/yc.h",{ mode=-rw------- ,inode=3517287499,size=956,blksize=4096 }) = 0 (0x0) lstat("libclamav/Makefile",{ mode=-rw-r--r-- ,inode=270743026,size=165975,blksize=4096 }) = 0 (0x0) lstat("libclamav/.deps",{ mode=drwxr-xr-x ,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0) getdirentries(0x4,0x8011e7000,0x1000,0x8011e50c8,0xffff80080111dc64,0x0) = 0 (0x0) lseek(4,0x0,SEEK_SET) = 0 (0x0) close(4) = 0 (0x0) lstat("libclamav.pc",{ mode=-rw-r--r-- ,inode=270743009,size=236,blksize=4096 }) = 0 (0x0) getdirentries(0x3,0x8011e6000,0x1000,0x8011e5068,0x8011df190,0x0) = 0 (0x0) lseek(3,0x0,SEEK_SET) = 0 (0x0) close(3) = 0 (0x0) lstat("libclamav.pc",{ mode=-rw-r--r-- ,inode=270743009,size=236,blksize=4096 }) = 0 (0x0) lstat("libclamav/.deps/",{ mode=drwxr-xr-x ,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0) fstat(1,{ mode=crw--w---- ,inode=89,size=0,blksize=4096 }) = 0 (0x0) ioctl(1,TIOCGETA,0xffffdce0) = 0 (0x0) write(1,"Removing libclamav/.deps/\n",26) = 26 (0x1a) stat("libclamav/.deps/.git",0x7fffffffe0a0) ERR#2 'No such file or directory' open("libclamav/.deps/.git/HEAD",O_RDONLY,00) ERR#2 'No such file or directory' open("libclamav/.deps/.git/packed-refs",O_RDONLY,0666) ERR#2 'No such file or directory' stat("libclamav/.deps/",{ mode=drwxr-xr-x ,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0) open("libclamav/.deps/",O_NONBLOCK,00) = 3 (0x3) fstat(3,{ mode=drwxr-xr-x ,inode=404986341,size=8192,blksize=4096 }) = 0 (0x0) fcntl(3,F_SETFD,FD_CLOEXEC) = 0 (0x0) fstatfs(0x3,0x7fffffffdee0,0x8011e1040,0x0,0x0,0x1e008) = 0 (0x0) getdirentries(0x3,0x8011e2000,0x1000,0x8011e1068,0x0,0x0) = 4096 (0x1000) lstat("libclamav/.deps/bytecode_nojit.Plo",{ mode=-rw-r--r-- ,inode=404986343,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/bytecode_nojit.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-md5.Plo",{ mode=-rw-r--r-- ,inode=404986344,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-md5.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-others_common.Plo",{ mode=-rw-r--r-- ,inode=404986345,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-others_common.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-qsort.Plo",{ mode=-rw-r--r-- ,inode=404986346,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-qsort.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-regcomp.Plo",{ mode=-rw-r--r-- ,inode=404986347,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-regcomp.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-regerror.Plo",{ mode=-rw-r--r-- ,inode=404986348,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-regerror.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-regexec.Plo",{ mode=-rw-r--r-- ,inode=404986349,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-regexec.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-regfree.Plo",{ mode=-rw-r--r-- ,inode=404986350,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-regfree.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-str.Plo",{ mode=-rw-r--r-- ,inode=404986352,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-str.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_la-strlcpy.Plo",{ mode=-rw-r--r-- ,inode=404986353,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_la-strlcpy.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-md5.Plo",{ mode=-rw-r--r-- ,inode=404986354,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-md5.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-others_common.Plo",{ mode=-rw-r--r-- ,inode=404986355,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-others_common.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-qsort.Plo",{ mode=-rw-r--r-- ,inode=404986356,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-qsort.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regcomp.Plo",{ mode=-rw-r--r-- ,inode=404986363,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regcomp.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regerror.Plo",{ mode=-rw-r--r-- ,inode=404986366,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regerror.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regexec.Plo",{ mode=-rw-r--r-- ,inode=404986367,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regexec.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-regfree.Plo",{ mode=-rw-r--r-- ,inode=404986368,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-regfree.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-str.Plo",{ mode=-rw-r--r-- ,inode=404986369,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-str.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_internal_utils_nothreads_la-strlcpy.Plo",{ mode=-rw-r--r-- ,inode=404986370,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_internal_utils_nothreads_la-strlcpy.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7z.Plo",{ mode=-rw-r--r-- ,inode=404986371,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7z.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zBuf.Plo",{ mode=-rw-r--r-- ,inode=404986372,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zBuf.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zCrc.Plo",{ mode=-rw-r--r-- ,inode=404986373,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zCrc.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zDecode.Plo",{ mode=-rw-r--r-- ,inode=404986374,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zDecode.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zExtract.Plo",{ mode=-rw-r--r-- ,inode=404986375,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zExtract.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zFile.Plo",{ mode=-rw-r--r-- ,inode=404986376,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zFile.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zHeader.Plo",{ mode=-rw-r--r-- ,inode=404986377,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zHeader.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zIn.Plo",{ mode=-rw-r--r-- ,inode=404986378,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zIn.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zItem.Plo",{ mode=-rw-r--r-- ,inode=404986379,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zItem.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-7zStream.Plo",{ mode=-rw-r--r-- ,inode=404986380,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-7zStream.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-Bcj2.Plo",{ mode=-rw-r--r-- ,inode=404986381,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-Bcj2.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-Bra.Plo",{ mode=-rw-r--r-- ,inode=404986382,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-Bra.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-Bra86.Plo",{ mode=-rw-r--r-- ,inode=404986384,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-Bra86.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-LzmaDec.Plo",{ mode=-rw-r--r-- ,inode=404986385,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-LzmaDec.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-aspack.Plo",{ mode=-rw-r--r-- ,inode=404986386,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-aspack.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-autoit.Plo",{ mode=-rw-r--r-- ,inode=404986387,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-autoit.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bignum.Plo",{ mode=-rw-r--r-- ,inode=404986390,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bignum.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-binhex.Plo",{ mode=-rw-r--r-- ,inode=404986391,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-binhex.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-blob.Plo",{ mode=-rw-r--r-- ,inode=404986392,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-blob.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bytecode.Plo",{ mode=-rw-r--r-- ,inode=404986393,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bytecode.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bytecode_api.Plo",{ mode=-rw-r--r-- ,inode=404986394,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bytecode_api.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bytecode_api_decl.Plo",{ mode=-rw-r--r-- ,inode=404986395,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bytecode_api_decl.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bytecode_vm.Plo",{ mode=-rw-r--r-- ,inode=404986396,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bytecode_vm.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-bzlib.Plo",{ mode=-rw-r--r-- ,inode=404986397,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-bzlib.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-cab.Plo",{ mode=-rw-r--r-- ,inode=404986398,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-cab.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-cache.Plo",{ mode=-rw-r--r-- ,inode=404986399,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-cache.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-chmunpack.Plo",{ mode=-rw-r--r-- ,inode=410575698,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-chmunpack.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-cpio.Plo",{ mode=-rw-r--r-- ,inode=410575699,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-cpio.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-cvd.Plo",{ mode=-rw-r--r-- ,inode=410575700,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-cvd.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-dconf.Plo",{ mode=-rw-r--r-- ,inode=410575701,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-dconf.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-disasm.Plo",{ mode=-rw-r--r-- ,inode=410575702,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-disasm.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-dlp.Plo",{ mode=-rw-r--r-- ,inode=410575704,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-dlp.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-dsig.Plo",{ mode=-rw-r--r-- ,inode=410575705,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-dsig.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-elf.Plo",{ mode=-rw-r--r-- ,inode=410575706,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-elf.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-entconv.Plo",{ mode=-rw-r--r-- ,inode=410575707,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-entconv.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-explode.Plo",{ mode=-rw-r--r-- ,inode=410575708,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-explode.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-filetypes.Plo",{ mode=-rw-r--r-- ,inode=410575709,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-filetypes.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-filtering.Plo",{ mode=-rw-r--r-- ,inode=410575710,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-filtering.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-fmap.Plo",{ mode=-rw-r--r-- ,inode=410575711,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-fmap.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-fsg.Plo",{ mode=-rw-r--r-- ,inode=410741760,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-fsg.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-hashtab.Plo",{ mode=-rw-r--r-- ,inode=410741761,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-hashtab.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-htmlnorm.Plo",{ mode=-rw-r--r-- ,inode=410741763,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-htmlnorm.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-infblock.Plo",{ mode=-rw-r--r-- ,inode=410741764,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-infblock.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-inflate64.Plo",{ mode=-rw-r--r-- ,inode=410741765,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-inflate64.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-is_tar.Plo",{ mode=-rw-r--r-- ,inode=410741766,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-is_tar.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-ishield.Plo",{ mode=-rw-r--r-- ,inode=410741767,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-ishield.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-js-norm.Plo",{ mode=-rw-r--r-- ,inode=410741768,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-js-norm.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-line.Plo",{ mode=-rw-r--r-- ,inode=410741769,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-line.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-lzma_iface.Plo",{ mode=-rw-r--r-- ,inode=410882114,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-lzma_iface.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-macho.Plo",{ mode=-rw-r--r-- ,inode=430554068,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-macho.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-matcher-ac.Plo",{ mode=-rw-r--r-- ,inode=430554083,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-matcher-ac.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-matcher-bm.Plo",{ mode=-rw-r--r-- ,inode=430554097,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-matcher-bm.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-matcher.Plo",{ mode=-rw-r--r-- ,inode=430554109,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-matcher.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-mbox.Plo",{ mode=-rw-r--r-- ,inode=430554219,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-mbox.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-message.Plo",{ mode=-rw-r--r-- ,inode=430554234,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-message.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-mew.Plo",{ mode=-rw-r--r-- ,inode=430554264,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-mew.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-mpool.Plo",{ mode=-rw-r--r-- ,inode=430554949,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-mpool.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-msexpand.Plo",{ mode=-rw-r--r-- ,inode=430554960,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-msexpand.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-mspack.Plo",{ mode=-rw-r--r-- ,inode=430554967,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-mspack.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-nulsft.Plo",{ mode=-rw-r--r-- ,inode=430554978,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-nulsft.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-ole2_extract.Plo",{ mode=-rw-r--r-- ,inode=430554983,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-ole2_extract.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-others.Plo",{ mode=-rw-r--r-- ,inode=430555914,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-others.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-packlibs.Plo",{ mode=-rw-r--r-- ,inode=430555917,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-packlibs.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-pdf.Plo",{ mode=-rw-r--r-- ,inode=430556219,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-pdf.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-pe.Plo",{ mode=-rw-r--r-- ,inode=430556233,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-pe.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-pe_icons.Plo",{ mode=-rw-r--r-- ,inode=430556364,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-pe_icons.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-perflogging.Plo",{ mode=-rw-r--r-- ,inode=430557858,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-perflogging.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-petite.Plo",{ mode=-rw-r--r-- ,inode=430557873,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-petite.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-phish_domaincheck_db.Plo",{ mode=-rw-r--r-- ,inode=430557885,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-phish_domaincheck_db.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-phish_whitelist.Plo",{ mode=-rw-r--r-- ,inode=430558515,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-phish_whitelist.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-phishcheck.Plo",{ mode=-rw-r--r-- ,inode=430558533,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-phishcheck.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-readdb.Plo",{ mode=-rw-r--r-- ,inode=430559843,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-readdb.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-rebuildpe.Plo",{ mode=-rw-r--r-- ,inode=430559859,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-rebuildpe.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-regex_list.Plo",{ mode=-rw-r--r-- ,inode=430559880,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-regex_list.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-regex_suffix.Plo",{ mode=-rw-r--r-- ,inode=430559890,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-regex_suffix.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-rtf.Plo",{ mode=-rw-r--r-- ,inode=430559898,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-rtf.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-scanners.Plo",{ mode=-rw-r--r-- ,inode=430560399,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-scanners.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-sha1.Plo",{ mode=-rw-r--r-- ,inode=430560420,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-sha1.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-sha256.Plo",{ mode=-rw-r--r-- ,inode=430560868,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-sha256.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-sis.Plo",{ mode=-rw-r--r-- ,inode=430560898,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-sis.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-special.Plo",{ mode=-rw-r--r-- ,inode=430560912,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-special.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-spin.Plo",{ mode=-rw-r--r-- ,inode=430560926,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-spin.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-table.Plo",{ mode=-rw-r--r-- ,inode=430561715,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-table.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-text.Plo",{ mode=-rw-r--r-- ,inode=430561755,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-text.Plo") = 0 (0x0) lstat("libclamav/.deps/libclamav_la-textdet.Plo",{ mode=-rw-r--r-- ,inode=430561772,size=8,blksize=4096 }) = 0 (0x0) unlink("libclamav/.deps/libclamav_la-textdet.Plo") = 0 (0x0) getdirentries(0x3,0x8011e2000,0x1000,0x8011e1068,0xac,0x1b008) = 0 (0x0) lseek(3,0x0,SEEK_SET) = 0 (0x0) close(3) = 0 (0x0) rmdir(0x8011e3080,0x5ff560,0x10,0x2000,0x626298,0x0) ERR#66 'Directory not empty' warning: failed to remove 'libclamav/.deps/' write(2,"warning: failed to remove 'libcl"...,45) = 45 (0x2d)

Full output of 'truss rm -rf libclamav/.deps': __sysctl(0x7fffffffe3f0,0x2,0x7fffffffe40c,0x7fffffffe400,0x0,0x0) = 0 (0x0) mmap(0x0,656,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365190144 (0x800533000) munmap(0x800533000,656) = 0 (0x0) __sysctl(0x7fffffffe460,0x2,0x80063d328,0x7fffffffe458,0x0,0x0) = 0 (0x0) mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34365190144 (0x800533000) issetugid(0x800534015,0x80052e686,0x800649b30,0x800649b00,0x598f,0x0) = 0 (0x0) open("/etc/libmap.conf",O_RDONLY,0666) ERR#2 'No such file or directory' open("/var/run/ld-elf.so.hints",O_RDONLY,057) = 3 (0x3) read(3,"Ehnt\^A\0\0\0\M^@\0\0\0-\0\0\0\0"...,128) = 128 (0x80) lseek(3,0x80,SEEK_SET) = 128 (0x80) read(3,"/lib:/usr/lib:/usr/lib/compat:/u"...,45) = 45 (0x2d) close(3) = 0 (0x0) access("/lib/libc.so.7",0) = 0 (0x0) open("/lib/libc.so.7",O_RDONLY,030751000) = 3 (0x3) fstat(3,{ mode=-r--r--r-- ,inode=38225,size=1265520,blksize=4096 }) = 0 (0x0) read(3,"\^?ELF\^B\^A\^A\t\0\0\0\0\0\0\0"...,4096) = 4096 (0x1000) mmap(0x0,2334720,PROT_NONE,MAP_PRIVATE|MAP_ANON|MAP_NOCORE,-1,0x0) = 34366332928 (0x80064a000) mmap(0x80064a000,1052672,PROT_READ|PROT_EXEC,MAP_PRIVATE|MAP_FIXED|MAP_NOCORE,3,0x0) = 34366332928 (0x80064a000) mmap(0x80084b000,122880,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_FIXED,3,0x101000) = 34368434176 (0x80084b000) mprotect(0x800869000,110592,PROT_READ|PROT_WRITE) = 0 (0x0) close(3) = 0 (0x0) sysarch(0x81,0x7fffffffe4e0,0x8005360c8,0x0,0xffffffffffce6310,0x800665d70) = 0 (0x0) mmap(0x0,896,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365222912 (0x80053b000) munmap(0x80053b000,896) = 0 (0x0) mmap(0x0,43584,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365222912 (0x80053b000) munmap(0x80053b000,43584) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) __sysctl(0x7fffffffe480,0x2,0x503580,0x7fffffffe478,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) geteuid(0x7fffffffec20,0x402755,0xf,0x5f,0x0,0x0) = 1066 (0x42a) sigaction(SIGINFO,{ 0x401410 SA_RESTART ss_t },{ SIG_DFL 0x0 ss_t }) = 0 (0x0) ioctl(0,TIOCGETA,0xffffeb60) = 0 (0x0) __sysctl(0x7fffffffe660,0x2,0x80086e788,0x7fffffffe658,0x0,0x0) = 0 (0x0) readlink("/etc/malloc.conf",0x7fffffffe680,1024) ERR#2 'No such file or directory' issetugid(0x800742031,0x7fffffffe680,0xffffffffffffffff,0x0,0x0,0x0) = 0 (0x0) break(0x600000) = 0 (0x0) __sysctl(0x7fffffffe940,0x2,0x7fffffffe95c,0x7fffffffe950,0x0,0x0) = 0 (0x0) mmap(0x0,1048576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34368667648 (0x800884000) mmap(0x800984000,507904,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34369716224 (0x800984000) munmap(0x800884000,507904) = 0 (0x0) lstat("libclamav/.deps",{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0) open(".",O_RDONLY,00) = 3 (0x3) fchdir(0x3,0x5035c0,0x0,0x2,0x1cecf8,0x0) = 0 (0x0) stat("libclamav/.deps",{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0) open("libclamav/.deps",O_NONBLOCK,044270600) = 4 (0x4) fstat(4,{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0) fcntl(4,F_SETFD,FD_CLOEXEC) = 0 (0x0) __sysctl(0x7fffffffe720,0x2,0x800880898,0x7fffffffe718,0x0,0x0) = 0 (0x0) fstatfs(0x4,0x7fffffffe810,0x800880898,0x7fffffffe718,0x0,0x0) = 0 (0x0) statfs(0x80090b200,0x800902358,0x800917180,0x0,0x0,0x8009002c0) = 0 (0x0) fstat(4,{ mode=drwxr-xr-x ,inode=58548,size=8192,blksize=4096 }) = 0 (0x0) fchdir(0x4,0x7fffffffea20,0x4,0x0,0x0,0x8009002c0) = 0 (0x0) getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x0,0x8009002c0) = 4096 (0x1000) getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x6c6c,0x1) = 1024 (0x400) getdirentries(0x4,0x80091b000,0x1000,0x80091a068,0x8afc,0x1) = 0 (0x0) lseek(4,0x0,SEEK_SET) = 0 (0x0) close(4) = 0 (0x0) unlink("bytecode_nojit.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-md5.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-others_common.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-qsort.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-regcomp.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-regerror.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-regexec.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-regfree.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-str.Plo") = 0 (0x0) unlink("libclamav_internal_utils_la-strlcpy.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-md5.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-others_common.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-qsort.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-regcomp.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-regerror.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-regexec.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-regfree.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-str.Plo") = 0 (0x0) unlink("libclamav_internal_utils_nothreads_la-strlcpy.Plo") = 0 (0x0) unlink("libclamav_la-7z.Plo") = 0 (0x0) unlink("libclamav_la-7zBuf.Plo") = 0 (0x0) unlink("libclamav_la-7zCrc.Plo") = 0 (0x0) unlink("libclamav_la-7zDecode.Plo") = 0 (0x0) unlink("libclamav_la-7zExtract.Plo") = 0 (0x0) unlink("libclamav_la-7zFile.Plo") = 0 (0x0) unlink("libclamav_la-7zHeader.Plo") = 0 (0x0) unlink("libclamav_la-7zIn.Plo") = 0 (0x0) unlink("libclamav_la-7zItem.Plo") = 0 (0x0) unlink("libclamav_la-7zStream.Plo") = 0 (0x0) unlink("libclamav_la-Bcj2.Plo") = 0 (0x0) unlink("libclamav_la-Bra.Plo") = 0 (0x0) unlink("libclamav_la-Bra86.Plo") = 0 (0x0) unlink("libclamav_la-LzmaDec.Plo") = 0 (0x0) unlink("libclamav_la-aspack.Plo") = 0 (0x0) unlink("libclamav_la-autoit.Plo") = 0 (0x0) unlink("libclamav_la-bignum.Plo") = 0 (0x0) unlink("libclamav_la-binhex.Plo") = 0 (0x0) unlink("libclamav_la-blob.Plo") = 0 (0x0) unlink("libclamav_la-bytecode.Plo") = 0 (0x0) unlink("libclamav_la-bytecode_api.Plo") = 0 (0x0) unlink("libclamav_la-bytecode_api_decl.Plo") = 0 (0x0) unlink("libclamav_la-bytecode_vm.Plo") = 0 (0x0) unlink("libclamav_la-bzlib.Plo") = 0 (0x0) unlink("libclamav_la-cab.Plo") = 0 (0x0) unlink("libclamav_la-cache.Plo") = 0 (0x0) unlink("libclamav_la-chmunpack.Plo") = 0 (0x0) unlink("libclamav_la-cpio.Plo") = 0 (0x0) unlink("libclamav_la-cvd.Plo") = 0 (0x0) unlink("libclamav_la-dconf.Plo") = 0 (0x0) unlink("libclamav_la-disasm.Plo") = 0 (0x0) unlink("libclamav_la-dlp.Plo") = 0 (0x0) unlink("libclamav_la-dsig.Plo") = 0 (0x0) unlink("libclamav_la-elf.Plo") = 0 (0x0) unlink("libclamav_la-entconv.Plo") = 0 (0x0) unlink("libclamav_la-explode.Plo") = 0 (0x0) unlink("libclamav_la-filetypes.Plo") = 0 (0x0) unlink("libclamav_la-filtering.Plo") = 0 (0x0) unlink("libclamav_la-fmap.Plo") = 0 (0x0) unlink("libclamav_la-fsg.Plo") = 0 (0x0) unlink("libclamav_la-hashtab.Plo") = 0 (0x0) unlink("libclamav_la-htmlnorm.Plo") = 0 (0x0) unlink("libclamav_la-infblock.Plo") = 0 (0x0) unlink("libclamav_la-inflate64.Plo") = 0 (0x0) unlink("libclamav_la-is_tar.Plo") = 0 (0x0) unlink("libclamav_la-ishield.Plo") = 0 (0x0) unlink("libclamav_la-js-norm.Plo") = 0 (0x0) unlink("libclamav_la-line.Plo") = 0 (0x0) unlink("libclamav_la-lzma_iface.Plo") = 0 (0x0) unlink("libclamav_la-macho.Plo") = 0 (0x0) unlink("libclamav_la-matcher-ac.Plo") = 0 (0x0) unlink("libclamav_la-matcher-bm.Plo") = 0 (0x0) unlink("libclamav_la-matcher.Plo") = 0 (0x0) unlink("libclamav_la-mbox.Plo") = 0 (0x0) unlink("libclamav_la-message.Plo") = 0 (0x0) unlink("libclamav_la-mew.Plo") = 0 (0x0) unlink("libclamav_la-mpool.Plo") = 0 (0x0) unlink("libclamav_la-msexpand.Plo") = 0 (0x0) unlink("libclamav_la-mspack.Plo") = 0 (0x0) unlink("libclamav_la-nulsft.Plo") = 0 (0x0) unlink("libclamav_la-ole2_extract.Plo") = 0 (0x0) unlink("libclamav_la-others.Plo") = 0 (0x0) unlink("libclamav_la-packlibs.Plo") = 0 (0x0) unlink("libclamav_la-pdf.Plo") = 0 (0x0) unlink("libclamav_la-pe.Plo") = 0 (0x0) unlink("libclamav_la-pe_icons.Plo") = 0 (0x0) unlink("libclamav_la-perflogging.Plo") = 0 (0x0) unlink("libclamav_la-petite.Plo") = 0 (0x0) unlink("libclamav_la-phish_domaincheck_db.Plo") = 0 (0x0) unlink("libclamav_la-phish_whitelist.Plo") = 0 (0x0) unlink("libclamav_la-phishcheck.Plo") = 0 (0x0) unlink("libclamav_la-readdb.Plo") = 0 (0x0) unlink("libclamav_la-rebuildpe.Plo") = 0 (0x0) unlink("libclamav_la-regex_list.Plo") = 0 (0x0) unlink("libclamav_la-regex_suffix.Plo") = 0 (0x0) unlink("libclamav_la-rtf.Plo") = 0 (0x0) unlink("libclamav_la-scanners.Plo") = 0 (0x0) unlink("libclamav_la-sha1.Plo") = 0 (0x0) unlink("libclamav_la-sha256.Plo") = 0 (0x0) unlink("libclamav_la-sis.Plo") = 0 (0x0) unlink("libclamav_la-special.Plo") = 0 (0x0) unlink("libclamav_la-spin.Plo") = 0 (0x0) unlink("libclamav_la-table.Plo") = 0 (0x0) unlink("libclamav_la-text.Plo") = 0 (0x0) unlink("libclamav_la-textdet.Plo") = 0 (0x0) unlink("libclamav_la-textnorm.Plo") = 0 (0x0) unlink("libclamav_la-tnef.Plo") = 0 (0x0) unlink("libclamav_la-unarj.Plo") = 0 (0x0) unlink("libclamav_la-uniq.Plo") = 0 (0x0) unlink("libclamav_la-unsp.Plo") = 0 (0x0) unlink("libclamav_la-untar.Plo") = 0 (0x0) unlink("libclamav_la-unzip.Plo") = 0 (0x0) unlink("libclamav_la-upack.Plo") = 0 (0x0) unlink("libclamav_la-upx.Plo") = 0 (0x0) unlink("libclamav_la-uuencode.Plo") = 0 (0x0) unlink("libclamav_la-vba_extract.Plo") = 0 (0x0) unlink("libclamav_la-version.Plo") = 0 (0x0) unlink("libclamav_la-wwunpack.Plo") = 0 (0x0) unlink("libclamav_la-yc.Plo") = 0 (0x0) unlink("unrar.Plo") = 0 (0x0) unlink("unrar15.Plo") = 0 (0x0) unlink("unrar20.Plo") = 0 (0x0) unlink("unrar_iface.Plo") = 0 (0x0) unlink("unrarcmd.Plo") = 0 (0x0) unlink("unrarfilter.Plo") = 0 (0x0) unlink("unrarhlp.Plo") = 0 (0x0) unlink("unrarppm.Plo") = 0 (0x0) unlink("unrarvm.Plo") = 0 (0x0) fchdir(0x3,0x5035c0,0x80090b200,0x5036c0,0x5036c0,0x0) = 0 (0x0) rmdir(0x80090b200,0x5035c0,0x80090b200,0x5036c0,0x5036c0,0x0) = 0 (0x0) fchdir(0x3,0x5035c0,0x5036c0,0x5036c0,0x5036c0,0x0) = 0 (0x0) close(3) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) sigprocmask(SIG_BLOCK,SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2,0x0) = 0 (0x0) sigprocmask(SIG_SETMASK,0x0,0x0) = 0 (0x0) process exit, rval = 0

Best regards, --Edwin

Henrik Grubbström· Jun 17, 2010, 15:18 UTC · re: Török Edwin · lore

Re: [BUG] git clean not working on FreeBSD/NFS

Török Edwin <edwintorok <at> gmail.com> writes:
Show 12 quoted lines
> Hi,
> 
> I am running git 1.7.1 on a FreeBSD 8 box which has its home dir mounted
> via NFS (I guess the NFS server is a Linux box).
> When running 'git clean -x -f -d' it fails to remove some directories:
> warning: failed to remove 'libclamav/.deps/'
> warning: failed to remove 'libclamav/.libs/'
> warning: failed to remove 'libclamav/c++/.deps/'
> warning: failed to remove 'libclamav/c++/.libs/'
> warning: failed to remove 'libclamav/c++/llvm/test/CodeGen/X86/Output/'
> 
> This causes buildbot managed builds to fail every 2nd time.

Sounds like the classic nfs problem with references to open deleted files. If you look closer at the failing directories, I bet that you'll find files with names like ".nfsDEAD".

You can use eg lsof to find the process that holds the open file reference:
  $ lsof tmp/.nfs536B 
  COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
  pike    29705 grubba    8w  VREG  285,4        0 10977399 tmp/.nfs536B
/grubba
Török Edwin· Jun 18, 2010, 11:03 UTC · re: Henrik Grubbström · lore

Re: [BUG] git clean not working on FreeBSD/NFS

Henrik Grubbström <grubba <at> grubba.org> writes:
> 
> Sounds like the classic nfs problem with references to open deleted files.
> If you look closer at the failing directories, I bet that you'll find files 
> with names like ".nfsDEAD".

No, these are all the files that remain in libclamav/.deps (ls -al): edwin@gcc101:~/buildbot/gcc4.2/build$ ls -al libclamav/.deps/ total 116 drwxr-xr-x 2 edwin edwin 8192 Jun 18 03:24 . drwx------ 8 edwin edwin 8192 Jun 18 03:24 .. -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-textnorm.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-tnef.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unarj.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-uniq.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unsp.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-untar.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-unzip.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-upack.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-upx.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-uuencode.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-vba_extract.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-version.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-wwunpack.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 libclamav_la-yc.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar15.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar20.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrar_iface.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarcmd.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarfilter.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarhlp.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarppm.Plo -rw-r--r-- 1 edwin edwin 8 Jun 18 03:23 unrarvm.Plo

If I run 'git clean -x -f -d -- libclamav' a few more times they are eventually removed.

It is interesting that every time I repeat the config.status/git clean steps I get the *same* files remaining in the directory.

There were 127 files initially, these 23 always remain behind on 1st run, a 2nd git clean removes them (but some other .deps directories need even more reruns of git clean).

I added a printf in remove_dir_recursively, and those files are not even printed.

Now I see the bug!
You do a single readdir() pass, and unlink() files. That is wrong for 2 reasons:
 - new files may be added in the meantime and you have a race condition
 - unlinking a file can cause order of files to be rearranged, moved. But your
readdir() cursors stays where it was before, hence you will miss enumerating
some files that are there.

The fix is to rewinddir() if you unlinked anything (won't fix the race condition but that can't be eliminated completely anyway).

I'm sending a patch as reply to this mail.
Török Edwin· Jun 18, 2010, 11:07 UTC · re: Török Edwin · lore

[PATCH] Fix 'git clean' failure on NFS.

readdir() used to do a single pass, which is not always enough. If you unlink some files/rmdir some subdirs then there might be some files you haven't seen yet *before* the readdir cursor (files get rearranged in the directory, etc.).

The fix is to do an additional readdir() pass if we unlinked/rmdired something. This is easily accomplished by using rewinddir.

Signed-off-by: Török Edwin <edwintorok@gmail.com>
---
 dir.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/dir.c b/dir.c
index 5615f33..7260907 100644
--- a/dir.c
+++ b/dir.c
@@ -999,6 +999,7 @@ int remove_dir_recursively(struct strbuf *path, int flag)
 	struct dirent *e;
 	int ret = 0, original_len = path->len, len;
 	int only_empty = (flag & REMOVE_DIR_EMPTY_ONLY);
+	int did_rm;
 	unsigned char submodule_head[20];
 
 	if ((flag & REMOVE_DIR_KEEP_NESTED_GIT) &&
@@ -1013,6 +1014,8 @@ int remove_dir_recursively(struct strbuf *path, int flag)
 		strbuf_addch(path, '/');
 
 	len = path->len;
+	do {
+	did_rm = 0;
 	while ((e = readdir(dir)) != NULL) {
 		struct stat st;
 		if (is_dot_or_dotdot(e->d_name))
@@ -1023,15 +1026,24 @@ int remove_dir_recursively(struct strbuf *path, int flag)
 		if (lstat(path->buf, &st))
 			; /* fall thru */
 		else if (S_ISDIR(st.st_mode)) {
-			if (!remove_dir_recursively(path, only_empty))
+			if (!remove_dir_recursively(path, only_empty)) {
+				did_rm = 1;
 				continue; /* happy */
-		} else if (!only_empty && !unlink(path->buf))
+			}
+		} else if (!only_empty && !unlink(path->buf)) {
+			did_rm = 1;
 			continue; /* happy, too */
+		}
 
 		/* path too long, stat fails, or non-directory still exists */
 		ret = -1;
 		break;
 	}
+	/* if we unlinked/rmdir-ed anything there might be files we haven't seen
+	 * yet before the readdir() cursor, rewind and walk directory again
+	 * until we can't unlink any more. */
+	rewinddir(dir);
+	} while (did_rm && !ret);
 	closedir(dir);
 
 	strbuf_setlen(path, original_len);
-- 
1.7.0
Johannes Sixt· Jun 18, 2010, 12:17 UTC · re: Török Edwin · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

Am 6/18/2010 13:07, schrieb Török Edwin:
Show 5 quoted lines
>  		else if (S_ISDIR(st.st_mode)) {
> -			if (!remove_dir_recursively(path, only_empty))
> +			if (!remove_dir_recursively(path, only_empty)) {
> +				did_rm = 1;
>  				continue; /* happy */

Is it possible that remove_dir_recursively exits with 0, but it actually did not remove the directory? That would result in an endless loop: it would have to re-enter remove_dir_recursively on the next iteration, return 0 again (without removing the directory), next iteration, etc.

-- Hannes
Török Edwin· Jun 18, 2010, 13:09 UTC · re: Johannes Sixt · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

On 06/18/2010 03:17 PM, Johannes Sixt wrote:
Show 11 quoted lines
> Am 6/18/2010 13:07, schrieb Török Edwin:
>>  		else if (S_ISDIR(st.st_mode)) {
>> -			if (!remove_dir_recursively(path, only_empty))
>> +			if (!remove_dir_recursively(path, only_empty)) {
>> +				did_rm = 1;
>>  				continue; /* happy */
> 
> Is it possible that remove_dir_recursively exits with 0, but it actually
> did not remove the directory? That would result in an endless loop: it
> would have to re-enter remove_dir_recursively on the next iteration,
> return 0 again (without removing the directory), next iteration, etc.
Hmm, I think this could cause problems:
	if ((flag & REMOVE_DIR_KEEP_NESTED_GIT) &&
	    !resolve_gitlink_ref(path->buf, "HEAD", submodule_head))
		/* Do not descend and nuke a nested git work tree. */
		return 0;

What if we limit the amount of times you can loop? The worst case is that you loop == number of files in the directory, if you loop more times than we could break out early.

Or we can compare the number of files listed in one pass, and in another. If they stay equal, we can break out (since we'd infloop), if it is higher (new files added) or lower (successfully removed some) we can keep looping.

How does that sound?
--Edwin
Erik Faye-Lund· Jun 18, 2010, 12:29 UTC · re: Török Edwin · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

2010/6/18 Török Edwin <edwintorok@gmail.com>:
Show 8 quoted lines
> readdir() used to do a single pass, which is not always enough.
> If you unlink some files/rmdir some subdirs then there might be some
> files you haven't seen yet *before* the readdir cursor (files get rearranged
> in the directory, etc.).
>
> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
> This is easily accomplished by using rewinddir.
>

Won't this break on Windows? mingw_readdir() doesn't seem to have a maching mingw_rewinddir() in compat/mingw.c/h....

-- 
Erik "kusma" Faye-Lund
Török Edwin· Jun 18, 2010, 13:01 UTC · re: Erik Faye-Lund · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
Show 13 quoted lines
> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>> readdir() used to do a single pass, which is not always enough.
>> If you unlink some files/rmdir some subdirs then there might be some
>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>> in the directory, etc.).
>>
>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>> This is easily accomplished by using rewinddir.
>>
> 
> Won't this break on Windows? mingw_readdir() doesn't seem to have a
> maching mingw_rewinddir() in compat/mingw.c/h....
> 

rewinddir() is used in ClamAV too, and it builds natively on win32. I think we have some compat function that map rewinddir to the Win32 API, somebody will probably have to do that for git too.

Another possibility is to do closedir/opendir again on mingw.

Best regards, --Edwin

Erik Faye-Lund· Jun 18, 2010, 13:26 UTC · re: Török Edwin · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

2010/6/18 Török Edwin <edwintorok@gmail.com>:
Show 19 quoted lines
> On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
>> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>>> readdir() used to do a single pass, which is not always enough.
>>> If you unlink some files/rmdir some subdirs then there might be some
>>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>>> in the directory, etc.).
>>>
>>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>>> This is easily accomplished by using rewinddir.
>>>
>>
>> Won't this break on Windows? mingw_readdir() doesn't seem to have a
>> maching mingw_rewinddir() in compat/mingw.c/h....
>>
>
> rewinddir() is used in ClamAV too, and it builds natively on win32.
> I think we have some compat function that map rewinddir to the Win32
> API, somebody will probably have to do that for git too.
>

There's a rewinddir function in msvcrt.dll. However, we're not using msvcrt.dll's opendir() implementation for performance reasons, so this patch would require a rewinddir implementation as a preparation path, no? If such a patch could be extracted from ClamAV (and ClamAV is license compatible with git), would you mind including such a patch for the next round?

> Another possibility is to do closedir/opendir again on mingw.

Yes. Yet another possibility is to enable the NO_MINGW_REPLACE_READDIR-switch, but this has negative performance effects...

-- 
Erik "kusma" Faye-Lund
Török Edwin· Jun 18, 2010, 13:50 UTC · re: Erik Faye-Lund · lore

Re: [PATCH] Fix 'git clean' failure on NFS.

On 2010-06-18 16:26, Erik Faye-Lund wrote:
Show 26 quoted lines
> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>> On 06/18/2010 03:29 PM, Erik Faye-Lund wrote:
>>> 2010/6/18 Török Edwin <edwintorok@gmail.com>:
>>>> readdir() used to do a single pass, which is not always enough.
>>>> If you unlink some files/rmdir some subdirs then there might be some
>>>> files you haven't seen yet *before* the readdir cursor (files get rearranged
>>>> in the directory, etc.).
>>>>
>>>> The fix is to do an additional readdir() pass if we unlinked/rmdired something.
>>>> This is easily accomplished by using rewinddir.
>>>>
>>>
>>> Won't this break on Windows? mingw_readdir() doesn't seem to have a
>>> maching mingw_rewinddir() in compat/mingw.c/h....
>>>
>>
>> rewinddir() is used in ClamAV too, and it builds natively on win32.
>> I think we have some compat function that map rewinddir to the Win32
>> API, somebody will probably have to do that for git too.
>>
> 
> There's a rewinddir function in msvcrt.dll. However, we're not using
> msvcrt.dll's opendir() implementation for performance reasons, so this
> patch would require a rewinddir implementation as a preparation path,
> no? If such a patch could be extracted from ClamAV (and ClamAV is
> license compatible with git
ClamAV is GPLv2 only. git is the same AFAICT, so it should be fine.
>), would you mind including such a patch
> for the next round?
Will try to do that later today.
Show 7 quoted lines
> 
>> Another possibility is to do closedir/opendir again on mingw.
> 
> Yes. Yet another possibility is to enable the
> NO_MINGW_REPLACE_READDIR-switch, but this has negative performance
> effects...
> 
I'd rather not do that.

Best regards, --Edwin

← back to recent threads