On 04/11/2012 07:38 PM, Fabrizio Carrai wrote:
Hi,
The problem is that I dont have the <cyg/fileio/limits.h> header in my
install tree also the <cyg/posix/pthread.h> header
and I don't know why the confgtool did not generate these file when I
build the library, Is it a problem of version of the configtool or what??
Hi,
also this seems a problem on the eCos library configuration generated
with the configtool.
I used the configuration I suggested in a previous post (and that you
adopted!) and I'm able to compile your example. Some warnings, but no
errors.
The inclusion tree is the following:
"pthread.h"
"pkgconf/isoinfra.h"
"cyg/posix/pthread.h"
The latter include the declarations that you miss. Please, check it.
Your "standard_Posix" configuration should be good.
Fabrizio
Il giorno 11 aprile 2012 16:12, medamine<medamine.e...@gmail.com> ha scritto:
Hi every one,
I use
Hardware: ST STM3210E EVAL board
Packages: posix
in the section:POSIX threads
POSIX pthread implementation header Enabled=True Value=0
POSIX mutex/cond var implementation header Enabled=True Value=0
and I got the pthread.h :
#ifndef CYGONCE_ISO_PTHREAD_H
#define CYGONCE_ISO_PTHREAD_H
/*===========================================
//
// pthread.h
//
// POSIX pthread functions
//
//===========================================
/* CONFIGURATION */
#include<pkgconf/isoinfra.h> /* Configuration header */
/* INCLUDES */
#ifdef CYGINT_ISO_PTHREAD_IMPL
# ifdef CYGBLD_ISO_PTHREAD_IMPL_HEADER
# include CYGBLD_ISO_PTHREAD_IMPL_HEADER
# endif
#endif
#ifdef CYGINT_ISO_PTHREAD_MUTEX
# ifdef CYGBLD_ISO_PTHREAD_MUTEX_HEADER
# include CYGBLD_ISO_PTHREAD_MUTEX_HEADER
# endif
#endif
#endif /* CYGONCE_ISO_PTHREAD_H multiple inclusion protection */
/* EOF pthread.h */
After that, i wrote this application using thread
#include<pthread.h>
#include<stdio.h>
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
printf("Hello World! It's me, thread #%ld!\n", tid);
pthread_exit(NULL);
}
int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for(t=0; t<NUM_THREADS; t++){
printf("In main: creating thread %ld\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if (rc){
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
}
/* Last thing that main() should do */
pthread_exit(NULL);
}
but when i build the application withe eCos library, i got these errors
/STM3240G/fork$ make hello
arm-eabi-gcc -c -o hello.o -I/home/st/config/standard_Posix_install/include
-Wall -Wpointer-arith -Wstrict-prototypes -Wundef -Woverloaded-virtual
-Wno-write-strings -mcpu=cortex-m3 -mthumb -g -O2 -ffunction-sections
-fdata-sections -fno-rtti -fno-exceptions hello.c
cc1: warning: command line option "-Woverloaded-virtual" is valid for
C++/ObjC++ but not for C
cc1: warning: command line option "-fno-rtti" is valid for C++/ObjC++ but not
for C
hello.c: In function ‘PrintHello’:
hello.c:10: warning: implicit declaration of function ‘pthread_exit’
hello.c: In function ‘main’:
hello.c:15: error: ‘pthread_t’ undeclared (first use in this function)
hello.c:15: error: (Each undeclared identifier is reported only once
hello.c:15: error: for each function it appears in.)
hello.c:15: error: expected ‘;’ before ‘threads’
hello.c:20: warning: implicit declaration of function ‘pthread_create’
hello.c:20: error: ‘threads’ undeclared (first use in this function)
hello.c:23: warning: implicit declaration of function ‘exit’
hello.c:23: warning: incompatible implicit declaration of built-in function
‘exit’
make: *** [hello.o] Error 1
First view is that the thread functions doesn't exist in the header thread.h,
the configtool generate uncompleted headers,
Please i need your help.
Thanks a lot.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss