$ gmp-ecm gmp-ecm: symbol lookup error: /lib64/libecm.so.0: undefined symbol: __gmpn_add_nc $ rpm -q gmp-ecm gmp-ecm-6.4.4-6.fc23.x86_64.rpm Rebuilding the package corrects the problem: $ rpm -q gmp-ecm gmp-ecm-6.4.4-6.fc24.x86_64 $ gmp-ecm Invalid arguments. See gmp-ecm --help.
I have rebuilt it. But this worries me. Does this mean that gmp dropped a symbol without bumping the soname?
The symbol is not public. gmp-ecm "cheats" at build time, and uses it if it is available, and even adds a prototype to it, like this, on a header not installed: #ifdef HAVE___GMPN_ADD_NC #ifndef __gmpn_add_nc __GMP_DECLSPEC mp_limb_t __gmpn_add_nc (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t, mp_limb_t); #endif #endif I checked newer gmp, and I believe it reworked the __gmpn_add_nc symbol: $ objdump -T /lib64/libgmp.so|grep __gmpn_add_nc | awk '{print $7;}' __gmpn_add_nc_coreisbr __gmpn_add_nc_pentium4 __gmpn_add_nc_x86_64 __gmpn_add_nc_bobcat __gmpn_add_nc_atom __gmpn_add_nc_core2 Previously, there was a single __gmpn_add_nc symbol.
Oh, I see. Thanks for the explanation. I'll close this as fixed, then.