On Mon, 6 Feb 2023 16:37:57 -0500, Roberto C. Sánchez <robe...@debian.org>
wrote:

> And even with the build continuing on mips64el I see this:
> 
> float128/dpml_ux_trig.c: In function '__dpml_bid_ux_degree_reduce__':
> float128/dpml_ux_trig.c:254:9: warning: implicit declaration of function
> 'UMULH' [-Wimplicit-f unction-declaration]
>   254 |         UMULH((UX_FRACTION_DIGIT_TYPE) exponent, RECIP_TWELVE, k);
>       |         ^~~~~
> 
> 
> When I build libmongocrypt against the resulting libintelrdfp-math, the
> libmongocrypt will then fail at link time:
> 
> /usr/bin/ld:
> /home/roberto/mips64el/intelrdfpmath-2.0u2/debian/libintelrdfpmath-dev/usr/lib/mips64el-linux-gnuabi64/libbidgcc000.a(dpml_ux_ops_64.o):
> in function `__eval_pos_poly': (.text+0xe4): undefined reference to `UMULH'
> /usr/bin/ld: (.text+0xfc): undefined reference to `UMULH' /usr/bin/ld:
> (.text+0x144): undefined reference to `UMULH' /usr/bin/ld: (.text+0x160):
> undefined reference to `UMULH' /usr/bin/ld: (.text+0x168): undefined
> reference to `UMULH' /usr/bin/ld:
> /home/roberto/mips64el/intelrdfpmath-2.0u2/debian/libintelrdfpmath-dev/usr/lib/mips64el-linux-gnuabi64/libbidgcc000.a(dpml_ux_ops_64.o):(.text+0x17c):
> more undefined references to `UMULH' follow
> 
> It might be better to simply declare intelrdfpmath '[!mipsel
> !mips64el]'.  Sadly, my experience with Intel libraries (I maintained
> TBB in Debian for several years) is that they only put effort into the
> architectures that are important to them and that you can't assume that
> their code will work on other architectures.  That could well be the
> case here.

Yes, it seems like we’d really need a mips_macros.h implementation on MIPS.

I enabled the test suite, and the result is basically that the library only
works fully on amd64, i386 (nearly, with two test failures out of ~120,000
test cases), and ia64, which matches the architectures which the library
claims to support. On other architectures, the number of failures varies, up
to 12.5% of test cases on s390x.

So really I should change the library to [amd64 i386 ia64]...

Do you have a good way of validating whether the library is good enough for
libmongocrypt’s purposes on non-Intel architectures?

Regards,

Stephen

Attachment: pgpt5tua0m1VP.pgp
Description: OpenPGP digital signature

Reply via email to