Fix build: embedded Tor linking, UPnP guard, LogPrintf, socket types
- CMakeLists: add --start-group linking for libtor.a and its deps (libevent, openssl, zlib, lzma, zstd) with --allow-multiple-definition for mixed static/dynamic OpenSSL on Windows - CMakeLists: define USE_UPNP=0 only when USE_UPNP is off (not via #ifdef-incompatible define) - net.cpp: guard USE_UPNP reference with #ifdef for builds without UPnP - rpcwallet.cpp: replace nonexistent LogPrintf with printf - tor_embedded.cpp: fix SOCKET type mismatch on Windows (SOCKET vs int) - .gitignore: add testnet-sync/ directory Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,6 +52,7 @@ blocks/
|
||||
.*.json
|
||||
temp/
|
||||
tmp/
|
||||
testnet-sync/
|
||||
|
||||
# Private/Local
|
||||
triangles.conf
|
||||
|
||||
+17
-4
@@ -148,10 +148,23 @@ if(USE_TOR_EMBEDDED)
|
||||
target_compile_definitions(triangles_common PUBLIC ENABLE_TOR_EMBEDDED)
|
||||
target_include_directories(triangles_common PUBLIC "${TOR_SOURCE_ROOT}/src/feature/api")
|
||||
target_link_directories(triangles_common PUBLIC "${TOR_SOURCE_ROOT}")
|
||||
if(UNIX)
|
||||
target_link_libraries(triangles_common PUBLIC -Wl,--start-group -ltor -Wl,--end-group lzma zstd)
|
||||
else()
|
||||
target_link_libraries(triangles_common PUBLIC tor lzma zstd)
|
||||
# libtor.a has circular deps with libevent/openssl/zlib
|
||||
# OpenSSL and zlib already linked via imported targets above, so only add
|
||||
# libevent and compression libs that libtor needs but aren't yet linked.
|
||||
# --start-group / --end-group resolves circular references between libtor
|
||||
# and its dependencies.
|
||||
# Use --allow-multiple-definition because libtor.a may pull in static
|
||||
# OpenSSL objects that duplicate the DLL import lib already linked above.
|
||||
target_link_libraries(triangles_common PUBLIC
|
||||
-Wl,--allow-multiple-definition
|
||||
-Wl,--start-group
|
||||
-ltor
|
||||
-levent -levent_core -levent_extra -levent_openssl
|
||||
-lssl -lcrypto -lz -llzma -lzstd
|
||||
-Wl,--end-group
|
||||
)
|
||||
if(WIN32)
|
||||
target_link_libraries(triangles_common PUBLIC iphlpapi shlwapi crypt32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -165,8 +165,13 @@ bool CTorEmbedded::Start(int socks, int hsPort, bool enableHiddenService)
|
||||
}
|
||||
|
||||
// Quick port check
|
||||
#ifdef WIN32
|
||||
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock != INVALID_SOCKET) {
|
||||
#else
|
||||
int sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock >= 0) {
|
||||
#endif
|
||||
struct sockaddr_in addr;
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
addr.sin_family = AF_INET;
|
||||
|
||||
Reference in New Issue
Block a user