DISTRHO / Cardinal

Virtual modular synthesizer plugin
https://cardinal.kx.studio/
GNU General Public License v3.0
2.07k stars 141 forks source link

Cross-compilation build with -march=znver3 fails due to problems in the simde_xx functions #646

Open yurivict opened 2 months ago

yurivict commented 2 months ago

Version

24.04

Plugin type

Native / JACK

OS

FreeBSD 14.0

DAW / Host (if applicable)

n/a

Description

It looks like Eigen3 calls the bundled simde library, which fails in the case of cross-compilation for some other, in this case znver3, flavor of the processor. See the log.

The regular build succeeds.

falkTX commented 1 month ago

Cardinal is built with the idea to support SSE3 as the minimum, everything else being emulated on top (so any SSE4 calls are done with SSE3 methods)

Specifying a custom -march flag breaks this assumption. See if removing the line at https://github.com/DISTRHO/Cardinal/blob/main/Makefile.base.mk#L62 makes any difference (starting with a clean build) Basically on such custom builds we need to remove the use of simde entirely.

falkTX commented 1 month ago

oh also remove the whole block at https://github.com/DISTRHO/Cardinal/blob/main/Makefile.base.mk#L109

let me know how it goes for you, if it builds ok then I can consider some new makefile option to deal with this case