From: Martin v. Löwis Date: Sat, 14 Jun 2003 15:03:06 +0000 (+0000) Subject: Backport FreeBSD recursion limit. Fixes #553736. X-Git-Tag: 2.2~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d3e2b663861535cead4967f03d2722165605a833;p=thirdparty%2FPython%2Fcpython.git Backport FreeBSD recursion limit. Fixes #553736. --- diff --git a/Modules/_sre.c b/Modules/_sre.c index 78563093875a..05573d9383a2 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -87,10 +87,24 @@ static char copyright[] = Win64 (MS_WIN64), Linux64 (__LP64__), Monterey (64-bit AIX) (_LP64) */ /* FIXME: maybe the limit should be 40000 / sizeof(void*) ? */ #define USE_RECURSION_LIMIT 7500 +#else +#if defined(__GNUC__) && defined(WITH_THREAD) && defined(__FreeBSD__) +/* the pthreads library on FreeBSD has a fixed 1MB stack size for the + * initial (or "primary") thread, which is insufficient for the default + * recursion limit. gcc 3.x at the default optimisation + * level (-O3) uses stack space more aggressively than gcc 2.95. + */ +#if (__GNUC__ > 2) +#define USE_RECURSION_LIMIT 6500 +#else +#define USE_RECURSION_LIMIT 7500 +#endif + #else #define USE_RECURSION_LIMIT 10000 #endif #endif +#endif /* enables fast searching */ #define USE_FAST_SEARCH