[tlbuild] PPC builds

Johannes Hielscher jhielscher at posteo.de
Thu Mar 19 00:30:15 CET 2020


>     Sounds like just adopting =check as an implicit default for
>     libpng configure.
> 
> Libpng explicitly disrecommends this.

My bad! I had in mind that the --enable-{arm-neon,powerpc-vsx} checks
are evaluated at compile time. But it clearly states run time! This in
fact renders the =check option useless for native/redistributable TL
binaries, and leaves us with the following:
  * NEON is integral part of the AArch64 standard [0], so on
    aarch64-linux, --enable-arm-neon=on is a safe bet anyway.
  * On “old” 32-bit ARMv6/ARMv7 (at TL: armhf-linux), NEON is an
    optional extension (implemented by most, but not all CPUs of the
    last decade or so). I plead in favour of --enable-arm-neon=off and
    better sacrify a bit of libpng performance on these boards than
    breaking compatibility with Raspberry Pi 1.
////////////////////
@Simon: Do you have an opinion on this?
////////////////////
> Ditto VSX, as far as I can see.
  * VSX was part of Power ISA 2.06 aka POWER7, but the little-endian
    ppc64le hasn't been introduced until POWER8. So AFAICT all ppc64le
    platforms have VSX, and --enable-powerpc-vsx=on is safe.
    Safeguards at libs/libpng/libpng-src/pngpriv.h:198ff.
    Should someone protest, we can still change it. Less bureaucracy
    since this port won't be an official platform, for the time being.

> I didn't try it (maybe you'd like to)
I have successfully compiled whole TL on x86_64-linux with explicit
--enable-arm-neon=check and it didn't complain. Safeguards are within
pngpriv.h:130ff via GCC preprocessor variables.


I don't want to sneak out of writing some test code. But if a CPU
history lesson tells us that this will be redundant, we won't need it.

Anyway, since we don't know the machines on which the users will run
our binaries, we have to stick to a common platform/ISA/ABI baseline for
which instructions to enable during compile time and which not.
Compile-time tests are useless. Correct me if I've ran into a fallacy
here.


Best,
Johannes


[0]
https://developer.arm.com/docs/den0024/a/aarch64-floating-point-and-neon



More information about the tlbuild mailing list.