Skip to content

Commit f2a2972

Browse files
kuharclaude
andauthored
[Python][CMake] Set py_limited_api on CMakeExtension for abi3 wheels (#23628)
In abi3 mode, CMake produces `.abi3.so` extensions but setuptools' default `build_ext` looks for `.cpython-3XX.so`. Pass `py_limited_api=True` on CMakeExtension when building abi3 wheels so setuptools computes the correct `.abi3.so` filename. This should fix the latest wheel release failures: https://github.com/iree-org/iree/actions/runs/22609682568. Assisted-by: claude --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 84f18ff commit f2a2972

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

compiler/setup.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,8 @@ def run(self):
358358

359359

360360
class CMakeExtension(Extension):
361-
def __init__(self, name, sourcedir=""):
362-
Extension.__init__(self, name, sources=[])
361+
def __init__(self, name, sourcedir="", **kwargs):
362+
Extension.__init__(self, name, sources=[], **kwargs)
363363
self.sourcedir = os.path.abspath(sourcedir)
364364

365365

@@ -502,14 +502,22 @@ def find_git_submodule_revision(submodule_path):
502502
"documentation": "https://iree.dev/reference/bindings/python/",
503503
},
504504
ext_modules=[
505-
CMakeExtension("iree.compiler._mlir_libs._mlir"),
506-
CMakeExtension("iree.compiler._mlir_libs._ireeDialects"),
505+
CMakeExtension("iree.compiler._mlir_libs._mlir", py_limited_api=_is_abi3_build),
506+
CMakeExtension(
507+
"iree.compiler._mlir_libs._ireeDialects", py_limited_api=_is_abi3_build
508+
),
507509
# TODO: MHLO has been broken for a while so disabling. If re-enabling,
508510
# it also needs to be enabled on the build side.
509511
# CMakeExtension("iree.compiler._mlir_libs._mlirHlo"),
510-
CMakeExtension("iree.compiler._mlir_libs._mlirLinalgPasses"),
511-
CMakeExtension("iree.compiler._mlir_libs._mlirGPUPasses"),
512-
CMakeExtension("iree.compiler._mlir_libs._site_initialize_0"),
512+
CMakeExtension(
513+
"iree.compiler._mlir_libs._mlirLinalgPasses", py_limited_api=_is_abi3_build
514+
),
515+
CMakeExtension(
516+
"iree.compiler._mlir_libs._mlirGPUPasses", py_limited_api=_is_abi3_build
517+
),
518+
CMakeExtension(
519+
"iree.compiler._mlir_libs._site_initialize_0", py_limited_api=_is_abi3_build
520+
),
513521
],
514522
cmdclass=dict(
515523
{

runtime/setup.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -474,8 +474,8 @@ def run(self):
474474

475475

476476
class CMakeExtension(Extension):
477-
def __init__(self, name, sourcedir=""):
478-
Extension.__init__(self, name, sources=[])
477+
def __init__(self, name, sourcedir="", **kwargs):
478+
Extension.__init__(self, name, sources=[], **kwargs)
479479
self.sourcedir = os.path.abspath(sourcedir)
480480

481481

@@ -601,10 +601,16 @@ def populate_built_package(abs_dir):
601601
python_requires=">=3.10",
602602
ext_modules=(
603603
[
604-
CMakeExtension("iree._runtime_libs._runtime"),
604+
CMakeExtension(
605+
"iree._runtime_libs._runtime", py_limited_api=_is_abi3_build
606+
),
605607
]
606608
+ (
607-
[CMakeExtension("iree._runtime_libs_tracy._runtime")]
609+
[
610+
CMakeExtension(
611+
"iree._runtime_libs_tracy._runtime", py_limited_api=_is_abi3_build
612+
)
613+
]
608614
if ENABLE_TRACY
609615
else []
610616
)

0 commit comments

Comments
 (0)