Compiling ucspi-tcp version 0.88 on Red Hat ES 5.5 fails with the following error:
./load tcpserver rules.o remoteinfo.o timeoutconn.o cdb.a \ dns.a time.a unix.a byte.a `cat socket.lib` /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o /lib/libc.so.6: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [tcpserver] Error 1
The problem is the errno definition in error.h. The problem can be fixed with the following patch:
--- ucspi-tcp-0.88/error.h 2000-03-18 16:18:42.000000000 +0100 +++ ucspi-tcp-0.88.patched/error.h 2011-12-16 09:29:15.000000000 +0100 @@ -1,7 +1,8 @@ #ifndef ERROR_H #define ERROR_H -extern int errno; +/* extern int errno; */ +#includeextern int error_intr; extern int error_nomem;