m5threads are not being compiled with gcc-7.3.0
I have used the code from https://github.com/gem5/m5threads
And the default Make file was used. Got a lot of errors with the code.
I need the m5threads to run multithreaded programs in SE mode of x86
architecture. Please let me know how to resolve this.
The error file is as following --
pthread.c: In function ‘pthread_create’:
pthread.c:256:3: warning: implicit declaration of function ‘clone’; did
you mean ‘close’? [-Wimplicit-function-declaration]
clone(__pthread_trampoline, tcb->stack_start_addr,
CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD, tcb);
^~~~~
close
In file included from pthread.c:49:0:
pthread.c: In function ‘pthread_rwlock_init’:
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:380:5: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
PTHREAD_RWLOCK_T_LOCK(lock) = 0; // used only with spin_lock, so
we know to initilize to zero
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:381:5: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
PTHREAD_RWLOCK_T_READERS(lock) = 0;
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:382:5: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
PTHREAD_RWLOCK_T_WRITER(lock) = -1; // -1 means no one owns the
write lock
^~~~~~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_rwlock_rdlock’:
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:398:32: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
pthread_t writer = PTHREAD_RWLOCK_T_WRITER(lock);
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:404:27: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_lock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:405:24: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
if ((pthread_t)PTHREAD_RWLOCK_T_WRITER(lock) == -1) {
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:406:13: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
PTHREAD_RWLOCK_T_READERS(lock)++;
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:407:33: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_unlock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:411:29: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_unlock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_rwlock_wrlock’:
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:422:32: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
pthread_t writer = PTHREAD_RWLOCK_T_WRITER(lock);
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:426:31: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
int num_readers = PTHREAD_RWLOCK_T_READERS(lock);
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:432:27: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_lock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:433:24: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
if ((pthread_t)PTHREAD_RWLOCK_T_WRITER(lock) == -1 &&
PTHREAD_RWLOCK_T_READERS(lock) == 0) {
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:433:63: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
if ((pthread_t)PTHREAD_RWLOCK_T_WRITER(lock) == -1 &&
PTHREAD_RWLOCK_T_READERS(lock) == 0) {
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:434:13: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
PTHREAD_RWLOCK_T_WRITER(lock) = pthread_self();
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:435:33: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_unlock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:439:29: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_unlock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_rwlock_unlock’:
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:448:23: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_lock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:449:27: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
if (pthread_self() == PTHREAD_RWLOCK_T_WRITER(lock)) {
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:104:76: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__writer’; did you mean ‘__writers’?
#define PTHREAD_RWLOCK_T_WRITER(rwlock) (*(volatile
int*)(&rwlock->__data.__writer))
^
pthread.c:451:9: note: in expansion of macro ‘PTHREAD_RWLOCK_T_WRITER’
PTHREAD_RWLOCK_T_WRITER(lock) = -1;
^~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:454:9: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
PTHREAD_RWLOCK_T_READERS(lock) =
PTHREAD_RWLOCK_T_READERS(lock) - 1;
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:103:77: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__nr_readers’; did you mean ‘__readers’?
#define PTHREAD_RWLOCK_T_READERS(rwlock) (*(volatile
int*)(&rwlock->__data.__nr_readers))
^
pthread.c:454:42: note: in expansion of macro ‘PTHREAD_RWLOCK_T_READERS’
PTHREAD_RWLOCK_T_READERS(lock) =
PTHREAD_RWLOCK_T_READERS(lock) - 1;
^~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:102:73: error: ‘struct __pthread_rwlock_arch_t’ has no
member named ‘__lock’
#define PTHREAD_RWLOCK_T_LOCK(rwlock) (*(volatile
int*)(&rwlock->__data.__lock))
^
pthread.c:456:25: note: in expansion of macro ‘PTHREAD_RWLOCK_T_LOCK’
spin_unlock((int*)&(PTHREAD_RWLOCK_T_LOCK(lock)));
^~~~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_cond_init’:
pthread_defs.h:107:67: error: ‘struct __pthread_cond_s’ has no member
named ‘__lock’
#define PTHREAD_COND_T_FLAG(cond) (*(volatile
int*)(&(cond->__data.__lock)))
^
pthread.c:536:5: note: in expansion of macro ‘PTHREAD_COND_T_FLAG’
PTHREAD_COND_T_FLAG(cond) = 0;
^~~~~~~~~~~~~~~~~~~
pthread_defs.h:108:76: error: ‘struct __pthread_cond_s’ has no member
named ‘__futex’
#define PTHREAD_COND_T_THREAD_COUNT(cond) (*(volatile int*)(&(cond->
__data.__futex)))
^
pthread.c:537:5: note: in expansion of macro ‘PTHREAD_COND_T_THREAD_COUNT’
PTHREAD_COND_T_THREAD_COUNT(cond) = 0;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:109:74: error: ‘struct __pthread_cond_s’ has no member
named ‘__nwaiters’; did you mean ‘__wrefs’?
#define PTHREAD_COND_T_COUNT_LOCK(cond) (*(volatile
int*)(&(cond->__data.__nwaiters)))
^
pthread.c:538:5: note: in expansion of macro ‘PTHREAD_COND_T_COUNT_LOCK’
PTHREAD_COND_T_COUNT_LOCK(cond) = 0;
^~~~~~~~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_cond_broadcast’:
pthread_defs.h:107:67: error: ‘struct __pthread_cond_s’ has no member
named ‘__lock’
#define PTHREAD_COND_T_FLAG(cond) (*(volatile
int*)(&(cond->__data.__lock)))
^
pthread.c:549:5: note: in expansion of macro ‘PTHREAD_COND_T_FLAG’
PTHREAD_COND_T_FLAG(cond) = 1;
^~~~~~~~~~~~~~~~~~~
pthread.c: In function ‘pthread_cond_wait’:
pthread_defs.h:108:76: error: ‘struct __pthread_cond_s’ has no member
named ‘__futex’
#define PTHREAD_COND_T_THREAD_COUNT(cond) (*(volatile int*)(&(cond->
__data.__futex)))
^
pthread.c:556:37: note: in expansion of macro ‘PTHREAD_COND_T_THREAD_COUNT’
volatile int* thread_count = &(PTHREAD_COND_T_THREAD_COUNT(cond));
^~~~~~~~~~~~~~~~~~~~~~~~~~~
pthread_defs.h:107:67: error: ‘struct __pthread_cond_s’ has no member
named ‘__lock’
#define PTHREAD_COND_T_FLAG(cond) (*(volatile
int*)(&(cond->__data.__lock)))
^
pthread.c:557:28: note: in expansion of macro ‘PTHREAD_COND_T_FLAG’
volatile int* flag = &(PTHREAD_COND_T_FLAG(cond));
^~~~~~~~~~~~~~~~~~~
pthread_defs.h:109:74: error: ‘struct __pthread_cond_s’ has no member
named ‘__nwaiters’; did you mean ‘__wrefs’?
#define PTHREAD_COND_T_COUNT_LOCK(cond) (*(volatile
int*)(&(cond->__data.__nwaiters)))
^
pthread.c:558:37: note: in expansion of macro ‘PTHREAD_COND_T_COUNT_LOCK’
volatile int* count_lock = &(PTHREAD_COND_T_COUNT_LOCK(cond));
^~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [pthread.o] Error 1
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users