On Thu, Mar 25, 2021 at 1:20 PM Jeffrey Walton <[email protected]> wrote:
>
> On Thu, Mar 25, 2021 at 3:48 AM Niels Möller <[email protected]> wrote:
> >
> > Jeffrey Walton <[email protected]> writes:
> >
> > > It looks like Nettle is no longer building or installing hogweed on
> > > some Apple platforms.
> > >
> > > This is from a PowerMac G5 running OS X 10.5:
> >
> > Most likely the configure check for libgmp failed. Check config.log for
> > details. I think the most recent change to the gmp dependency was in
> > nettle-3.6, which requires gmp-6.1 or later.
>
> Here is what the GMP install looks like:
>
> $ ls -al /usr/local/lib/*gmp*
> -rwxr-xr-x 1 root wheel 543216 Mar 24 21:39 /usr/local/lib/libgmp.10.dylib
> -rw-r--r-- 1 root wheel 3078944 Mar 24 21:39 /usr/local/lib/libgmp.a
> lrwxr-xr-x 1 root wheel 15 Mar 24 21:39
> /usr/local/lib/libgmp.dylib -> libgmp.10.dylib
> -rwxr-xr-x 1 root wheel 947 Mar 24 21:39 /usr/local/lib/libgmp.la
>
> And:
>
> $ cat /usr/local/lib/pkgconfig/gmp.pc
> prefix=/usr/local
> exec_prefix=${prefix}
> includedir=${prefix}/include
> libdir=${prefix}/lib
>
> Name: GNU MP
> Description: GNU Multiple Precision Arithmetic Library
> URL: https://gmplib.org
> Version: 6.2.1
> Cflags: -I${includedir}
> Libs: -L${libdir} -lgmp
>
> Attached is config.log.
OK, so I can work around this with:
./configure \
ac_cv_lib_gmp___gmpn_zero_p=yes
But the test is shady. It does not include the proper header and then
looks for a mangled symbol name. If you would have used the proper
header then gmpn_zero_p would have been available to you.
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char __gmpn_zero_p ();
| int
| main ()
| {
| return __gmpn_zero_p ();
| ;
| return 0;
| }
GMP needs a fair amount of patching on OS X 10.5 due to the extern
inline problems. Here's what my patches look like:
https://github.com/noloader/Build-Scripts/blob/master/patch/gmp-darwin.patch.
It includes a patch for mpn_zero_p.
The GMP folks have been aware of the problem for about 15 years but
have not fixed it. Also see
https://gmplib.org/list-archives/gmp-bugs/2009-May/001423.html. I also
wrote to one of the maintainers and offered the patch. "Patches
welcome" is utter bullshit in the free software world. I laugh when I
see someone use the phrase.
I think you should reconsider how you do things. The recommended way
to check for a version of the library is with pkg-config. I.e.:
pkg-config --libs "gmp >= 6.1.0"
I also think you should pay more attention to the dominant use case of
nettle+hogweed. It is dominant because distros and users expect/need
nettle+hogweed. GnuTLS requires nettle+hogweed. (Can you name anyone
who just wants nettle?).
The current behavior of silent failure is not appropriate. You should
fail configure _if_ GMP is not satisfactory in the absence of
--disable-hogweed. Folks who do not want hogweed are _not_ the
majority. They should have to do something special like
--disable-hogweed. That's good security engineering.
Jeff
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs