Why do some bundles have two different binaries?

For example, the mariadb package is well over 500 megabytes, and it seems like there are two binaries for everthing, in both /usr/bin and /usr/bin/haswell.

Is there any description of when the /usr/bin/haswell path is used and why we need to have both copies lying around?

1 Like

Thank you for responding and that was very helpful. According to the link it seems this is done for performance reasons. In this case, it really makes no sense that all of the binaries are compiled twice. It is unclear that any of these binaries fall in to the categories of deserving such optimization. Some are diagnostics or developer tools and not performance critical at all. Is this something that would warrant creating an issue?

CL is mainly for data center and container usages. The extra several hundred MB disk space is not a big issue, currently one TB costs around 20 USD on average.
Keeping both optimised and unoptimized binaries ready in a same OS image makes it really easy to deploy. Because after all it’s just the same OS, regardless of the architecture of the host system.
This is a big feature, because otherwise you need human resources to deal with two (or even more) slightly different OS images, that’s much more costly.