errno issue with cross gcc using newlib
Anurag Sharma
anurag@proximity.com.au
Wed Oct 16 21:05:00 GMT 2002
Hi All,
I have come across a strange behaviour using gcc cross compiler (host:
linux, target: cygwin). I am using the cygwin header files and lib files
while making the compiler. (Cygwin uses newlib instaed of libc).
Consider this short code:
int fd = ::open("/tmp/errnotest", O_RDONLY | O_BINARY);
if (fd == -1) {
std::cerr << "open failed, errno=" << errno << ", strerror=" <<
strerror(errno) << std::endl;
std::cerr << "open failed, errno=" << errno << ", strerror=" <<
strerror(errno) << std::endl;
}
I have compiled this code using a cross gcc build on host linux using
target cygwin.
If I build the cross compiler by providing --enable-threads=single option
in the configure stage, following is the output :
open failed, errno=2, strerror=No such file or directory
open failed, errno=2, strerror=No such file or directory
This is of course expected.
Hoewever if I build the cross compiler by providing --enable-threads=posix
option in the configure stage, the output is as follows :
open failed, errno=2, strerror=No such file or directory
open failed, errno=0, strerror=No error
That is , after the first call to errno, it is reset!!
Has anyone else experiened this before? Can anyone please help find out
what exactly is going wrong?
Regards,
Anurag
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list