https://github.com/python/cpython/commit/a5e628beb8592d938209a09e84d072bb5f57d042
commit: a5e628beb8592d938209a09e84d072bb5f57d042
branch: main
author: Pablo Galindo Salgado <pablog...@gmail.com>
committer: pablogsal <pablog...@gmail.com>
date: 2025-04-25T17:43:32Z
summary:

gh-91048: Prevent optimizing away the asyncio debug offsets structure on 
Windows (#132963)

To avoid having the debug sections being optimised away by the compiler
we use  __attribute__((used)) on gcc and clang but in Windows this is
not supported by the Microsoft compiler and there is no equivalent flag.
Unfortunately Windows offers almost no alternative other than exporting
the symbol in the dynamic table or using it somehow.

files:
M Modules/_asynciomodule.c

diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 27e6e67e3c9386..5f9181395c4828 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -185,6 +185,10 @@ typedef struct {
     /* Counter for autogenerated Task names */
     uint64_t task_name_counter;
 
+    /* Pointer to the asyncio debug offset to avoid it to be optimized away
+       by the compiler */
+    void *debug_offsets;
+
 } asyncio_state;
 
 static inline asyncio_state *
@@ -4320,6 +4324,8 @@ module_init(asyncio_state *state)
         goto fail;
     }
 
+    state->debug_offsets = &_AsyncioDebug;
+
     Py_DECREF(module);
     return 0;
 

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to