ucspi-tcp erro de instalação do tcpserver

0

Oi estou tentando instalar o tcpserver

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

mas quando em execução, faço o comando 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

Eu não entendo o que está errado e o que fazer?

    
por Al-Alamin 03.12.2017 / 07:09

1 resposta

0

Este é um problema antigo e muito conhecido. Os programas de Daniel J. Bernstein declaram explicitamente um inteiro global chamado errno . Isso não é realmente portátil ou está em conformidade com os requisitos da linguagem Standard C, mesmo com o padrão de 1989, e resulta em coisas como esta ou pior.

Patches de terceiros para consertar isso em todos os seus softwares foram amplamente divulgados na virada do século, não muito depois de os softwares terem sido publicados (porque as pessoas atingem esse problema quase imediatamente).

Esses patches foram incorporados pelas pessoas que empacotaram essas ferramentas para vários sistemas operacionais. Da mesma forma, eu incorporei essas correções no pacote djbwares desde o início.

Leitura adicional

por 03.12.2017 / 12:59

Tags