This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I have been using RTEMS-3.5.1 running under Solaris 2.5 for some time and have recently noticed a problem with the implementation of errno. The problem is that all RTEMS tasks seem to utilise the same errno variable, which leads to some problems concerning the application I am developing. I have defined _REENTRANT in my makefiles which means that the system header file errno.h switches from a global integer version of errno to a function call extern int *___errno() along the lines of #define errno (*(___errno())). I have furthermore noted that the ___errno() returns the same int pointer for all my RTEMS tasks. I believe this is the problem. Can anyone suggest a fix? Perhaps this is a general problem with the RTEMS port to Solaris 2.5... All information gratefully received... Regards, Khalid. -- Khalid Rafiq Spider Software Limited mailto:khalid@spider.com PS. To see if your RTEMS port to solaris is affected with this problem, try putting a printf("%lx\n", ___errno()); statement in each of your tasks to see if the same address is printed out at run-time. If so, your tasks are sharing the same errno.