mejbah / SyncPerf

A lightweight profiler to detect and categorize root causes of synchronization related performance issues in multithreaded programs
GNU General Public License v3.0
20 stars 7 forks source link

Building SyncPerf #1

Open brnorris03 opened 6 years ago

brnorris03 commented 6 years ago

I tried building with many versions of gcc (4,5,6,7) on Ubuntu 18.04, but get numerous pthread-related errors. Are there specific dependencies I must address first? Thanks!

gcc -g -O2 -fno-omit-frame-pointer -I. -D_GNU_SOURCE -fPIC -DWITH_TRYLOCK  -DREPORT_LINE_INFO -DGET_STATISTICS  -c cond_wait.c
In file included from cond_wait.c:14:0:
pthreadP.h: In function ‘__do_cancel’:
pthreadP.h:165:11: warning: implicit declaration of function ‘__pthread_unwind’; did you mean ‘__pthread_unwind_next’? [-Wimplicit-function-declaration]
           __pthread_unwind ((__pthread_unwind_buf_t *)
           ^~~~~~~~~~~~~~~~
           __pthread_unwind_next
cond_wait.c: In function ‘__condvar_cleanup’:
cond_wait.c:34:39: error: ‘struct __pthread_cond_s’ has no member named ‘__mutex’
   int pshared = (cbuffer->cond->__data.__mutex == (void *) ~0l)
                                       ^
In file included from cond_wait.c:10:0:
cond_wait.c:38:34: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
                                  ^
./lowlevellock.h:122:48: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=&D" (ignore2), "=m" (futex),   \
                                                ^~~~~
cond_wait.c:38:34: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
                                  ^
./lowlevellock.h:124:23: note: in definition of macro ‘lll_lock’
       : "0" (1), "m" (futex), "3" (0)        \
                       ^~~~~
cond_wait.c:38:34: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
                                  ^
./lowlevellock.h:135:47: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=D" (ignore2), "=m" (futex),    \
                                               ^~~~~
cond_wait.c:38:34: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
                                  ^
./lowlevellock.h:137:23: note: in definition of macro ‘lll_lock’
       : "1" (1), "m" (futex), "3" (0), "0" (private)     \
                       ^~~~~
cond_wait.c:40:47: error: ‘struct __pthread_cond_s’ has no member named ‘__broadcast_seq’
   if (cbuffer->bc_seq == cbuffer->cond->__data.__broadcast_seq)
                                               ^
cond_wait.c:46:33: error: ‘struct __pthread_cond_s’ has no member named ‘__wakeup_seq’; did you mean ‘__wseq’?
       if (cbuffer->cond->__data.__wakeup_seq
                                 ^~~~~~~~~~~~
                                 __wseq
cond_wait.c:47:27: error: ‘struct __pthread_cond_s’ has no member named ‘__total_seq’
    < cbuffer->cond->__data.__total_seq)
                           ^
cond_wait.c:49:28: error: ‘struct __pthread_cond_s’ has no member named ‘__wakeup_seq’; did you mean ‘__wseq’?
    ++cbuffer->cond->__data.__wakeup_seq;
                            ^~~~~~~~~~~~
                            __wseq
cond_wait.c:50:27: error: ‘struct __pthread_cond_s’ has no member named ‘__futex’
    ++cbuffer->cond->__data.__futex;
                           ^
cond_wait.c:52:31: error: ‘struct __pthread_cond_s’ has no member named ‘__woken_seq’; did you mean ‘__wseq’?
       ++cbuffer->cond->__data.__woken_seq;
                               ^~~~~~~~~~~
                               __wseq
cond_wait.c:55:25: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
   cbuffer->cond->__data.__nwaiters -= 1 << COND_NWAITERS_SHIFT;
                         ^~~~~~~~~~
                         __wrefs
cond_wait.c:61:28: error: ‘struct __pthread_cond_s’ has no member named ‘__total_seq’
   if (cbuffer->cond->__data.__total_seq == -1ULL
                            ^
cond_wait.c:62:32: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
       && cbuffer->cond->__data.__nwaiters < (1 << COND_NWAITERS_SHIFT))
                                ^~~~~~~~~~
                                __wrefs
In file included from ./lowlevellock-futex.h:23:0,
                 from ./lowlevellock.h:48,
                 from cond_wait.c:10:
cond_wait.c:64:46: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
       lll_futex_wake (&cbuffer->cond->__data.__nwaiters, 1, pshared);
                                              ^
./sysdep.h:282:21: note: in definition of macro ‘LOAD_ARGS_TYPES_1’
   t1 __arg1 = (t1) (a1);         \
                     ^~
./sysdep.h:307:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_2’
   LOAD_ARGS_TYPES_2 (t1, a1, t2, a2)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:319:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_3’
   LOAD_ARGS_TYPES_3 (t1, a1, t2, a2, t3, a3)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:325:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_4’
   LOAD_ARGS_TYPES_4 (long int, a1, long int, a2, long int, a3,     \
   ^~~~~~~~~~~~~~~~~
./sysdep.h:240:5: note: in expansion of macro ‘LOAD_ARGS_4’
     LOAD_ARGS_##nr (args)            \
     ^~~~~~~~~~
./sysdep.h:249:3: note: in expansion of macro ‘INTERNAL_SYSCALL_NCS’
   INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
   ^~~~~~~~~~~~~~~~~~~~
./lowlevellock-futex.h:81:22: note: in expansion of macro ‘INTERNAL_SYSCALL’
     long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
                      ^~~~~~~~~~~~~~~~
./lowlevellock-futex.h:103:3: note: in expansion of macro ‘lll_futex_syscall’
   lll_futex_syscall (4, futexp,                                         \
   ^~~~~~~~~~~~~~~~~
cond_wait.c:64:7: note: in expansion of macro ‘lll_futex_wake’
       lll_futex_wake (&cbuffer->cond->__data.__nwaiters, 1, pshared);
       ^~~~~~~~~~~~~~
In file included from cond_wait.c:10:0:
cond_wait.c:69:36: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
                                    ^
./lowlevellock.h:264:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:69:36: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
                                    ^
./lowlevellock.h:265:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex)          \
              ^~~~~
cond_wait.c:69:36: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
                                    ^
./lowlevellock.h:276:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:69:36: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
                                    ^
./lowlevellock.h:277:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex), "S" (private)         \
              ^~~~~
In file included from ./lowlevellock-futex.h:23:0,
                 from ./lowlevellock.h:48,
                 from cond_wait.c:10:
cond_wait.c:73:43: error: ‘struct __pthread_cond_s’ has no member named ‘__futex’
     lll_futex_wake (&cbuffer->cond->__data.__futex, INT_MAX, pshared);
                                           ^
./sysdep.h:282:21: note: in definition of macro ‘LOAD_ARGS_TYPES_1’
   t1 __arg1 = (t1) (a1);         \
                     ^~
./sysdep.h:307:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_2’
   LOAD_ARGS_TYPES_2 (t1, a1, t2, a2)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:319:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_3’
   LOAD_ARGS_TYPES_3 (t1, a1, t2, a2, t3, a3)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:325:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_4’
   LOAD_ARGS_TYPES_4 (long int, a1, long int, a2, long int, a3,     \
   ^~~~~~~~~~~~~~~~~
./sysdep.h:240:5: note: in expansion of macro ‘LOAD_ARGS_4’
     LOAD_ARGS_##nr (args)            \
     ^~~~~~~~~~
./sysdep.h:249:3: note: in expansion of macro ‘INTERNAL_SYSCALL_NCS’
   INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
   ^~~~~~~~~~~~~~~~~~~~
./lowlevellock-futex.h:81:22: note: in expansion of macro ‘INTERNAL_SYSCALL’
     long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
                      ^~~~~~~~~~~~~~~~
./lowlevellock-futex.h:103:3: note: in expansion of macro ‘lll_futex_syscall’
   lll_futex_syscall (4, futexp,                                         \
   ^~~~~~~~~~~~~~~~~
cond_wait.c:73:5: note: in expansion of macro ‘lll_futex_wake’
     lll_futex_wake (&cbuffer->cond->__data.__futex, INT_MAX, pshared);
     ^~~~~~~~~~~~~~
cond_wait.c:82:5: warning: implicit declaration of function ‘__pthread_mutex_cond_lock’; did you mean ‘pthread_mutex_unlock’? [-Wimplicit-function-declaration]
     __pthread_mutex_cond_lock (cbuffer->mutex);
     ^~~~~~~~~~~~~~~~~~~~~~~~~
     pthread_mutex_unlock
cond_wait.c:85:5: warning: implicit declaration of function ‘__pthread_mutex_cond_lock_adjust’; did you mean ‘pthread_mutex_unlock’? [-Wimplicit-function-declaration]
     __pthread_mutex_cond_lock_adjust (cbuffer->mutex);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     pthread_mutex_unlock
cond_wait.c: In function ‘pthread_cond_wait’:
cond_wait.c:96:29: error: ‘struct __pthread_cond_s’ has no member named ‘__mutex’
  int pshared = (cond->__data.__mutex == (void *) ~0l)
                             ^
cond_wait.c:105:12: warning: implicit declaration of function ‘getThreadIndex’; did you mean ‘pthread_once’? [-Wimplicit-function-declaration]
  int tid = getThreadIndex();
            ^~~~~~~~~~~~~~
            pthread_once
In file included from cond_wait.c:10:0:
cond_wait.c:130:24: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_lock (cond->__data.__lock, pshared);
                        ^
./lowlevellock.h:122:48: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=&D" (ignore2), "=m" (futex),   \
                                                ^~~~~
cond_wait.c:130:24: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_lock (cond->__data.__lock, pshared);
                        ^
./lowlevellock.h:124:23: note: in definition of macro ‘lll_lock’
       : "0" (1), "m" (futex), "3" (0)        \
                       ^~~~~
cond_wait.c:130:24: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_lock (cond->__data.__lock, pshared);
                        ^
./lowlevellock.h:135:47: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=D" (ignore2), "=m" (futex),    \
                                               ^~~~~
cond_wait.c:130:24: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_lock (cond->__data.__lock, pshared);
                        ^
./lowlevellock.h:137:23: note: in definition of macro ‘lll_lock’
       : "1" (1), "m" (futex), "3" (0), "0" (private)     \
                       ^~~~~
cond_wait.c:133:8: warning: implicit declaration of function ‘__pthread_mutex_unlock_usercnt’; did you mean ‘pthread_mutex_unlock’? [-Wimplicit-function-declaration]
  err = __pthread_mutex_unlock_usercnt (mutex, 0);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        pthread_mutex_unlock
In file included from cond_wait.c:10:0:
cond_wait.c:136:29: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
     lll_unlock (cond->__data.__lock, pshared);
                             ^
./lowlevellock.h:264:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:136:29: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
     lll_unlock (cond->__data.__lock, pshared);
                             ^
./lowlevellock.h:265:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex)          \
              ^~~~~
cond_wait.c:136:29: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
     lll_unlock (cond->__data.__lock, pshared);
                             ^
./lowlevellock.h:276:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:136:29: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
     lll_unlock (cond->__data.__lock, pshared);
                             ^
./lowlevellock.h:277:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex), "S" (private)         \
              ^~~~~
cond_wait.c:141:16: error: ‘struct __pthread_cond_s’ has no member named ‘__total_seq’
  ++cond->__data.__total_seq;
                ^
cond_wait.c:142:16: error: ‘struct __pthread_cond_s’ has no member named ‘__futex’
  ++cond->__data.__futex;
                ^
cond_wait.c:143:15: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
  cond->__data.__nwaiters += 1 << COND_NWAITERS_SHIFT;
               ^~~~~~~~~~
               __wrefs
cond_wait.c:148:18: error: ‘struct __pthread_cond_s’ has no member named ‘__mutex’
  if (cond->__data.__mutex != (void *) ~0l)
                  ^
cond_wait.c:149:15: error: ‘struct __pthread_cond_s’ has no member named ‘__mutex’
   cond->__data.__mutex = mutex;
               ^
cond_wait.c:157:2: warning: implicit declaration of function ‘__pthread_cleanup_push’; did you mean ‘pthread_cleanup_push’? [-Wimplicit-function-declaration]
  __pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer);
  ^~~~~~~~~~~~~~~~~~~~~~
  pthread_cleanup_push
