diff --git a/include/platform.h b/include/platform.h index 67b54846..d4854a09 100644 --- a/include/platform.h +++ b/include/platform.h @@ -38,7 +38,7 @@ #include #endif -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__HAIKU__) #define lseek64 lseek #endif diff --git a/lib/poco/Foundation/CMakeLists.txt b/lib/poco/Foundation/CMakeLists.txt index 6b276bef..1a95b71d 100644 --- a/lib/poco/Foundation/CMakeLists.txt +++ b/lib/poco/Foundation/CMakeLists.txt @@ -159,6 +159,9 @@ else() elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "AIX") target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_POLL) target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Haiku") + target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_POLL) + target_link_libraries(Foundation PUBLIC root bsd network) else() target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_EPOLL) target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt) diff --git a/lib/poco/Foundation/include/Poco/NamedEvent_UNIX.h b/lib/poco/Foundation/include/Poco/NamedEvent_UNIX.h index e593790d..bf5d47d8 100644 --- a/lib/poco/Foundation/include/Poco/NamedEvent_UNIX.h +++ b/lib/poco/Foundation/include/Poco/NamedEvent_UNIX.h @@ -19,7 +19,7 @@ #include "Poco/Foundation.h" -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) #include #endif @@ -39,7 +39,7 @@ private: std::string getFileName(); std::string _name; -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) sem_t* _sem; #else int _semid; // semaphore id diff --git a/lib/poco/Foundation/include/Poco/NamedMutex_UNIX.h b/lib/poco/Foundation/include/Poco/NamedMutex_UNIX.h index da77a32e..1e7f8adb 100644 --- a/lib/poco/Foundation/include/Poco/NamedMutex_UNIX.h +++ b/lib/poco/Foundation/include/Poco/NamedMutex_UNIX.h @@ -21,7 +21,7 @@ #include "Poco/Foundation.h" #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) #include #endif @@ -42,7 +42,7 @@ private: std::string getFileName(); std::string _name; -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) sem_t* _sem; #else int _semid; // semaphore id diff --git a/lib/poco/Foundation/include/Poco/Platform.h b/lib/poco/Foundation/include/Poco/Platform.h index 799db417..84fe3a19 100644 --- a/lib/poco/Foundation/include/Poco/Platform.h +++ b/lib/poco/Foundation/include/Poco/Platform.h @@ -39,6 +39,7 @@ #define POCO_OS_CYGWIN 0x000d #define POCO_OS_NACL 0x000e #define POCO_OS_ANDROID 0x000f +#define POCO_OS_HAIKU 0x0010 #define POCO_OS_UNKNOWN_UNIX 0x00ff #define POCO_OS_WINDOWS_NT 0x1001 #define POCO_OS_WINDOWS_CE 0x1011 @@ -89,6 +90,9 @@ #elif defined(__QNX__) #define POCO_OS_FAMILY_UNIX 1 #define POCO_OS POCO_OS_QNX +#elif defined(__HAIKU__) + #define POCO_OS_FAMILY_UNIX 1 + #define POCO_OS POCO_OS_HAIKU #elif defined(__CYGWIN__) #define POCO_OS_FAMILY_UNIX 1 #define POCO_OS POCO_OS_CYGWIN diff --git a/lib/poco/Foundation/include/Poco/Types.h b/lib/poco/Foundation/include/Poco/Types.h index 6489a6f9..e8f30de5 100644 --- a/lib/poco/Foundation/include/Poco/Types.h +++ b/lib/poco/Foundation/include/Poco/Types.h @@ -49,7 +49,7 @@ using UIntPtr = std::uintptr_t; #if defined(__LP64__) #define POCO_PTR_IS_64_BIT 1 #define POCO_LONG_IS_64_BIT 1 - #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID + #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_HAIKU #define POCO_INT64_IS_LONG 1 #endif #endif diff --git a/lib/poco/Foundation/src/Environment_UNIX.cpp b/lib/poco/Foundation/src/Environment_UNIX.cpp index b7e57e43..95f027e0 100644 --- a/lib/poco/Foundation/src/Environment_UNIX.cpp +++ b/lib/poco/Foundation/src/Environment_UNIX.cpp @@ -294,7 +294,9 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) #include #include #include +#ifndef __HAIKU__ #include +#endif #include @@ -310,7 +312,7 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) struct hostent* pHost = gethostbyname(name); if (!pHost) return; - +#ifndef __HAIKU__ int s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if (s == -1) return; @@ -323,6 +325,7 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) close(s); if (rc < 0) return; std::memcpy(&id, ar.arp_ha.sa_data, sizeof(id)); +#endif } diff --git a/lib/poco/Foundation/src/File_UNIX.cpp b/lib/poco/Foundation/src/File_UNIX.cpp index 4cccb623..15193959 100644 --- a/lib/poco/Foundation/src/File_UNIX.cpp +++ b/lib/poco/Foundation/src/File_UNIX.cpp @@ -23,7 +23,7 @@ #if defined(POCO_OS_FAMILY_BSD) #include #include -#elif (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) +#elif (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_HAIKU) #include #else #include @@ -35,7 +35,7 @@ #include #include -#if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) +#if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_HAIKU) #define STATFSFN statvfs #define STATFSSTRUCT statvfs #else diff --git a/lib/poco/Foundation/src/NamedEvent_UNIX.cpp b/lib/poco/Foundation/src/NamedEvent_UNIX.cpp index 978e6e0b..8cb16d9d 100644 --- a/lib/poco/Foundation/src/NamedEvent_UNIX.cpp +++ b/lib/poco/Foundation/src/NamedEvent_UNIX.cpp @@ -18,7 +18,7 @@ #include #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) #include #else #include @@ -31,7 +31,7 @@ namespace Poco { -#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || (POCO_OS == POCO_OS_CYGWIN) || (POCO_OS == POCO_OS_FREE_BSD) +#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || (POCO_OS == POCO_OS_CYGWIN) || (POCO_OS == POCO_OS_FREE_BSD) || (POCO_OS == POCO_OS_HAIKU) union semun { int val; @@ -53,7 +53,7 @@ NamedEventImpl::NamedEventImpl(const std::string& name): _name(name) { std::string fileName = getFileName(); -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) _sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 0); if ((long) _sem == (long) SEM_FAILED) throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name); @@ -84,7 +84,7 @@ NamedEventImpl::NamedEventImpl(const std::string& name): NamedEventImpl::~NamedEventImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) sem_close(_sem); #endif } @@ -92,7 +92,7 @@ NamedEventImpl::~NamedEventImpl() void NamedEventImpl::setImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) if (sem_post(_sem) != 0) throw SystemException("cannot set named event", _name); #else @@ -108,7 +108,7 @@ void NamedEventImpl::setImpl() void NamedEventImpl::waitImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) int err; do { diff --git a/lib/poco/Foundation/src/NamedMutex_UNIX.cpp b/lib/poco/Foundation/src/NamedMutex_UNIX.cpp index 6cfa1369..15d68b18 100644 --- a/lib/poco/Foundation/src/NamedMutex_UNIX.cpp +++ b/lib/poco/Foundation/src/NamedMutex_UNIX.cpp @@ -18,7 +18,7 @@ #include #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX) || defined(__HAIKU__) #include #else #include @@ -31,7 +31,7 @@ namespace Poco { -#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || (POCO_OS == POCO_OS_CYGWIN) || (POCO_OS == POCO_OS_FREE_BSD) +#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || (POCO_OS == POCO_OS_CYGWIN) || (POCO_OS == POCO_OS_FREE_BSD) || (POCO_OS == POCO_OS_HAIKU) union semun { int val; @@ -53,7 +53,7 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name): _name(name) { std::string fileName = getFileName(); -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) _sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 1); if ((long) _sem == (long) SEM_FAILED) throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name); @@ -89,7 +89,7 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name): NamedMutexImpl::~NamedMutexImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) sem_close(_sem); #else if (_owned) semctl(_semid, 0, IPC_RMID, 0); @@ -99,7 +99,7 @@ NamedMutexImpl::~NamedMutexImpl() void NamedMutexImpl::lockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) int err; do { @@ -125,7 +125,7 @@ void NamedMutexImpl::lockImpl() bool NamedMutexImpl::tryLockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) return sem_trywait(_sem) == 0; #else struct sembuf op; @@ -139,7 +139,7 @@ bool NamedMutexImpl::tryLockImpl() void NamedMutexImpl::unlockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__HAIKU__) if (sem_post(_sem) != 0) throw SystemException("cannot unlock named mutex", _name); #else diff --git a/platform/linux/platform.cpp b/platform/linux/platform.cpp index c94c7db7..ca29a6f2 100644 --- a/platform/linux/platform.cpp +++ b/platform/linux/platform.cpp @@ -22,6 +22,10 @@ #include #include #include +#ifdef __HAIKU__ +#include +#include +#endif #include #ifdef BOXEDWINE_BINARY_TRANSLATOR #include "../../source/emulation/cpu/binaryTranslation/btCpu.h" @@ -70,7 +74,9 @@ void Platform::listNodes(const std::string& nativePath, std::vectord_name, ".") && strcmp(dptr->d_name, "..")) { - results.push_back(ListNodeResult(dptr->d_name, (dptr->d_type & DT_DIR)!=0)); + struct stat sp; + stat(dptr->d_name, &sp); + results.push_back(ListNodeResult(dptr->d_name, S_ISDIR(sp.st_mode))); } } closedir(dp); @@ -143,7 +149,11 @@ const char* Platform::getResourceFilePath(const std::string& location) { } void Platform::openFileLocation(const std::string& location) { +#ifdef __HAIKU__ + std::string cmd = "open \""; +#else std::string cmd = "xdg-open \""; +#endif cmd+=location; cmd+="\""; system(cmd.c_str()); @@ -174,6 +184,7 @@ void Platform::setCpuAffinityForThread(KThread* thread, U32 count) { } #else void Platform::setCpuAffinityForThread(KThread* thread, U32 count) { +#ifndef __HAIKU__ if (KSystem::cpuAffinityCountForApp) { U32 cores = Platform::getCpuCount(); if (cores <= 1) { @@ -194,6 +205,7 @@ void Platform::setCpuAffinityForThread(KThread* thread, U32 count) { sched_setaffinity((pid_t)((BtCPU*)thread->cpu)->nativeHandle, sizeof(cpu_set_t), &mask); } +#endif } #endif #endif @@ -201,12 +213,14 @@ void Platform::setCpuAffinityForThread(KThread* thread, U32 count) { #ifdef BOXEDWINE_X64 #include bool platformHasBMI2() { +#ifndef __HAIKU__ int regs[4]; __cpuid_count(7, 0, regs[0], regs[1], regs[2], regs[3]); if (regs[1] & (1 << 8)) { return true; } +#endif return false; } #endif diff --git a/platform/linux/platformThreads-x64.cpp b/platform/linux/platformThreads-x64.cpp index c20bc478..be7147ba 100644 --- a/platform/linux/platformThreads-x64.cpp +++ b/platform/linux/platformThreads-x64.cpp @@ -107,6 +107,7 @@ union CAST_FPU { #define CONTEXT_FPU_REG_7_HIGH(context) ((S16*)&context->uc_mcontext.fpregs->_st[7].exponent) #endif +#ifndef __HAIKU__ #include void syncFromException(BtCPU* cpu, ucontext_t* context, bool includeFPU) { @@ -267,6 +268,7 @@ void syncToException(BtCPU* cpu, ucontext_t* context, bool includeFPU) { } } } +#endif class InException { public: @@ -282,6 +284,7 @@ U32 exceptionCount; // this will quickly store the info then exit to signalHandler() to perform the logic there void platformHandler(int sig, siginfo_t* info, void* vcontext) { +#ifndef __HAIKU__ exceptionCount++; KThread* currentThread = KThread::currentThread(); if (!currentThread) { @@ -315,8 +318,9 @@ void platformHandler(int sig, siginfo_t* info, void* vcontext) { } } context->CONTEXT_RIP = (U64)cpu->thread->process->runSignalAddress; +#endif } - +#ifndef __HAIKU__ int getFPUCode(int code) { switch (code) { case FPE_INTDIV: return K_FPE_INTDIV; @@ -329,8 +333,10 @@ int getFPUCode(int code) { default: klog("getFPUCode unhandled code %d", code); return 0; } } +#endif void signalHandler() { +#ifndef __HAIKU__ BOXEDWINE_CRITICAL_SECTION; KThread* currentThread = KThread::currentThread(); x64CPU* cpu = (x64CPU*)currentThread->cpu; @@ -391,6 +397,7 @@ void signalHandler() { return; } kpanic("unhandled exception %d", cpu->exceptionSigNo); +#endif } #endif diff --git a/project/linux/build.sh b/project/linux/build.sh old mode 100644 new mode 100755 index 28ad02f5..e24008f0 --- a/project/linux/build.sh +++ b/project/linux/build.sh @@ -1,4 +1,4 @@ #!/bin/bash mkdir -p bin sh buildPocoLib.sh -gcc -std=c++17 -O2 -Wall -Wno-delete-incomplete -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -I../../include -I../../lib/poco/Net/include -I../../lib/poco/Crypto/include -I../../lib/poco/Util/include -I../../lib/poco/Foundation/include -I../../lib/poco/NetSSL_OpenSSL/include -I../../lib/glew/include -I../../lib/imgui ../../lib/imgui/imgui.cpp ../../lib/pugixml/src/*.cpp ../../lib/imgui/imgui_draw.cpp ../../lib/imgui/imgui_widgets.cpp ../../lib/imgui/examples/imgui_impl_opengl2.cpp ../../lib/imgui/examples/imgui_impl_sdl.cpp ../../lib/imgui/addon/imguitinyfiledialogs.cpp ../../source/sdl/*.cpp ../../source/sdl/singleThreaded/*.cpp ../../lib/glew/src/glew.cpp ../../source/ui/*.cpp ../../source/ui/controls/*.cpp ../../source/ui/data/*.cpp ../../source/ui/opengl/*.cpp ../../source/ui/utils/*.cpp ../../platform/sdl/*.cpp ../../platform/linux/*.cpp ../../source/emulation/cpu/*.cpp ../../source/emulation/cpu/common/*.cpp ../../source/emulation/cpu/normal/*.cpp ../../source/emulation/softmmu/*.cpp ../../source/io/*.cpp ../../source/kernel/*.cpp ../../source/kernel/devs/*.cpp ../../source/kernel/proc/*.cpp ../../source/kernel/sys/*.cpp ../../source/kernel/loader/*.cpp ../../source/util/*.cpp ../../source/opengl/sdl/*.cpp ../../source/opengl/*.cpp -o bin/boxedwine -L./linux_build/lib -lPocoNetSSL -lPocoNet -lPocoCrypto -lPocoUtil -lPocoFoundation -lssl -lcrypto -lpthread -lm -lz -lminizip -DBOXEDWINE_RECORDER -DBOXEDWINE_ZLIB -DBOXEDWINE_HAS_SETJMP -DSDL2=1 "-DGLH=" -DBOXEDWINE_OPENGL_SDL `sdl2-config --cflags --libs` -lGL -lstdc++ -lstdc++fs -DSIMDE_SSE2_NO_NATIVE -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION -DBOXEDWINE_POSIX -DBOXEDWINE_OPENGL_IMGUI_V2 +gcc -std=c++17 -O2 -Wall -Wno-delete-incomplete -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -I../../include -I../../lib/poco/Net/include -I../../lib/poco/Crypto/include -I../../lib/poco/Util/include -I../../lib/poco/Foundation/include -I../../lib/poco/NetSSL_OpenSSL/include -I../../lib/glew/include -I../../lib/imgui ../../lib/imgui/imgui.cpp ../../lib/pugixml/src/*.cpp ../../lib/imgui/imgui_draw.cpp ../../lib/imgui/imgui_widgets.cpp ../../lib/imgui/examples/imgui_impl_opengl2.cpp ../../lib/imgui/examples/imgui_impl_sdl.cpp ../../lib/imgui/addon/imguitinyfiledialogs.cpp ../../source/sdl/*.cpp ../../source/sdl/singleThreaded/*.cpp ../../lib/glew/src/glew.cpp ../../source/ui/*.cpp ../../source/ui/controls/*.cpp ../../source/ui/data/*.cpp ../../source/ui/opengl/*.cpp ../../source/ui/utils/*.cpp ../../platform/sdl/*.cpp ../../platform/linux/*.cpp ../../source/emulation/cpu/*.cpp ../../source/emulation/cpu/common/*.cpp ../../source/emulation/cpu/normal/*.cpp ../../source/emulation/softmmu/*.cpp ../../source/io/*.cpp ../../source/kernel/*.cpp ../../source/kernel/devs/*.cpp ../../source/kernel/proc/*.cpp ../../source/kernel/sys/*.cpp ../../source/kernel/loader/*.cpp ../../source/util/*.cpp ../../source/opengl/sdl/*.cpp ../../source/opengl/*.cpp -o bin/boxedwine -L./linux_build/lib -lPocoNetSSL -lPocoNet -lPocoCrypto -lPocoUtil -lPocoFoundation -lssl -lcrypto -lnetwork -lbsd -lz -lminizip -DBOXEDWINE_RECORDER -DBOXEDWINE_ZLIB -DBOXEDWINE_HAS_SETJMP -DSDL2=1 "-DGLH=" -DBOXEDWINE_OPENGL_SDL `sdl2-config --cflags --libs` -lGL -lstdc++ -lstdc++fs -DSIMDE_SSE2_NO_NATIVE -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION -DBOXEDWINE_POSIX -DBOXEDWINE_OPENGL_IMGUI_V2 diff --git a/project/linux/build64.sh b/project/linux/build64.sh old mode 100644 new mode 100755 index d140831f..1f126142 --- a/project/linux/build64.sh +++ b/project/linux/build64.sh @@ -1,4 +1,4 @@ #!/bin/bash mkdir -p bin sh buildPocoLib.sh -gcc -std=c++17 -O2 -Wall -Wno-delete-incomplete -Wno-invalid-offsetof -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -I../../include -I../../lib/poco/Net/include -I../../lib/poco/Crypto/include -I../../lib/poco/Util/include -I../../lib/poco/Foundation/include -I../../lib/poco/NetSSL_OpenSSL/include -I../../lib/glew/include -I../../lib/imgui ../../lib/imgui/imgui.cpp ../../lib/pugixml/src/*.cpp ../../lib/imgui/imgui_draw.cpp ../../lib/imgui/imgui_widgets.cpp ../../lib/imgui/examples/imgui_impl_opengl2.cpp ../../lib/imgui/examples/imgui_impl_sdl.cpp ../../lib/imgui/addon/imguitinyfiledialogs.cpp ../../source/sdl/*.cpp ../../source/sdl/multiThreaded/*.cpp ../../lib/glew/src/glew.cpp ../../source/ui/*.cpp ../../source/ui/controls/*.cpp ../../source/ui/data/*.cpp ../../source/ui/opengl/*.cpp ../../source/ui/utils/*.cpp ../../platform/sdl/*.cpp ../../platform/linux/*.cpp ../../source/emulation/cpu/*.cpp ../../source/emulation/cpu/common/*.cpp ../../source/emulation/cpu/normal/*.cpp ../../source/emulation/cpu/x64/*.cpp ../../source/emulation/cpu/binaryTranslation/*.cpp ../../source/emulation/hardmmu/*.cpp ../../source/emulation/softmmu/*.cpp ../../source/io/*.cpp ../../source/kernel/*.cpp ../../source/kernel/devs/*.cpp ../../source/kernel/proc/*.cpp ../../source/kernel/sys/*.cpp ../../source/kernel/loader/*.cpp ../../source/util/*.cpp ../../source/opengl/sdl/*.cpp ../../source/opengl/*.cpp -o bin/boxedwine64 -L./linux_build/lib -lPocoNetSSL -lPocoNet -lPocoCrypto -lPocoUtil -lPocoFoundation -lssl -lcrypto -lpthread -lm -lz -lminizip -DBOXEDWINE_RECORDER -DBOXEDWINE_ZLIB -DBOXEDWINE_HAS_SETJMP -DSDL2=1 "-DGLH=" -DBOXEDWINE_OPENGL_SDL `sdl2-config --cflags --libs` -lGL -lstdc++ -lstdc++fs -DSIMDE_SSE2_NO_NATIVE -DBOXEDWINE_64 -DBOXEDWINE_64BIT_MMU -DBOXEDWINE_X64 -DBOXEDWINE_MULTI_THREADED -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION -DBOXEDWINE_POSIX -DBOXEDWINE_OPENGL_IMGUI_V2 -DBOXEDWINE_BINARY_TRANSLATOR +gcc -std=c++17 -O2 -Wall -Wno-delete-incomplete -Wno-invalid-offsetof -Wno-unused-result -Wno-unknown-pragmas -Wno-unused-local-typedefs -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -I../../include -I../../lib/poco/Net/include -I../../lib/poco/Crypto/include -I../../lib/poco/Util/include -I../../lib/poco/Foundation/include -I../../lib/poco/NetSSL_OpenSSL/include -I../../lib/glew/include -I../../lib/imgui ../../lib/imgui/imgui.cpp ../../lib/pugixml/src/*.cpp ../../lib/imgui/imgui_draw.cpp ../../lib/imgui/imgui_widgets.cpp ../../lib/imgui/examples/imgui_impl_opengl2.cpp ../../lib/imgui/examples/imgui_impl_sdl.cpp ../../lib/imgui/addon/imguitinyfiledialogs.cpp ../../source/sdl/*.cpp ../../source/sdl/multiThreaded/*.cpp ../../lib/glew/src/glew.cpp ../../source/ui/*.cpp ../../source/ui/controls/*.cpp ../../source/ui/data/*.cpp ../../source/ui/opengl/*.cpp ../../source/ui/utils/*.cpp ../../platform/sdl/*.cpp ../../platform/linux/*.cpp ../../source/emulation/cpu/*.cpp ../../source/emulation/cpu/common/*.cpp ../../source/emulation/cpu/normal/*.cpp ../../source/emulation/cpu/x64/*.cpp ../../source/emulation/cpu/binaryTranslation/*.cpp ../../source/emulation/hardmmu/*.cpp ../../source/emulation/softmmu/*.cpp ../../source/io/*.cpp ../../source/kernel/*.cpp ../../source/kernel/devs/*.cpp ../../source/kernel/proc/*.cpp ../../source/kernel/sys/*.cpp ../../source/kernel/loader/*.cpp ../../source/util/*.cpp ../../source/opengl/sdl/*.cpp ../../source/opengl/*.cpp -o bin/boxedwine64 -L./linux_build/lib -lPocoNetSSL -lPocoNet -lPocoCrypto -lPocoUtil -lPocoFoundation -lssl -lcrypto -lnetwork -lz -lminizip -DBOXEDWINE_RECORDER -DBOXEDWINE_ZLIB -DBOXEDWINE_HAS_SETJMP -DSDL2=1 "-DGLH=" -DBOXEDWINE_OPENGL_SDL `sdl2-config --cflags --libs` -lGL -lstdc++ -lstdc++fs -DSIMDE_SSE2_NO_NATIVE -DBOXEDWINE_64 -DBOXEDWINE_64BIT_MMU -DBOXEDWINE_X64 -DBOXEDWINE_MULTI_THREADED -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION -DBOXEDWINE_POSIX -DBOXEDWINE_OPENGL_IMGUI_V2 -DBOXEDWINE_BINARY_TRANSLATOR diff --git a/project/linux/buildPocoLib.sh b/project/linux/buildPocoLib.sh old mode 100644 new mode 100755 diff --git a/project/linux/fastAuto.sh b/project/linux/fastAuto.sh index 425f6342..e55eb553 100755 --- a/project/linux/fastAuto.sh +++ b/project/linux/fastAuto.sh @@ -1,5 +1,5 @@ #!/bin/bash -/bin/bash build.sh +#/bin/bash build.sh mkdir auto curl -z auto/auto-abiword-32.zip -o auto/auto-abiword-32.zip http://208.113.132.187/automation/auto-abiword-32.zip diff --git a/source/kernel/knativesocket.cpp b/source/kernel/knativesocket.cpp index 16719808..f2445017 100644 --- a/source/kernel/knativesocket.cpp +++ b/source/kernel/knativesocket.cpp @@ -21,6 +21,10 @@ static int winsock_intialized; void closesocket(int socket) { close(socket); } #endif +#ifdef __HAIKU__ +#include +#endif + std::vector> waitingNativeSockets; fd_set waitingReadset; fd_set waitingWriteset; @@ -287,8 +291,10 @@ KNativeSocketObject::KNativeSocketObject(U32 domain, U32 type, U32 protocol) : K nativeType = SOCK_DGRAM; } else if (type == K_SOCK_RAW) { nativeType = SOCK_RAW; +#ifndef __HAIKU__ } else if (type == K_SOCK_RDM) { nativeType = SOCK_RDM; +#endif } else if (type == K_SOCK_SEQPACKET) { nativeType = SOCK_SEQPACKET; } else { @@ -303,12 +309,16 @@ KNativeSocketObject::KNativeSocketObject(U32 domain, U32 type, U32 protocol) : K nativeProtocol = IPPROTO_IGMP; } else if (protocol == 6) { nativeProtocol = IPPROTO_TCP; +#ifndef __HAIKU__ } else if (protocol == 12) { nativeProtocol = IPPROTO_PUP; +#endif } else if (protocol == 17) { nativeProtocol = IPPROTO_UDP; +#ifndef __HAIKU__ } else if (protocol == 22) { nativeProtocol = IPPROTO_IDP; +#endif } else if (protocol == 255) { nativeProtocol = IPPROTO_RAW; } else {