Hey Wiimm,
I've just updated my sandbox and found this error during make:
Code:
$ make
***ÂÂobject gen-ui.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject LzFind.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject Lzma2Dec.oÂÂÂÂÂÂÂÂ
***ÂÂobject Lzma2Enc.oÂÂÂÂÂÂÂÂ
***ÂÂobject LzmaDec.oÂÂÂÂÂÂÂÂ
***ÂÂobject LzmaEnc.oÂÂÂÂÂÂÂÂ
***ÂÂobject cert.oÂÂÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject dclib-utf8.oÂÂÂÂÂÂ
***ÂÂobject debug.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject file-formats.oÂÂÂÂ
***ÂÂobject iso-interface.oÂÂ
***ÂÂobject lib-bzip2.oÂÂÂÂÂÂ
***ÂÂobject lib-ciso.oÂÂÂÂÂÂÂÂ
***ÂÂobject lib-file.oÂÂÂÂÂÂÂÂ
src/lib-file.c: In function ‘PreallocHelper’:
src/lib-file.c:1778: warning: implicit declaration of function ‘posix_fallocate’
***ÂÂobject lib-lzma.oÂÂÂÂÂÂÂÂ
***ÂÂobject lib-sf.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject lib-std.oÂÂÂÂÂÂÂÂ
***ÂÂobject lib-wdf.oÂÂÂÂÂÂÂÂ
***ÂÂobject lib-wia.oÂÂÂÂÂÂÂÂ
***ÂÂobject libwbfs.oÂÂÂÂÂÂÂÂ
***ÂÂobject match-pattern.oÂÂ
***ÂÂobject patch.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject rijndael.oÂÂÂÂÂÂÂÂ
***ÂÂobject sha1_one.oÂÂÂÂÂÂÂÂ
***ÂÂobject sha1dgst.oÂÂÂÂÂÂÂÂ
***ÂÂÂÂ asm ssl-asm.oÂÂÂÂÂÂÂÂ
***ÂÂobject titles.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject tools.oÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject ui.oÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
***ÂÂobject wbfs-interface.oÂÂ
***ÂÂobject wiidisc.oÂÂÂÂÂÂÂÂ
***ÂÂhelper gen-uiÂÂÂÂÂÂÂÂÂÂÂÂ
Undefined symbols:
ÂÂ"_posix_fallocate", referenced from:
ÂÂÂÂÂÂ_PreallocHelper in lib-file.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [gen-ui] Error 1
I'm running OSX 10.6.x here, and after googling for a while I found
this reference.
My C skills are... well, forget about it, but please consider incorporate something along these lines:
CODEIndex: src/lib-file.c
===================================================================
--- src/lib-file.cÂÂÂÂ(revision 2100)
+++ src/lib-file.cÂÂÂÂ(working copy)
@@ -45,6 +45,10 @@
ÂÂ #include
#endif
+#if defined(HAVE_FALLOCATE)
+ÂÂ#include
+#endif
+
#include "lib-std.h"
#include "lib-sf.h"
#include "wbfs-interface.h"
@@ -1769,15 +1773,37 @@
ÂÂÂÂÂÂÂÂÂÂÂÂfound = *ptr;
ÂÂÂÂÂÂÂÂÂÂÂÂfound_size = found->size;
ÂÂÂÂÂÂÂÂÂÂÂÂ}
+
ÂÂÂÂÂÂÂÂif (!found)
ÂÂÂÂÂÂÂÂÂÂÂÂbreak;
-ÂÂÂÂÂÂÂÂPRINT("CALL posix_fallocate(%d,%9llx,%9llx [%s])\n",
+ÂÂÂÂÂÂÂÂPRINT("CALL specific allocate method with (%d,%9llx,%9llx [%s])\n",
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂf->fd, (u64)found->off, (u64)found->size,
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂwd_print_size_1024(0,0,found->size,true) );
-ÂÂÂÂÂÂÂÂposix_fallocate(f->fd,found->off,found->size);
+
+ # ifdef HAVE_FALLOCATE
+
+ÂÂÂÂÂÂÂÂfallocate(f->fd, FALLOC_FL_KEEP_SIZE, found->off, found->size);
+
+ # elif defined(__APPLE__)
+
+ÂÂÂÂÂÂÂÂfstore_t fst;
+ÂÂÂÂÂÂÂÂfst.fst_flags = F_ALLOCATECONTIG;
+ÂÂÂÂÂÂÂÂfst.fst_posmode = F_PEOFPOSMODE;
+ÂÂÂÂÂÂÂÂfst.fst_offset = found->off;
+ÂÂÂÂÂÂÂÂfst.fst_length = found->size;
+ÂÂÂÂÂÂÂÂfst.fst_bytesalloc = 0;
+ÂÂÂÂÂÂÂÂfcntl(f->fd, F_PREALLOCATE, &fst);
+
+ # else
+
+ÂÂÂÂÂÂÂÂposix_fallocate(f->fd, found->off, found->size);
+
+ # endif
+
ÂÂÂÂÂÂÂÂfound->size = 0;
-ÂÂÂÂÂÂÂÂPRINT("posix_fallocate() done\n");
+ÂÂÂÂÂÂÂÂPRINT("allocate method done\n");
+
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂ}
ÂÂÂÂ }
Thanks! :-)
--deo