cond_wait.c:163:27: error: ‘struct __pthread_cond_s’ has no member named ‘__wakeup_seq’; did you mean ‘__wseq’?
  val = seq = cond->__data.__wakeup_seq;
                           ^~~~~~~~~~~~
                           __wseq
cond_wait.c:165:31: error: ‘struct __pthread_cond_s’ has no member named ‘__broadcast_seq’
  cbuffer.bc_seq = cond->__data.__broadcast_seq;
                               ^
cond_wait.c:168:40: error: ‘struct __pthread_cond_s’ has no member named ‘__futex’
   unsigned int futex_val = cond->__data.__futex;
                                        ^
In file included from cond_wait.c:10:0:
cond_wait.c:170:27: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cond->__data.__lock, pshared);
                           ^
./lowlevellock.h:264:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:170:27: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cond->__data.__lock, pshared);
                           ^
./lowlevellock.h:265:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex)          \
              ^~~~~
cond_wait.c:170:27: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cond->__data.__lock, pshared);
                           ^
./lowlevellock.h:276:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:170:27: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_unlock (cond->__data.__lock, pshared);
                           ^
./lowlevellock.h:277:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex), "S" (private)         \
              ^~~~~
cond_wait.c:203:20: warning: passing argument 1 of ‘start_timestamp’ from incompatible pointer type [-Wincompatible-pointer-types]
    start_timestamp(&wait_start);
                    ^
