- changes for MUSL builds

This commit is contained in:
Dmytro Bogovych 2021-11-14 15:43:50 +00:00
parent c648db062a
commit 2ab0a3c26d
5 changed files with 59 additions and 43 deletions

View File

@ -62,6 +62,7 @@ set (USE_EVS_CODEC OFF CACHE BOOL "Use EVS codec." )
set (USE_OPUS_CODEC OFF CACHE BOOL "Use Opus codec." ) set (USE_OPUS_CODEC OFF CACHE BOOL "Use Opus codec." )
set (USE_PVQA_LIB OFF CACHE BOOL "Build with Sevana PVQA library" ) set (USE_PVQA_LIB OFF CACHE BOOL "Build with Sevana PVQA library" )
set (USE_AQUA_LIB OFF CACHE BOOL "Build with Sevana AQuA library" ) set (USE_AQUA_LIB OFF CACHE BOOL "Build with Sevana AQuA library" )
set (USE_MUSL OFF CACHE BOOL "Build with MUSL library" )
# PIC code by default # PIC code by default
set (CMAKE_POSITION_INDEPENDENT_CODE ON) set (CMAKE_POSITION_INDEPENDENT_CODE ON)
@ -82,10 +83,16 @@ if (CMAKE_SYSTEM MATCHES "Linux*")
add_definitions (-DTARGET_LINUX) add_definitions (-DTARGET_LINUX)
endif() endif()
if (CMAKE_SYSTEM MATCHES "Darwin*") if (CMAKE_SYSTEM MATCHES "Darwin*")
add_definitions (-DTARGET_OSX) add_definitions (-DTARGET_OSX)
endif() endif()
if (USE_MUSL)
add_definitions(-DTARGET_MUSL)
endif()
if (USE_AQUA_LIB) if (USE_AQUA_LIB)
message("Use AQuA library") message("Use AQuA library")
add_definitions( -DUSE_AQUA_LIBRARY ) add_definitions( -DUSE_AQUA_LIBRARY )

View File

@ -34,6 +34,10 @@ set (ICE_STACK_SOURCES ICEAddress.cpp
ICETime.cpp ICETime.cpp
ICETransactionList.cpp) ICETransactionList.cpp)
if (TARGET_MUSL)
add_definitions(-DTARGET_MUSL)
endif()
add_definitions(-DUSE_NATIVE_SMARTPTR -D_WINSOCK_DEPRECATED_NO_WARNINGS) add_definitions(-DUSE_NATIVE_SMARTPTR -D_WINSOCK_DEPRECATED_NO_WARNINGS)
add_library(ice_stack ${ICE_STACK_SOURCES}) add_library(ice_stack ${ICE_STACK_SOURCES})

View File

@ -24,6 +24,7 @@
# include <ws2tcpip.h> # include <ws2tcpip.h>
#else #else
# include <netinet/in.h> # include <netinet/in.h>
# if /*defined(TARGET_LINUX) || */ defined(TARGET_ANDROID) # if /*defined(TARGET_LINUX) || */ defined(TARGET_ANDROID)
# include <linux/in6.h> # include <linux/in6.h>
# endif # endif
@ -467,7 +468,7 @@ unsigned char* NetworkAddress::ipBytes() const
return (unsigned char*)mAddr6.sin6_addr.u.Byte; return (unsigned char*)mAddr6.sin6_addr.u.Byte;
#elif defined(TARGET_OSX) || defined(TARGET_IOS) #elif defined(TARGET_OSX) || defined(TARGET_IOS)
return (unsigned char*)&mAddr6.sin6_addr.__u6_addr.__u6_addr8; return (unsigned char*)&mAddr6.sin6_addr.__u6_addr.__u6_addr8;
#elif defined(TARGET_OPENWRT) #elif defined(TARGET_OPENWRT) || defined(TARGET_MUSL)
return (unsigned char*)&mAddr6.sin6_addr.__in6_union.__s6_addr; return (unsigned char*)&mAddr6.sin6_addr.__in6_union.__s6_addr;
#elif defined(TARGET_LINUX) #elif defined(TARGET_LINUX)
return (unsigned char*)&mAddr6.sin6_addr.__in6_u.__u6_addr8; return (unsigned char*)&mAddr6.sin6_addr.__in6_u.__u6_addr8;

View File

@ -443,7 +443,7 @@ void NetworkHelper::NetworkToHost(const in6_addr& addr6, uint32_t* output)
output[i] = ntohl(((uint32_t*)addr6.u.Byte[0])[i]); output[i] = ntohl(((uint32_t*)addr6.u.Byte[0])[i]);
#elif defined(TARGET_IOS) || defined(TARGET_OSX) #elif defined(TARGET_IOS) || defined(TARGET_OSX)
output[i] = ntohl(addr6.__u6_addr.__u6_addr32[i]); output[i] = ntohl(addr6.__u6_addr.__u6_addr32[i]);
#elif defined(TARGET_OPENWRT) #elif defined(TARGET_OPENWRT) || defined(TARGET_MUSL)
output[i] = ntohl(addr6.__in6_union.__s6_addr32[i]); output[i] = ntohl(addr6.__in6_union.__s6_addr32[i]);
#elif defined(TARGET_LINUX) #elif defined(TARGET_LINUX)
output[i] = ntohl(addr6.__in6_u.__u6_addr32[i]); output[i] = ntohl(addr6.__in6_u.__u6_addr32[i]);
@ -459,7 +459,7 @@ void NetworkHelper::HostToNetwork(const uint32_t* input, in6_addr& output)
((uint32_t*)&output.u.Byte[0])[i] = htonl(input[i]); ((uint32_t*)&output.u.Byte[0])[i] = htonl(input[i]);
#elif defined(TARGET_OSX) || defined(TARGET_IOS) #elif defined(TARGET_OSX) || defined(TARGET_IOS)
output.__u6_addr.__u6_addr32[i] = htonl(input[i]); output.__u6_addr.__u6_addr32[i] = htonl(input[i]);
#elif defined(TARGET_OPENWRT) #elif defined(TARGET_OPENWRT) || defined(TARGET_MUSL)
output.__in6_union.__s6_addr32[i] = htonl(input[i]); output.__in6_union.__s6_addr32[i] = htonl(input[i]);
#elif defined(TARGET_LINUX) #elif defined(TARGET_LINUX)
output.__in6_u.__u6_addr32[i] = htonl(input[i]); output.__in6_u.__u6_addr32[i] = htonl(input[i]);

View File

@ -70,7 +70,11 @@ RecursiveMutex::RecursiveMutex()
#ifndef WIN32 #ifndef WIN32
int rc = pthread_mutexattr_init(&mMutexAttr); int rc = pthread_mutexattr_init(&mMutexAttr);
#if defined(__linux__) #if defined(__linux__)
#if defined(PTHREAD_MUTEX_RECURSIVE_NP)
pthread_mutexattr_settype(&mMutexAttr, PTHREAD_MUTEX_RECURSIVE_NP); pthread_mutexattr_settype(&mMutexAttr, PTHREAD_MUTEX_RECURSIVE_NP);
#else
pthread_mutexattr_settype(&mMutexAttr, PTHREAD_MUTEX_RECURSIVE);
#endif
#else #else
pthread_mutexattr_settype(&mMutexAttr, PTHREAD_MUTEX_RECURSIVE); pthread_mutexattr_settype(&mMutexAttr, PTHREAD_MUTEX_RECURSIVE);
#endif #endif