[blasfeo] new port - #54022
[blasfeo] new port#54022Joris Gillis (jgillis) wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0d1ae1b to
c95050b
Compare
|
Hi there, thanks for the new port!
This is enough product code change that I want to see upstream take action before proceeding. Additionally, GPT 5.6 Sol reports:
Normally we give upstream 30 days to take action for patches but in this case the port isn't even in our registry yet. If there is no response in that time I think that would mean it breaks our "upstream projects should be maintained" rules. Let's see what they do. Everything else in this PR looks mergable, thank you! |
|
I'm converting this to draft so that it stops showing up in our queries; if you see upstream fix this please press "Ready for review" so we notice |
Adds
blasfeo(BLAS For Embedded Optimization, BSD-2-Clause), the dense linear algebra library used by hpipm, fatrop and acados. It is the first of a small series: thefatropport and thecasadi[fatrop]feature will follow separately (#54019 bundled everything and was closed for that reason; its CI run showed blasfeo passing on all 13 triplets, including the Windows ones).versionfile still reads0.1.4.2— CMake derives the library version and SOVERSION from it — so the portfile writes${VERSION}into it, givinglibblasfeo.so.0.1.4.3(SOVERSION stays0).TARGET=GENERIC: the portable C kernels — the only target the build accepts with MSVC (the optimized targets are GNU-syntax assembly), and the only one that yields a cache-safe binary.DISABLE_PARALLEL_CONFIGURE: upstreamconfigure_file()sinclude/blasfeo_target.hinto the source tree, which races when the debug and release configures run concurrently.alloc-guard.patch: reserves a guard block in the dynamic allocators so the GENERIC kernels' 4-wide block over-read stays inside the allocation (SIGSEGV on macOS / ASan otherwise). Upstream: Over-allocate a guard block in the dynamic MAT/VEC allocators (GENERIC lib4 over-read) giaf/blasfeo#216.share/cmake/blasfeowith the unnamespacedblasfeotarget, as upstream defines it.Tested locally on
x64-linuxandx64-linux-dynamic, and as the dependency of fatrop and casadi's fatrop plugin on both.find_packagecalls are REQUIRED, are satisfied byvcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.vcpkg.jsonmatches what upstream says.vcpkg.jsonmatches what upstream says../vcpkg x-add-version --alland committing the result.🤖 Generated with Claude Code