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
pgpt5tua0m1VP.pgp
Description: OpenPGP digital signature