Arnt Gulbrandsen wrote:
IIRC zfs doesn't flush the cache, it sets the writethrough/writeback mode at boot/disk insertion time and then manages its own write cache well well enough to get fast fsync() without relying on the disk's cache.
I believe that's (nearly) the behaviour if it thinks its sharing the disk - it leaves the write model alone. If it thinks it owns the whole disk it will enable wrate caching and do appropriate flushing, unless you tell it not to.

See http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide (Storage Pools) and http://en.wikipedia.org/wiki/ZFS (Additional Capabilities).

Note sure why I seem to have warning-as-error set for jam, which I just
installed.

That's set in our Jamfiles somewhere.
That's concerning - why doesn't 3.1.3 build for me then? Do you want the
error list?

Certainly.
Bit of an issue with the codepage for the single quotes here but it should hold.

...found 957 target(s)...
...updating 15 target(s)...
C++ build/gcc-O3-ossl/db/postgres.o
C++ build/gcc-O3-ossl/server/server.o
cc1plus: warnings being treated as errors
server/server.cpp: In member function ‘void Server::setup(Server::Stage)’: server/server.cpp:222: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result server/server.cpp:223: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/server/server.o -g -Werror -funsigned-char -W -Wall -O3 -DUSECACHE=1 -Iserver -Icore -Iabnf -Iserver -Imessage -Iextractors -Iencodings -Idb server/server.cpp

...failed C++ build/gcc-O3-ossl/server/server.o ...
C++ build/gcc-O3-ossl/core/file.o
cc1plus: warnings being treated as errors
core/file.cpp: In member function ‘void File::write(const EString&)’:
core/file.cpp:261: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/core/file.o -g -Werror -funsigned-char -W -Wall -O3 -Icore core/file.cpp

...failed C++ build/gcc-O3-ossl/core/file.o ...
...skipped deliver for lack of <server>server.o...
...skipped logd for lack of <server>server.o...
C++ build/gcc-O3-ossl/aox/aoxcommand.o
cc1plus: warnings being treated as errors
aox/aoxcommand.cpp: In member function ‘EString AoxCommand::readPassword(const EString&)’: aox/aoxcommand.cpp:332: error: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/aox/aoxcommand.o -g -Werror -funsigned-char -W -Wall -pthread -O3 -Iaox -Icore -Iabnf -Iserver -Imessage -Iextractors -Iencodings -Idb -Icollations -Ilogd -Iaox aox/aoxcommand.cpp

...failed C++ build/gcc-O3-ossl/aox/aoxcommand.o ...
C++ build/gcc-O3-ossl/aox/servers.o
cc1plus: warnings being treated as errors
aox/servers.cpp: In function ‘void selfSignCertificate()’:
aox/servers.cpp:1130: error: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/aox/servers.o -g -Werror -funsigned-char -W -Wall -pthread -O3 -Iaox -Icore -Iabnf -Iserver -Imessage -Iextractors -Iencodings -Idb -Icollations -Ilogd -Iaox aox/servers.cpp

...failed C++ build/gcc-O3-ossl/aox/servers.o ...
...skipped aox for lack of <aox>aoxcommand.o...
...skipped recorder for lack of <server>server.o...
C++ build/gcc-O3-ossl/installer/installer.o
cc1plus: warnings being treated as errors
installer/installer.cpp: In function ‘void readPassword()’:
installer/installer.cpp:424: error: ignoring return value of ‘char* fgets(char*, int, FILE*)’, declared with attribute warn_unused_result
installer/installer.cpp: In function ‘int psql(const EString&)’:
installer/installer.cpp:2214: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/installer/installer.o -g -Werror -funsigned-char -W -Wall -pthread -O3 -DLIBDIR='"/usr/local/archiveopteryx/lib"' -DCONFIGDIR='"/usr/local/archiveopteryx"' -DLOGFILE='"syslog/mail"' -DLOGFILEMODE='"400"' -DPSQL='"psql"' -DDBNAME='"archiveopteryx"' -DDBSCHEMA='"public"' -DDBOWNER='"aoxsuper"' -DDBOWNERPASS='""' -DDBPASS='""' -Iinstaller -Icore -Iabnf -Iserver -Imessage -Iextractors -Iencodings -Idb -Icollations -Ilogd -Iaox -Isasl installer/installer.cpp

...failed C++ build/gcc-O3-ossl/installer/installer.o ...
...skipped installer for lack of <installer>installer.o...
...skipped archiveopteryx for lack of <server>server.o...
...skipped aoximport for lack of <server>server.o...
C++ build/gcc-O3-ossl/aoxexport/exporter.o
cc1plus: warnings being treated as errors
aoxexport/exporter.cpp: In member function ‘virtual void Exporter::execute()’: aoxexport/exporter.cpp:158: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result aoxexport/exporter.cpp:159: error: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result

g++ -c -o build/gcc-O3-ossl/aoxexport/exporter.o -g -Werror -funsigned-char -W -Wall -pthread -O3 -Iaoxexport -Icore -Iabnf -Iserver -Imessage -Iextractors -Iencodings -Idb -Icollations -Ilogd -Iaox -Isasl -Iimap -Ipop -Isieve -Ismtp aoxexport/exporter.cpp

...failed C++ build/gcc-O3-ossl/aoxexport/exporter.o ...
...skipped aoxexport for lack of <aoxexport>exporter.o...
...failed updating 6 target(s)...
...skipped 8 target(s)...
...updated 1 target(s)...

Seriously - waf is a LOT better than Jam (and a lot better than scons too). Its very fast, and quite easy to extend, and having all of Python's runtime available is very handy. Its a bit hard to hack on the guts because its very 'dynamic pythonic' but Jam has a terrible reputation for that sort of thing too, and Thomas Nagy is actively developing waf.

Reply via email to