If you see an error like the following when compiling, then most likely it’s the errno.h problem:
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [envdir] Error 1
If there is a conf-cc file, then add “–include /path/to/errno.h” to the gcc line. Normally the file is at /usr/include/errno.h.
References:
http://cr.yp.to/docs/unixport.html#errno
it still gives me the same error
Did you make clean and re-make?
Thanks very much. Nice, clean, simple solution. Worked for me with daemontools-0.76 and ucspi-tcp-0.88. This was keeping me from installing djbdns. Much appreciated.
Yes, very usefull. Thanks a lot!
Worked!!!
Thanks!
Very helpful !! thanks guys !
Great This is really helpful
Thanks alot, you saved my ass.
no its not working
again same error
“”Linking ./src/* into ./compile…
Compiling everything in ./compile…
./load envdir unix.a byte.a
/usr/bin/ld: errno: TLS definition in /lib/i386-linux-gnu/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib/i386-linux-gnu/libc.so.6: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [envdir] Error 1”
Did you add the line after trying to compile and failed? If so, please sure make clean is executed before make-ing again.