summaryrefslogtreecommitdiffstats
path: root/Python/sysmodule.c
diff options
context:
space:
mode:
authorPablo Galindo Salgado <Pablogsal@gmail.com>2024-10-30 00:12:45 (GMT)
committerGitHub <noreply@github.com>2024-10-30 00:12:45 (GMT)
commit2d37c719ed7c54430257028be6b48a1e2d065973 (patch)
tree772e7edbb2170fae1cccb2c016d2747ee87ad9a8 /Python/sysmodule.c
parent2d9d10179ff3f13029bf4430e62c455a839987ca (diff)
downloadcpython-2d37c719ed7c54430257028be6b48a1e2d065973.zip
cpython-2d37c719ed7c54430257028be6b48a1e2d065973.tar.gz
cpython-2d37c719ed7c54430257028be6b48a1e2d065973.tar.bz2
gh-124855: Don't allow the JIT and perf support to be active at the same time (#124856)
Diffstat (limited to 'Python/sysmodule.c')
-rw-r--r--Python/sysmodule.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 24af479..cbb7397 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -2287,6 +2287,14 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)
/*[clinic end generated code: output=5783cdeb51874b43 input=a12df928758a82b4]*/
{
#ifdef PY_HAVE_PERF_TRAMPOLINE
+#ifdef _Py_JIT
+ _PyOptimizerObject* optimizer = _Py_GetOptimizer();
+ if (optimizer != NULL) {
+ PyErr_SetString(PyExc_ValueError, "Cannot activate the perf trampoline if the JIT is active");
+ return NULL;
+ }
+#endif
+
if (strcmp(backend, "perf") == 0) {
_PyPerf_Callbacks cur_cb;
_PyPerfTrampoline_GetCallbacks(&cur_cb);