stewartsmith / libeatmydata

libeatmydata - because fsync() should be a no-op
https://www.flamingspork.com/projects/libeatmydata/
GNU General Public License v3.0
409 stars 21 forks source link

make check errors on macOS #3

Closed laurynas-biveinis closed 7 years ago

laurynas-biveinis commented 7 years ago
$ make check
/Applications/Xcode.app/Contents/Developer/usr/bin/make  libeatmydata/test/fsynctest libeatmydata/test/tst-cancel4 libeatmydata/test/tst-key4 libeatmydata/test/tst-invalidfd libeatmydata/test/eatmydatatest libeatmydata/test/eatmydatatest_largefile
  CC       libeatmydata/test/fsynctest.o
libeatmydata/test/fsynctest.c:44:3: warning: implicit declaration of function 'fdatasync' is invalid in C99 [-Wimplicit-function-declaration]
                fdatasync(fd);
                ^
1 warning generated.
  CCLD     libeatmydata/test/fsynctest
  CC       libeatmydata/test/tst-cancel4.o
libeatmydata/test/tst-cancel4.c:84:8: error: unknown type name 'pthread_barrier_t'
static pthread_barrier_t b2;
       ^
libeatmydata/test/tst-cancel4.c:120:11: warning: implicit declaration of function 'pthread_barrier_wait' is invalid in C99 [-Wimplicit-function-declaration]
  int r = pthread_barrier_wait (&b2);
          ^
libeatmydata/test/tst-cancel4.c:121:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:128:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:167:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:174:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:182:3: warning: implicit declaration of function 'fdatasync' is invalid in C99 [-Wimplicit-function-declaration]
  fdatasync (tempfd);
  ^
libeatmydata/test/tst-cancel4.c:220:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:227:22: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                     ^
libeatmydata/test/tst-cancel4.c:293:11: warning: implicit declaration of function 'pthread_barrier_init' is invalid in C99 [-Wimplicit-function-declaration]
      if (pthread_barrier_init (&b2, NULL, tests[cnt].nb) != 0)
          ^
libeatmydata/test/tst-cancel4.c:311:26: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                         ^
libeatmydata/test/tst-cancel4.c:343:11: warning: implicit declaration of function 'pthread_barrier_destroy' is invalid in C99 [-Wimplicit-function-declaration]
      if (pthread_barrier_destroy (&b2) != 0)
          ^
libeatmydata/test/tst-cancel4.c:409:26: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                         ^
libeatmydata/test/tst-cancel4.c:424:26: error: use of undeclared identifier 'PTHREAD_BARRIER_SERIAL_THREAD'
      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
                         ^
4 warnings and 10 errors generated.
make[1]: *** [libeatmydata/test/tst-cancel4.o] Error 1
make: *** [check-am] Error 2
laurynas-biveinis commented 7 years ago

Once these are fixed, make check fails at missing strace. Once that is fixed, two tests pass, three fail, investigating.

laurynas-biveinis commented 7 years ago

strace (dtruss on Mac) aside, debugging preloading stuck on DYLD_INSERT_LIBRARIES silently not working: https://stackoverflow.com/questions/45432512/dyld-force-flat-namespace-1-dyld-insert-libraries-foo-my-dylib-bar-exec-retu. Will resume if I get unblocked

laurynas-biveinis commented 7 years ago

Mac does not have open64, thus stubbing it in eatmydata_init fails and calls _exit().