In file included from cond_wait.c:16:0:
mutex_manager.h:68:6: note: expected ‘struct timeinfo *’ but argument is of type ‘struct timeinfo **’
 void start_timestamp( struct timeinfo *st );
      ^~~~~~~~~~~~~~~
In file included from ./lowlevellock-futex.h:23:0,
                 from ./lowlevellock.h:48,
                 from cond_wait.c:10:
cond_wait.c:206:33: error: ‘struct __pthread_cond_s’ has no member named ‘__futex’
    lll_futex_wait (&cond->__data.__futex, futex_val, pshared);
                                 ^
./sysdep.h:282:21: note: in definition of macro ‘LOAD_ARGS_TYPES_1’
   t1 __arg1 = (t1) (a1);         \
                     ^~
./sysdep.h:307:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_2’
   LOAD_ARGS_TYPES_2 (t1, a1, t2, a2)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:319:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_3’
   LOAD_ARGS_TYPES_3 (t1, a1, t2, a2, t3, a3)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:325:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_4’
   LOAD_ARGS_TYPES_4 (long int, a1, long int, a2, long int, a3,     \
   ^~~~~~~~~~~~~~~~~
./sysdep.h:240:5: note: in expansion of macro ‘LOAD_ARGS_4’
     LOAD_ARGS_##nr (args)            \
     ^~~~~~~~~~
./sysdep.h:249:3: note: in expansion of macro ‘INTERNAL_SYSCALL_NCS’
   INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
   ^~~~~~~~~~~~~~~~~~~~
./lowlevellock-futex.h:81:22: note: in expansion of macro ‘INTERNAL_SYSCALL’
     long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
                      ^~~~~~~~~~~~~~~~
./lowlevellock-futex.h:91:3: note: in expansion of macro ‘lll_futex_syscall’
   lll_futex_syscall (4, futexp,                                 \
   ^~~~~~~~~~~~~~~~~
./lowlevellock-futex.h:88:3: note: in expansion of macro ‘lll_futex_timed_wait’
   lll_futex_timed_wait (futexp, val, NULL, private)
   ^~~~~~~~~~~~~~~~~~~~
cond_wait.c:206:4: note: in expansion of macro ‘lll_futex_wait’
    lll_futex_wait (&cond->__data.__futex, futex_val, pshared);
    ^~~~~~~~~~~~~~
In file included from cond_wait.c:10:0:
cond_wait.c:213:25: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cond->__data.__lock, pshared);
                         ^
./lowlevellock.h:122:48: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=&D" (ignore2), "=m" (futex),   \
                                                ^~~~~
cond_wait.c:213:25: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cond->__data.__lock, pshared);
                         ^
