Dear. all

I'm trying to compile m5threads.

At the m5threads directory, when I run the command
gcc -static -c pthread.c -o pthread.o

the error occurs like below.

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’
 efine 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’?
 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’?
 e 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’?
 e 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’
 efine 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’?
 e 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’?
 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’
 efine 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’
 efine 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’?
 e 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’?
 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’
 efine 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’?
 e 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’?
 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’?
 e 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’
 efine 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’
 efine 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’
 efine 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’?
 e 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’?
 e 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’?
 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’?
 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’
 efine 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’
  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’?
 ne 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’
  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’?
 ne 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));
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~

What is the problem and how can I handle it??

Thanks.
Haeyoon Cho.
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to