Freitag, 16. Dezember 2011

Compile ucspi-tcp-0.88 on Red Hat Enterprise Linux Client release 5.5 (Tikanga)

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; */
+#include 

 extern int error_intr;
 extern int error_nomem;