./lowlevellock.h:124:23: note: in definition of macro ‘lll_lock’
       : "0" (1), "m" (futex), "3" (0)        \
                       ^~~~~
cond_wait.c:213:25: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cond->__data.__lock, pshared);
                         ^
./lowlevellock.h:135:47: note: in definition of macro ‘lll_lock’
       : "=S" (ignore1), "=D" (ignore2), "=m" (futex),    \
                                               ^~~~~
cond_wait.c:213:25: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
   lll_lock (cond->__data.__lock, pshared);
                         ^
./lowlevellock.h:137:23: note: in definition of macro ‘lll_lock’
       : "1" (1), "m" (futex), "3" (0), "0" (private)     \
                       ^~~~~
cond_wait.c:216:37: error: ‘struct __pthread_cond_s’ has no member named ‘__broadcast_seq’
   if (cbuffer.bc_seq != cond->__data.__broadcast_seq)
                                     ^
cond_wait.c:220:22: error: ‘struct __pthread_cond_s’ has no member named ‘__wakeup_seq’; did you mean ‘__wseq’?
   val = cond->__data.__wakeup_seq;
                      ^~~~~~~~~~~~
                      __wseq
cond_wait.c:222:36: error: ‘struct __pthread_cond_s’ has no member named ‘__woken_seq’; did you mean ‘__wseq’?
  while (val == seq || cond->__data.__woken_seq == val);
                                    ^~~~~~~~~~~
                                    __wseq
