diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py
index 0f9e365..14fcf2f 100755
--- a/Tools/scripts/stable_abi.py
+++ b/Tools/scripts/stable_abi.py
@@ -112,11 +112,10 @@ def generate_limited_api_symbols(args):
     stable_data, stable_exported_data, stable_functions = get_limited_api_definitions(
         headers
     )
-    macros = get_limited_api_macros(headers)
 
     stable_symbols = {
         symbol
-        for symbol in (stable_functions | stable_exported_data | stable_data | macros)
+        for symbol in (stable_functions | stable_exported_data | stable_data)
         if symbol.startswith("Py") and symbol in available_symbols
     }
     with open(args.output_file, "w") as output_file:
@@ -128,36 +127,6 @@ def generate_limited_api_symbols(args):
             output_file.write(f"{symbol}\n")
 
 
-def get_limited_api_macros(headers):
-    """Run the preprocesor over all the header files in "Include" setting
-    "-DPy_LIMITED_API" to the correct value for the running version of the interpreter
-    and extracting all macro definitions (via adding -dM to the compiler arguments).
-    """
-
-    preprocesor_output_with_macros = subprocess.check_output(
-        sysconfig.get_config_var("CC").split()
-        + [
-            # Prevent the expansion of the exported macros so we can capture them later
-            "-DSIZEOF_WCHAR_T=4",  # The actual value is not important
-            f"-DPy_LIMITED_API={sys.version_info.major << 24 | sys.version_info.minor << 16}",
-            "-I.",
-            "-I./Include",
-            "-dM",
-            "-E",
-        ]
-        + [str(file) for file in headers],
-        text=True,
-        stderr=subprocess.DEVNULL,
-    )
-
-    return {
-        target
-        for _, target in re.findall(
-            r"#define (\w+)\s*(?:\(.*?\))?\s+(\w+)", preprocesor_output_with_macros
-        )
-    }
-
-
 def get_limited_api_definitions(headers):
     """Run the preprocesor over all the header files in "Include" setting
     "-DPy_LIMITED_API" to the correct value for the running version of the interpreter.
