SyncPerf
SyncPerf copied to clipboard
Building SyncPerf
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