cond_wait.c:225:17: error: ‘struct __pthread_cond_s’ has no member named ‘__woken_seq’; did you mean ‘__wseq’?
  ++cond->__data.__woken_seq;
                 ^~~~~~~~~~~
                 __wseq
cond_wait.c:229:15: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
  cond->__data.__nwaiters -= 1 << COND_NWAITERS_SHIFT;
               ^~~~~~~~~~
               __wrefs
cond_wait.c:234:18: error: ‘struct __pthread_cond_s’ has no member named ‘__total_seq’
  if (cond->__data.__total_seq == -1ULL
                  ^
cond_wait.c:235:19: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
   && cond->__data.__nwaiters < (1 << COND_NWAITERS_SHIFT))
                   ^~~~~~~~~~
                   __wrefs
In file included from ./lowlevellock-futex.h:23:0,
                 from ./lowlevellock.h:48,
                 from cond_wait.c:10:
cond_wait.c:236:33: error: ‘struct __pthread_cond_s’ has no member named ‘__nwaiters’; did you mean ‘__wrefs’?
   lll_futex_wake (&cond->__data.__nwaiters, 1, pshared);
                                 ^
./sysdep.h:282:21: note: in definition of macro ‘LOAD_ARGS_TYPES_1’
   t1 __arg1 = (t1) (a1);         \
                     ^~
./sysdep.h:307:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_2’
   LOAD_ARGS_TYPES_2 (t1, a1, t2, a2)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:319:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_3’
   LOAD_ARGS_TYPES_3 (t1, a1, t2, a2, t3, a3)
   ^~~~~~~~~~~~~~~~~
./sysdep.h:325:3: note: in expansion of macro ‘LOAD_ARGS_TYPES_4’
   LOAD_ARGS_TYPES_4 (long int, a1, long int, a2, long int, a3,     \
   ^~~~~~~~~~~~~~~~~
./sysdep.h:240:5: note: in expansion of macro ‘LOAD_ARGS_4’
     LOAD_ARGS_##nr (args)            \
     ^~~~~~~~~~
./sysdep.h:249:3: note: in expansion of macro ‘INTERNAL_SYSCALL_NCS’
   INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
   ^~~~~~~~~~~~~~~~~~~~
./lowlevellock-futex.h:81:22: note: in expansion of macro ‘INTERNAL_SYSCALL’
     long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
                      ^~~~~~~~~~~~~~~~
./lowlevellock-futex.h:103:3: note: in expansion of macro ‘lll_futex_syscall’
   lll_futex_syscall (4, futexp,                                         \
   ^~~~~~~~~~~~~~~~~
cond_wait.c:236:3: note: in expansion of macro ‘lll_futex_wake’
   lll_futex_wake (&cond->__data.__nwaiters, 1, pshared);
   ^~~~~~~~~~~~~~
In file included from cond_wait.c:10:0:
cond_wait.c:239:26: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_unlock (cond->__data.__lock, pshared);
                          ^
./lowlevellock.h:264:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:239:26: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_unlock (cond->__data.__lock, pshared);
                          ^
./lowlevellock.h:265:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex)          \
              ^~~~~
cond_wait.c:239:26: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_unlock (cond->__data.__lock, pshared);
                          ^
./lowlevellock.h:276:15: note: in definition of macro ‘lll_unlock’
       : "=m" (futex), "=&D" (ignore)        \
               ^~~~~
cond_wait.c:239:26: error: ‘struct __pthread_cond_s’ has no member named ‘__lock’
  lll_unlock (cond->__data.__lock, pshared);
                          ^
./lowlevellock.h:277:14: note: in definition of macro ‘lll_unlock’
       : "m" (futex), "S" (private)         \
              ^~~~~
cond_wait.c:242:3: warning: implicit declaration of function ‘__pthread_cleanup_pop’; did you mean ‘pthread_cleanup_pop’? [-Wimplicit-function-declaration]
   __pthread_cleanup_pop (&buffer, 0);
   ^~~~~~~~~~~~~~~~~~~~~
   pthread_cleanup_pop
cond_wait.c:260:52: warning: passing argument 3 of ‘add_cond_wait_time’ from incompatible pointer type [-Wincompatible-pointer-types]
   add_cond_wait_time(mutex_data->entry_index, tid, &wait_start);
                                                    ^
In file included from cond_wait.c:16:0:
mutex_manager.h:65:6: note: expected ‘struct timeinfo *’ but argument is of type ‘struct timeinfo **’
 void add_cond_wait_time(size_t mut_index, int thd_idx, struct timeinfo *st);
      ^~~~~~~~~~~~~~~~~~
In file included from cond_wait.c:10:0:
cond_wait.c: In function ‘__condvar_cleanup’:
./lowlevellock.h:114:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:38:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:114:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:38:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:127:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:38:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:127:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:38:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:256:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:69:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:256:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:69:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:268:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:69:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:268:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:69:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cbuffer->cond->__data.__lock, pshared);
   ^~~~~~~~~~
