こんにちは私はtcpserverをインストールしようとしています
http://cr.yp.to/ucspi-tcp/install.html
しかし、makeコマンドを実行するとエラーが発生します。
./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
何が問題なのか理解できません。どうすればいいですか?
ベストアンサー1
これは古くてよく知られている質問です。 Daniel J. Bernsteinのプログラムは、というグローバル定数を明示的に宣言しますerrno
。これは実際には移植性がなく、標準C(1989標準)の要件も遵守せず、そのようなまたはより悪い結果をもたらす可能性があります。
世紀が変わるにつれてソフトウェア自体がリリースされたばかりで、彼のすべてのソフトウェアを修正したサードパーティのパッチが広くリリースされました。
これらのパッチは、さまざまなオペレーティングシステム用にこれらのツールをパッケージ化する人々によってマージされます。繰り返しますが、私は最初からこれらの修正をdjbwaresパッケージに統合しました。
追加読書
- ジョナサンデボインポラード(2016)。 ソフトウェア統合(Daniel J. Bernstein)。ソフトウェア。
- ジョナサンデボインポラード(2003)。 」最新バージョンのGNU Cライブラリではビルドできません。」。 Dan Bernsteinのdjbdnsに関する既知の問題。よく与えられる答えです。
- ジョナサンデボインポラード(2003)。 」最新バージョンのGNU Cライブラリではビルドできません。」。 Dan Bernsteinのキューメールに関する既知の問題。よく与えられる答えです。
- 」DJB用ユーティリティ:ucspi-tcp-0.88」。 最初からLinuxを超えて:バージョン1.0。 linuxfromscratch.org.
- ステファンクラ。 ucspi-tcp-0.88 インストール手順。 bytereef.org.
- https://sources.debian.org/src/ucspi-tcp/1:0.88-3.1/debian/diff/