• Mike Hommey's avatar
    Bug 1608327 - Fix freebl arm NEON code use on tier3 platforms. r=jcj · 332047c4
    Mike Hommey authored
    Despite the code having runtime detection of NEON and crypto extensions,
    the optimized code using those instructions is disabled at build time on
    platforms where the compiler doesn't enable NEON by default of with the
    flags it's given for the caller code.
    
    In the case of gcm, this goes as far as causing a build error.
    
    What is needed is for the optimized code to be enabled in every case,
    letting the caller code choose whether to use that code based on the
    existing runtime checks.
    
    But this can't be simply done either, because those optimized parts of
    the code need to be built with NEON enabled, unconditionally, but that
    is not compatible with platforms using the softfloat ABI. For those,
    we need to use the softfp ABI, which is compatible. However, the softfp
    ABI is not compatible with the hardfp ABI, so we also can't
    unconditionally use the softfp ABI, so we do so only when the compiler
    targets the softfloat ABI, which confusingly enough is advertized via
    the `__SOFTFP__` define.
    
    Differential Revision: https://phabricator.services.mozilla.com/D59451
    
    --HG--
    extra : moz-landing-system : lando
    332047c4
Name
Last commit
Last update
automation Loading commit data...
cmd Loading commit data...
coreconf Loading commit data...
cpputil Loading commit data...
doc Loading commit data...
fuzz Loading commit data...
gtests Loading commit data...
lib Loading commit data...
nss-tool Loading commit data...
pkg Loading commit data...
tests Loading commit data...
.arcconfig Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
.sancov-blacklist Loading commit data...
.taskcluster.yml Loading commit data...
COPYING Loading commit data...
Makefile Loading commit data...
build.sh Loading commit data...
exports.gyp Loading commit data...
help.txt Loading commit data...
mach Loading commit data...
manifest.mn Loading commit data...
nss.gyp Loading commit data...
readme.md Loading commit data...
trademarks.txt Loading commit data...