cond_wait.c: In function ‘pthread_cond_wait’:
./lowlevellock.h:114:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:130:2: note: in expansion of macro ‘lll_lock’
  lll_lock (cond->__data.__lock, pshared);
  ^~~~~~~~
./lowlevellock.h:114:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:130:2: note: in expansion of macro ‘lll_lock’
  lll_lock (cond->__data.__lock, pshared);
  ^~~~~~~~
./lowlevellock.h:127:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:130:2: note: in expansion of macro ‘lll_lock’
  lll_lock (cond->__data.__lock, pshared);
  ^~~~~~~~
./lowlevellock.h:127:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:130:2: note: in expansion of macro ‘lll_lock’
  lll_lock (cond->__data.__lock, pshared);
  ^~~~~~~~
./lowlevellock.h:256:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:136:5: note: in expansion of macro ‘lll_unlock’
     lll_unlock (cond->__data.__lock, pshared);
     ^~~~~~~~~~
./lowlevellock.h:256:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:136:5: note: in expansion of macro ‘lll_unlock’
     lll_unlock (cond->__data.__lock, pshared);
     ^~~~~~~~~~
./lowlevellock.h:268:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:136:5: note: in expansion of macro ‘lll_unlock’
     lll_unlock (cond->__data.__lock, pshared);
     ^~~~~~~~~~
./lowlevellock.h:268:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:136:5: note: in expansion of macro ‘lll_unlock’
     lll_unlock (cond->__data.__lock, pshared);
     ^~~~~~~~~~
./lowlevellock.h:256:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:170:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:256:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:170:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:268:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:170:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:268:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:170:3: note: in expansion of macro ‘lll_unlock’
   lll_unlock (cond->__data.__lock, pshared);
   ^~~~~~~~~~
./lowlevellock.h:114:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:213:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:114:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:213:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:127:3: error: invalid lvalue in asm output 2
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:213:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:127:3: error: memory input 5 is not directly addressable
   __asm __volatile (__lll_lock_asm_start          \
   ^
cond_wait.c:213:3: note: in expansion of macro ‘lll_lock’
   lll_lock (cond->__data.__lock, pshared);
   ^~~~~~~~
./lowlevellock.h:256:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:239:2: note: in expansion of macro ‘lll_unlock’
  lll_unlock (cond->__data.__lock, pshared);
  ^~~~~~~~~~
./lowlevellock.h:256:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:239:2: note: in expansion of macro ‘lll_unlock’
  lll_unlock (cond->__data.__lock, pshared);
  ^~~~~~~~~~
./lowlevellock.h:268:3: error: invalid lvalue in asm output 0
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:239:2: note: in expansion of macro ‘lll_unlock’
  lll_unlock (cond->__data.__lock, pshared);
  ^~~~~~~~~~
./lowlevellock.h:268:3: error: memory input 2 is not directly addressable
   __asm __volatile (__lll_unlock_asm_start         \
   ^
cond_wait.c:239:2: note: in expansion of macro ‘lll_unlock’
  lll_unlock (cond->__data.__lock, pshared);
  ^~~~~~~~~~
Makefile:24: recipe for target 'cond_wait.o' failed
make: *** [cond_wait.o] Error 1
mejbah commented 6 years ago

I believe the issue is related to the glibc version. Ubuntu 18.04 comes with glibc 2.27. However, I can only confirm that SyncPerf should work with glibc 2.23. What version of glibc are you using? You can downgrade the glibc version to 2.23, if needed. Let me know if that helps.