6060 || ''
6161 }}
6262 - name : UBSan option setup
63- if : inputs.sanitizer == 'UBSan '
63+ if : inputs.sanitizer != 'TSan '
6464 run : >-
6565 echo
6666 "UBSAN_OPTIONS=${SAN_LOG_OPTION}
6969 >> "$GITHUB_ENV"
7070 env :
7171 SAN_LOG_OPTION : log_path=${{ github.workspace }}/san_log
72- - name : MSan option setup
73- if : inputs.sanitizer == 'MSan'
74- run : |
75- echo "MSAN_OPTIONS=${SAN_LOG_OPTION} allocator_may_return_null=1 handle_segv=0" >> "$GITHUB_ENV"
76- # MSan reports false positives for memory initialized by libraries
77- # that are not built with MSan, so disable modules that use them.
78- # _remote_debugging links to libzstd directly, but we unpoision the memory.
79- {
80- echo '*disabled*'
81- echo '_bz2 _ctypes _curses _curses_panel _dbm _decimal _gdbm _hashlib'
82- echo '_lzma _sqlite3 _ssl _tkinter _uuid _zstd readline zlib'
83- } > Modules/Setup.local
84- env :
85- SAN_LOG_OPTION : log_path=${{ github.workspace }}/san_log
8672 - name : Add ccache to PATH
8773 run : |
8874 echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
10793 # gh-157958: -O2 instead of the pydebug default -Og to avoid a clang 21
10894 # compile-time blowup on some interpreter files.
10995 # (https://github.com/llvm/llvm-project/issues/179695)
110- # MSan uses --with-assertions instead of --with-pydebug because its
111- # hooks on the Python memory allocators hide uninitialized reads.
11296 - name : Configure CPython
11397 run : >-
11498 ./configure
@@ -117,11 +101,9 @@ jobs:
117101 ${{
118102 inputs.sanitizer == 'TSan'
119103 && '--with-thread-sanitizer'
120- || inputs.sanitizer == 'MSan'
121- && '--with-memory-sanitizer'
122104 || '--with-undefined-behavior-sanitizer --with-strict-overflow'
123105 }}
124- ${{ inputs.sanitizer == 'MSan' && ' --with-assertions' || '--with- pydebug' }}
106+ --with-pydebug
125107 ${{ inputs.sanitizer == 'TSan' && '--with-openssl="$OPENSSL_DIR" --with-openssl-rpath=auto' || '' }}
126108 ${{ inputs.free-threading && '--disable-gil' || '' }}
127109 - name : Build CPython
0 commit comments