Changes for the build to work on Solaris Potentially suitable to send upstream --- webkitgtk-2.48.1/Source/WTF/wtf/CurrentTime.cpp.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/CurrentTime.cpp @@ -305,7 +305,7 @@ return fromMachAbsoluteTime(mach_absolute_time()); #elif OS(FUCHSIA) return fromRawSeconds(zx_clock_get_monotonic() / static_cast<double>(ZX_SEC(1))); -#elif OS(LINUX) || OS(FREEBSD) || OS(OPENBSD) || OS(NETBSD) +#elif OS(LINUX) || OS(FREEBSD) || OS(OPENBSD) || OS(SOLARIS) || OS(NETBSD) struct timespec ts { }; clock_gettime(CLOCK_MONOTONIC, &ts); return fromRawSeconds(static_cast<double>(ts.tv_sec) + ts.tv_nsec / 1.0e9); --- webkitgtk-2.48.1/Source/WTF/wtf/NumberOfCores.cpp.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/NumberOfCores.cpp @@ -31,7 +31,7 @@ #if OS(DARWIN) #include <sys/sysctl.h> -#elif OS(LINUX) || OS(AIX) || OS(OPENBSD) || OS(NETBSD) || OS(FREEBSD) || OS(HAIKU) +#elif OS(LINUX) || OS(AIX) || OS(SOLARIS) || OS(OPENBSD) || OS(NETBSD) || OS(FREEBSD) || OS(HAIKU) #include <unistd.h> #elif OS(WINDOWS) #include <windows.h> @@ -68,7 +68,7 @@ int sysctlResult = sysctl(name, sizeof(name) / sizeof(int), &result, &length, 0, 0); s_numberOfCores = sysctlResult < 0 ? defaultIfUnavailable : result; -#elif OS(LINUX) || OS(AIX) || OS(OPENBSD) || OS(NETBSD) || OS(FREEBSD) || OS(HAIKU) +#elif OS(LINUX) || OS(AIX) || OS(SOLARIS) || OS(OPENBSD) || OS(NETBSD) || OS(FREEBSD) || OS(HAIKU) long sysconfResult = sysconf(_SC_NPROCESSORS_ONLN); s_numberOfCores = sysconfResult < 0 ? defaultIfUnavailable : static_cast<int>(sysconfResult); --- webkitgtk-2.48.1/Source/WTF/wtf/PageBlock.h.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/PageBlock.h @@ -53,7 +53,7 @@ // Use 64 KiB for any unknown CPUs to be conservative. #if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(MIPS) || CPU(MIPS64) || CPU(LOONGARCH64) || (OS(LINUX) && CPU(ARM64) && !USE(64KB_PAGE_BLOCK)) constexpr size_t CeilingOnPageSize = 16 * KB; -#elif USE(64KB_PAGE_BLOCK) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) +#elif USE(64KB_PAGE_BLOCK) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(SPARC) || CPU(UNKNOWN) constexpr size_t CeilingOnPageSize = 64 * KB; #elif OS(WINDOWS) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64) constexpr size_t CeilingOnPageSize = 4 * KB; --- webkitgtk-2.48.1/Source/WTF/wtf/PlatformHave.h.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/PlatformHave.h @@ -237,16 +237,16 @@ #define HAVE_HOSTED_CORE_ANIMATION 1 #endif -#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) +#if OS(DARWIN) || OS(FUCHSIA) || OS(SOLARIS) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) #define HAVE_MACHINE_CONTEXT 1 #endif -#if OS(DARWIN) || OS(HAIKU) || ((OS(LINUX) || OS(HURD)) && defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)) +#if OS(DARWIN) || OS(HAIKU) || OS(SOLARIS) || ((OS(LINUX) || OS(HURD)) && defined(__GLIBC__) && !defined(__UCLIBC__) && !CPU(MIPS)) #define HAVE_BACKTRACE 1 #define HAVE_BACKTRACE_SYMBOLS 1 #endif -#if OS(DARWIN) || OS(HAIKU) || OS(LINUX) || OS(HURD) +#if OS(DARWIN) || OS(HAIKU) || OS(SOLARIS) || OS(LINUX) || OS(HURD) #define HAVE_DLADDR 1 #endif @@ -402,7 +402,7 @@ #define HAVE_URL_FORMATTING 1 #endif -#if !OS(WINDOWS) +#if !OS(WINDOWS) && !OS(SOLARIS) #define HAVE_STACK_BOUNDS_FOR_NEW_THREAD 1 #endif --- webkitgtk-2.48.1/Source/WTF/wtf/PlatformOS.h.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/PlatformOS.h @@ -121,6 +121,11 @@ #define WTF_OS_QNX 1 #endif +/* OS(SOLARIS) - Solaris */ +#if defined(sun) || defined(__sun) +#define WTF_OS_SOLARIS 1 +#endif + /* OS(WINDOWS) - Any version of Windows */ #if defined(WIN32) || defined(_WIN32) #define WTF_OS_WINDOWS 1 @@ -136,6 +141,7 @@ || OS(LINUX) \ || OS(NETBSD) \ || OS(OPENBSD) \ + || OS(SOLARIS) \ || defined(unix) \ || defined(__unix) \ || defined(__unix__) --- webkitgtk-2.48.1/Source/WTF/wtf/StackBounds.cpp.orig +++ webkitgtk-2.48.1/Source/WTF/wtf/StackBounds.cpp @@ -29,6 +29,10 @@ #include <windows.h> +#elif OS(SOLARIS) + +#include <thread.h> + #elif OS(UNIX) || OS(HAIKU) #include <pthread.h> @@ -81,6 +85,17 @@ return newThreadStackBounds(pthread_self()); } +#elif OS(SOLARIS) + +StackBounds StackBounds::currentThreadStackBoundsInternal() +{ + stack_t s; + thr_stksegment(&s); + void* origin = s.ss_sp; + void* bound = static_cast<char*>(origin) - s.ss_size; + return StackBounds { origin, bound }; +} + #elif OS(UNIX) || OS(HAIKU) #if OS(OPENBSD) --- webkitgtk-2.48.1/Source/WebCore/inspector/InspectorFrontendHost.cpp.orig +++ webkitgtk-2.48.1/Source/WebCore/inspector/InspectorFrontendHost.cpp @@ -414,6 +414,8 @@ return "freebsd"_s; #elif OS(OPENBSD) return "openbsd"_s; +#elif OS(SOLARIS) + return "solaris"_s; #else return "unknown"_s; #endif --- webkitgtk-2.48.1/Source/JavaScriptCore/runtime/MachineContext.h.orig +++ webkitgtk-2.48.1/Source/JavaScriptCore/runtime/MachineContext.h @@ -33,6 +33,7 @@ #include <wtf/PlatformRegisters.h> #include <wtf/PointerPreparations.h> #include <wtf/StdLibExtras.h> +#include <sys/regset.h> WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN @@ -182,7 +183,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) #if CPU(X86_64) return reinterpret_cast<void*&>((uintptr_t&) machineContext.gregs[REG_RSP]); @@ -305,7 +306,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) // The following sequence depends on glibc's sys/ucontext.h. #if CPU(X86_64) @@ -467,7 +468,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) // The following sequence depends on glibc's sys/ucontext.h. #if CPU(X86_64) @@ -655,7 +656,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) // The following sequence depends on glibc's sys/ucontext.h. #if CPU(X86_64) @@ -712,7 +713,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) // The following sequence depends on glibc's sys/ucontext.h. #if CPU(X86_64) @@ -834,7 +835,7 @@ #error Unknown Architecture #endif -#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) +#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || OS(SOLARIS) // The following sequence depends on glibc's sys/ucontext.h. #if CPU(X86_64)