mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-12 18:20:26 +01:00
* fix(platform): Fixes to compile with emscripten 3.1.5 on Ubuntu 22.04 #2707 * enh(Platform): add test check with emscripten on Linux
This commit is contained in:
parent
e868ecb247
commit
35e1490b26
18
.github/workflows/ci.yml
vendored
18
.github/workflows/ci.yml
vendored
@ -123,6 +123,24 @@ jobs:
|
|||||||
PWD=`pwd`
|
PWD=`pwd`
|
||||||
ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)"
|
ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)"
|
||||||
|
|
||||||
|
linux-emscripten-cmake:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- run: sudo apt -y update && sudo apt -y install cmake ninja-build emscripten
|
||||||
|
- run: emcmake cmake -H. -B cmake-build -DENABLE_ACTIVERECORD_COMPILER=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=off && emmake cmake --build cmake-build --target all -j4
|
||||||
|
# TODO: How to run unit tests in emscripten?
|
||||||
|
# - uses: ./.github/actions/retry-action
|
||||||
|
# with:
|
||||||
|
# timeout_minutes: 90
|
||||||
|
# max_attempts: 3
|
||||||
|
# retry_on: any
|
||||||
|
# command: >-
|
||||||
|
# cd cmake-build &&
|
||||||
|
# sudo -s
|
||||||
|
# PWD=`pwd`
|
||||||
|
# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)"
|
||||||
|
|
||||||
linux-gcc-make-cross-armhf:
|
linux-gcc-make-cross-armhf:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
|
@ -61,13 +61,16 @@
|
|||||||
#elif defined(__NACL__)
|
#elif defined(__NACL__)
|
||||||
#define POCO_OS_FAMILY_UNIX 1
|
#define POCO_OS_FAMILY_UNIX 1
|
||||||
#define POCO_OS POCO_OS_NACL
|
#define POCO_OS POCO_OS_NACL
|
||||||
#elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__) || defined(EMSCRIPTEN)
|
#elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__) || defined(__EMSCRIPTEN__)
|
||||||
#define POCO_OS_FAMILY_UNIX 1
|
#define POCO_OS_FAMILY_UNIX 1
|
||||||
#if defined(__ANDROID__)
|
#if defined(__ANDROID__)
|
||||||
#define POCO_OS POCO_OS_ANDROID
|
#define POCO_OS POCO_OS_ANDROID
|
||||||
#else
|
#else
|
||||||
#define POCO_OS POCO_OS_LINUX
|
#define POCO_OS POCO_OS_LINUX
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(__EMSCRIPTEN__)
|
||||||
|
#define POCO_EMSCRIPTEN
|
||||||
|
#endif
|
||||||
#elif defined(__APPLE__) || defined(__TOS_MACOS__)
|
#elif defined(__APPLE__) || defined(__TOS_MACOS__)
|
||||||
#define POCO_OS_FAMILY_UNIX 1
|
#define POCO_OS_FAMILY_UNIX 1
|
||||||
#define POCO_OS_FAMILY_BSD 1
|
#define POCO_OS_FAMILY_BSD 1
|
||||||
@ -142,7 +145,7 @@
|
|||||||
#if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
|
#if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
|
||||||
#define POCO_ARCH POCO_ARCH_ALPHA
|
#define POCO_ARCH POCO_ARCH_ALPHA
|
||||||
#define POCO_ARCH_LITTLE_ENDIAN 1
|
#define POCO_ARCH_LITTLE_ENDIAN 1
|
||||||
#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(EMSCRIPTEN)
|
#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(POCO_EMSCRIPTEN)
|
||||||
#define POCO_ARCH POCO_ARCH_IA32
|
#define POCO_ARCH POCO_ARCH_IA32
|
||||||
#define POCO_ARCH_LITTLE_ENDIAN 1
|
#define POCO_ARCH_LITTLE_ENDIAN 1
|
||||||
#elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
|
#elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
|
||||||
|
@ -364,7 +364,9 @@ ThreadImpl::TIDImpl ThreadImpl::currentTidImpl()
|
|||||||
|
|
||||||
long ThreadImpl::currentOsTidImpl()
|
long ThreadImpl::currentOsTidImpl()
|
||||||
{
|
{
|
||||||
#if POCO_OS == POCO_OS_LINUX
|
#if defined(POCO_EMSCRIPTEN)
|
||||||
|
return ::pthread_self();
|
||||||
|
#elif POCO_OS == POCO_OS_LINUX
|
||||||
return ::syscall(SYS_gettid);
|
return ::syscall(SYS_gettid);
|
||||||
#elif POCO_OS == POCO_OS_MAC_OS_X
|
#elif POCO_OS == POCO_OS_MAC_OS_X
|
||||||
return ::pthread_mach_thread_np(::pthread_self());
|
return ::pthread_mach_thread_np(::pthread_self());
|
||||||
|
@ -34,7 +34,7 @@ class MongoDB_API MessageHeader
|
|||||||
/// MongoDB request or response message.
|
/// MongoDB request or response message.
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static const unsigned int MSG_HEADER_SIZE = 16;
|
static constexpr Int32 MSG_HEADER_SIZE = 16;
|
||||||
|
|
||||||
enum OpCode
|
enum OpCode
|
||||||
{
|
{
|
||||||
|
@ -1512,7 +1512,7 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
|||||||
#include <ifaddrs.h>
|
#include <ifaddrs.h>
|
||||||
#endif
|
#endif
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
#ifndef POCO_NO_LINUX_IF_PACKET_H
|
#if !defined(POCO_NO_LINUX_IF_PACKET_H) && !defined(POCO_EMSCRIPTEN)
|
||||||
#include <linux/if_packet.h>
|
#include <linux/if_packet.h>
|
||||||
#endif
|
#endif
|
||||||
#include <net/if_arp.h>
|
#include <net/if_arp.h>
|
||||||
@ -1543,7 +1543,7 @@ static NetworkInterface::Type fromNative(unsigned arphrd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if POCO_OS != POCO_OS_ANDROID
|
#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN)
|
||||||
|
|
||||||
void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl)
|
void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl)
|
||||||
{
|
{
|
||||||
@ -1552,7 +1552,7 @@ void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl)
|
|||||||
impl.setAdapterName(iface->ifa_name);
|
impl.setAdapterName(iface->ifa_name);
|
||||||
impl.setPhyParams();
|
impl.setPhyParams();
|
||||||
|
|
||||||
#ifndef POCO_NO_LINUX_IF_PACKET_H
|
#if !defined(POCO_NO_LINUX_IF_PACKET_H)
|
||||||
if (iface->ifa_addr->sa_family == AF_PACKET)
|
if (iface->ifa_addr->sa_family == AF_PACKET)
|
||||||
{
|
{
|
||||||
struct sockaddr_ll* sdl = (struct sockaddr_ll*) iface->ifa_addr;
|
struct sockaddr_ll* sdl = (struct sockaddr_ll*) iface->ifa_addr;
|
||||||
@ -1602,7 +1602,7 @@ void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl)
|
|||||||
|
|
||||||
NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly)
|
||||||
{
|
{
|
||||||
#if POCO_OS != POCO_OS_ANDROID
|
#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN)
|
||||||
FastMutex::ScopedLock lock(_mutex);
|
FastMutex::ScopedLock lock(_mutex);
|
||||||
Map result;
|
Map result;
|
||||||
unsigned ifIndex = 0;
|
unsigned ifIndex = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user