rtorrent: HandshakeManager::receive_succeeded(...) Unread data won't fit PCB's read buffer.

做個記錄 :)在Marvell 5182 板子運行編譯好的rtorrent時出現以下的錯誤

rtorrent: HandshakeManager::receive_succeeded(...) Unread data won't fit PCB's read buffer.

編譯時環境:

debian 4.0 form arm

gcc 4.1.1

解決方法1:

在rtorrent的官網上有寫到,使用gcc4.1.1編譯會造成問題

gcc-4.1.1: -O2: Causes memory leak, compile with -Os or -O3. (Fixed in libTorrent 0.11.0.)

原先直接./configure後,Makefile內的compile FLAG都是-O2, 解決方法就是改成-O3,所以可以用下列命令進行configure

如下:

./configure CXXFLAGS="-g -O3 -g -DDEBUG -fvisibility=hidden   -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include" CFLAGS="-O3"

解決方法2: 使用 gcc 3.4 來編譯 (recommended)

參考: