From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 Description of problem: This error messages keeps showing up, again. I know this was fixed for RH 9 so at least it wasn't going to STDOUT (via bug #97814), but I'm curious why it is now showing up in Fedora Core 1 and Fedora Core 2. Version-Release number of selected component (if applicable): glibc-2.3.2-101.4 How reproducible: Always Steps to Reproduce: 1. run any binary compiled on a system lower than RH 9 2. 3. Actual Results: "Incorrectly built Binary which accesses errno or h_errno needs to be fixed" appears on STDOUT instead of STDERR Additional info:
Works just fine for me: On FC1: rpm -q glibc; strace -o e.log ./e; grep writev e.log glibc-2.3.2-101.4 Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed. writev(2, [{"Incorrectly built binary which a"..., 86}], 1) = 86 On FC2: rpm -q glibc; strace -o e.log ./e; grep writev e.log glibc-2.3.3-27 Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed. writev(2, [{"Incorrectly built binary which a"..., 86}], 1) = 86
Is there any possible reason that I could be seeing this? I have about 240 machines, and all of them are reporting the error to STDOUT.
No. There is just one place where /lib/ld-linux.so.2 reports this and it puts it on fd 2, not fd 1. rpm -V your glibc, md5sum /lib/ld-linux.so.2, that's all I can suggest to you.
I've the same problem with FC4.
Sorry for my small reply. I've downlaoded mess822-0.58-0.i386.rpm. When I try to execute I can see: Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed. With RH9 it works correctly. I supposed that it's better try to recompile the source, but, when I try, it doesn't works: #make .... ./load iftocc mess822.a getln.a strerr.a substdio.a \ stralloc.a alloc.a error.a env.a str.a case.a fs.a open.a /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in strerr.a(strerr_sys.o) /lib/libc.so.6: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [iftocc] Error 1
Buggy software simply has to be fixed, there is no other way around it. errno is allowed to be a macro by POSIX, and it is a macro in glibc for many years now. So declaring errno yourself rather than including <errno.h> can't work and needs to be fixed.