0

Hi I am trying to install tcpserver from

http://cr.yp.to/ucspi-tcp/install.html

but when in run make command i get error

./compile uint32_unpack.c
./makelib byte.a byte_chr.o byte_copy.o byte_cr.o \
        byte_diff.o byte_rchr.o byte_zero.o case_diffb.o \
        case_diffs.o fmt_ulong.o ip4_fmt.o ip4_scan.o scan_ulong.o \
        str_chr.o str_diff.o str_len.o str_start.o uint16_pack.o \
        uint16_unpack.o uint32_pack.o uint32_unpack.o
( ( ./compile trylsock.c && \
        ./load trylsock -lsocket -lnsl ) >/dev/null 2>&1 \
        && echo -lsocket -lnsl || exit 0 ) > socket.lib
rm -f trylsock.o trylsock
./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 /lib64/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [tcpserver] Error 1
[root@DS-899 ucspi-tcp-0.88]# make setup check
./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 /lib64/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [tcpserver] Error 1
[root@DS-899 ucspi-tcp-0.88]# sudo make
./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 /lib64/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [tcpserver] Error 1

I dont understand whats wrong and what to do?

0

This is an old and very well-known problem. Daniel J. Bernstein's programs explicitly declare a global integer named errno. This is not actually portable or conformant with the requirements of the Standard C language, even the 1989 standard, and results in things like this or worse.

Third-party patches to fix this for all of his softwares were widely published around the turn of the century, not long after the softwares themselves were published (because people hit this problem almost straightaway).

These patches were incorporated by the people who packaged up these tools for various operating systems. Similarly, I incorporated such corrections into the djbwares package right from the start.

Further reading

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.