From 0921edb1ad6037584d042cdabb5fe18d31f1cf53 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2026 21:34:21 +0000 Subject: [PATCH 1/2] rhino3dm: Add version 8.35.0 Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- docs/packages/rhino3dm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/packages/rhino3dm.yaml b/docs/packages/rhino3dm.yaml index bd067a062d..d1354ce1cb 100644 --- a/docs/packages/rhino3dm.yaml +++ b/docs/packages/rhino3dm.yaml @@ -18,3 +18,4 @@ versions: - filename: rhino3dm-8.32.1-cp314-cp314t-manylinux_2_39_riscv64.whl sha256: 8571cdd88b3f5e169e2ce7fdf0ef6bd16863d465b543820d48dd01ec73460665 requires-python: '>=3.9' +- version: 8.35.0 From 3af3cd61d3f995ca14adfb243eeb57fae27510a7 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 18 Sep 2026 05:18:52 +0000 Subject: [PATCH 2/2] rhino3dm: Add 8.35.0 patches The 8.32.1 patches apply unchanged to 8.35.0; the build applies patches/rhino3dm// for every version it builds. --- ...bind11-LTO-on-Linux-to-avoid-riscv64.patch | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 patches/rhino3dm/8.35.0/0001-setup-disable-pybind11-LTO-on-Linux-to-avoid-riscv64.patch diff --git a/patches/rhino3dm/8.35.0/0001-setup-disable-pybind11-LTO-on-Linux-to-avoid-riscv64.patch b/patches/rhino3dm/8.35.0/0001-setup-disable-pybind11-LTO-on-Linux-to-avoid-riscv64.patch new file mode 100644 index 0000000000..c96244eaa5 --- /dev/null +++ b/patches/rhino3dm/8.35.0/0001-setup-disable-pybind11-LTO-on-Linux-to-avoid-riscv64.patch @@ -0,0 +1,37 @@ +From 576cbc65673d632fd10e4c946abe159ef83b01d7 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Fri, 11 Sep 2026 20:42:24 +0200 +Subject: [PATCH] setup: disable pybind11 LTO on Linux to avoid riscv64 + relocation overflow + +pybind11_add_module links pybind11::lto (-flto=auto -fno-fat-lto-objects) +whenever CMAKE_INTERPROCEDURAL_OPTIMIZATION is unset. GCC's riscv64 LTO +codegen overflows R_RISCV_PCREL_HI20 relocations when linking a +translation unit this large (opennurbs + draco + bindings combined by +LTO), failing with 'relocation truncated to fit'. Disable +CMAKE_INTERPROCEDURAL_OPTIMIZATION on Linux to avoid pybind11's default +LTO; x86_64/aarch64 do not hit this relocation limit so this only +matters for riscv64. + +Upstream-Status: Inappropriate [riscv64 GCC LTO relocation-overflow workaround; x86_64/aarch64 don't hit this] +--- + setup.py | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/setup.py b/setup.py +index d0cf103..f1fcc01 100644 +--- a/setup.py ++++ b/setup.py +@@ -87,6 +87,12 @@ class CMakeBuild(build_ext): + cmake_args += ['-DCMAKE_BUILD_TYPE=' + cfg] + if platform.system() == "Darwin": + cmake_args += ['-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64'] ++ if platform.system() == "Linux": ++ # pybind11_add_module links pybind11::lto (-flto=auto) whenever ++ # CMAKE_INTERPROCEDURAL_OPTIMIZATION is unset; GCC's riscv64 LTO ++ # codegen overflows R_RISCV_PCREL_HI20 relocations linking a ++ # translation unit this large (opennurbs + draco + bindings). ++ cmake_args += ['-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF'] + build_args += ['--', f'-j{max(1,os.cpu_count()-1)}'] + + env = os.environ.copy()