Various fixes/updates
authorBruce Cran <bruce@cran.org.uk>
Sat, 8 Jan 2011 18:49:54 +0000 (19:49 +0100)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 8 Jan 2011 18:49:54 +0000 (19:49 +0100)
commit9b8365618309572d8fd2579c8ea3132db89f843f
tree8b0b266489021c4fef9d52693032241ec1de0207
parente4db9fec06d77523472e9fad6de5170a77d715c0
Various fixes/updates

- Update HOWTO to note that directio and fallocate don't work with ZFS
  on Solaris.

Refactor the Makefile's to add CPPFLAGS and LIBS.
- Add -fno-omit-frame-pointer from Linux Makefile to every platform
- Change undefined $(ALL_CFLAGS) to $(CFLAGS)
- Pass -std=gnu99, without which OS X fails to build.
- Add -D__EXTENSIONS__ on Solaris since some functions we need are
  behind it.

- Pull in <limits.h> in fio.c to get PTHREAD_STACK_MIN.
- NetBSD doesn't define PTHREAD_STACK_MIN so set it to 4k in
   os-netbsd.h

- If we have posix_fallocate don't error out if it fails during mutex
  and malloc operations since it will fail on Solaris with a ZFS
  filesystem. As I understand it these aren't performance-critical
  operations so do they need to be considered critical?

- Remove fio_unused from os-* files since it's defined in fio.h and we
  don't really need it.

- FreeBSD has an idprio command but not the API so don't claim it does.

- OS X doesn't have the timer_* API so emulate it using
  setitimer/sigaction.

- NetBSD and Solaris don't support CLOCK_MONOTONIC in timer_create so
  remove FIO_HAVE_CLOCK_MONOTONIC from their os-* files.

I've noticed that a change I made a while ago to use fmin/fmax could
cause issues on older OSes - I had a CD with NetBSD 5.0.2 and found
they had only been implemented in 5.1 so I'm not sure if I should
revert it.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
21 files changed:
HOWTO
Makefile
Makefile.FreeBSD
Makefile.NetBSD
Makefile.Windows
Makefile.aix
Makefile.mac
Makefile.solaris
compiler/compiler-gcc3.h
compiler/compiler.h
engines/windowsaio.c
filesetup.c
fio.c
mutex.c
os/os-aix.h
os/os-freebsd.h
os/os-mac.h
os/os-netbsd.h
os/os-solaris.h
os/os-windows.h
smalloc.c