[flac-dev] Enabling universal building of libFLAC

Martijn van Beurden mvanb1 at gmail.com
Mon Sep 19 06:37:24 UTC 2022


Op zo 18 sep. 2022 om 19:08 schreef Robert Kausch <robert.kausch at freac.org>:

> As an integrator targeting four different architectures on Mac (ppc,
> x86, x86-64 and aarch64), I build all the libraries separately for each
> architecture and then combine the resulting binaries into a universal
> binary using the lipo tool.
>
> That's the standard way to build universal binaries when dealing with
> Autotools or CMake build systems. It's quick and easy, so I don't really
> see a need for supporting one-step universal binary builds.
>

Thanks for enlightening me. This doesn't have as high a priority as I
thought it had then.


> Preprocessor defines for different architectures are mostly standardized
> and should work on all systems (no need to use Apple-specific defines).
> Microsoft uses a different scheme, though, as expected... And of course
> there may be the usual bunch of embedded toolchains doing non-standard
> things.
>

Yes, the more I change, the more things I'll probably break.


> During a one-step universal binary build, the different instances of the
> compiler define the correct macros for the respective architecture being
> compiled. No need to work around any build-system logic doing its own
> thing.
>

There are a few things in build-system logic that need to be circumvented
too, it seems. As I understand, in a x86_64 + aarch64 universal build,
detection of A64 NEON intrinsics doesn't work because the x86_64 compiler
complains and the detection of x86intrin.h doesn't work because the aarch64
compiler complains. So, configuration needs to be aware of this too.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/flac-dev/attachments/20220919/3b7a9db6/attachment.htm>


More information about the flac-dev mailing list