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

Reply via email to