reduce thread stack and heap usage for javascriptcore on musl

default sizes for musl are smaller compared to glibc, this matches
to musl defaults, avoid stack overflow crashes in jscore

This is based on Alpine Linux's patch based on suggestion from
https://bugs.webkit.org/show_bug.cgi?id=187485

Real solution would entail more as the suggestions to increase
stack size via -Wl,-z,stack-size=N does not work fully and also
setting DEFAULT_THREAD_STACK_SIZE_IN_KB alone is not enough either

This patch only changes behavior when using musl, the defaults for
glibc in OE remains same

Upstream-Status: Accepted
Signed-off-by: Khem Raj <raj.khem@gmail.com>

--- a/Source/JavaScriptCore/runtime/OptionsList.h
+++ b/Source/JavaScriptCore/runtime/OptionsList.h
@@ -75,6 +75,18 @@ constexpr bool enableWebAssemblyStreamin
 // On instantiation of the first VM instance, the Options will be write protected
 // and cannot be modified thereafter.
 
+#if OS(LINUX) && !defined(__GLIBC__)
+// non-glibc options on linux ( musl )
+constexpr unsigned jscMaxPerThreadStack = 128 * KB;
+constexpr unsigned jscSoftReservedZoneSize = 32 * KB;
+constexpr unsigned jscReservedZoneSize = 16 * KB;
+#else
+//default
+constexpr unsigned jscMaxPerThreadStack = 4 * MB;
+constexpr unsigned jscSoftReservedZoneSize = 128 * KB;
+constexpr unsigned jscReservedZoneSize = 64 * KB;
+#endif
+
 #define FOR_EACH_JSC_OPTION(v)                                          \
     v(Bool, useKernTCSM, defaultTCSMValue(), Normal, "Note: this needs to go before other options since they depend on this value.") \
     v(Bool, validateOptions, false, Normal, "crashes if mis-typed JSC options were passed to the VM") \
@@ -90,9 +102,9 @@ constexpr bool enableWebAssemblyStreamin
     \
     v(Bool, reportMustSucceedExecutableAllocations, false, Normal, nullptr) \
     \
-    v(Unsigned, maxPerThreadStackUsage, 5 * MB, Normal, "Max allowed stack usage by the VM") \
-    v(Unsigned, softReservedZoneSize, 128 * KB, Normal, "A buffer greater than reservedZoneSize that reserves space for stringifying exceptions.") \
-    v(Unsigned, reservedZoneSize, 64 * KB, Normal, "The amount of stack space we guarantee to our clients (and to interal VM code that does not call out to clients).") \
+    v(Unsigned, maxPerThreadStackUsage, jscMaxPerThreadStack, Normal, "Max allowed stack usage by the VM") \
+    v(Unsigned, softReservedZoneSize, jscSoftReservedZoneSize, Normal, "A buffer greater than reservedZoneSize that reserves space for stringifying exceptions.") \
+    v(Unsigned, reservedZoneSize, jscReservedZoneSize, Normal, "The amount of stack space we guarantee to our clients (and to interal VM code that does not call out to clients).") \
     \
     v(Bool, crashOnDisallowedVMEntry, ASSERT_ENABLED, Normal, "Forces a crash if we attempt to enter the VM when disallowed") \
     v(Bool, crashIfCantAllocateJITMemory, false, Normal, nullptr) \
@@ -601,7 +613,7 @@ public:
     bool init(const char*);
     bool isInRange(unsigned);
     const char* rangeString() const { return (m_state > InitError) ? m_rangeString : s_nullRangeStr; }
-    
+
     void dump(PrintStream& out) const;
 
 private:
--- a/Source/WTF/wtf/Threading.h
+++ b/Source/WTF/wtf/Threading.h
@@ -56,6 +56,10 @@
 #include <array>
 #endif
 
+#if OS(LINUX) && !defined(__GLIBC__)
+#define DEFAULT_THREAD_STACK_SIZE_IN_KB 128
+#endif
+
 namespace WTF {
 
 class AbstractLocker;
