> > Perhaps adding && !(__X86_64__ && __ILP32__) in there as well would fix it?
>
> That check is for sys/sysctl.h, if that file still exists on X32 then
> it's not the right macro to fix.
> A better fix would be around HAVE_DECL_RANDOM_UUID in config.h.guess.
> ...
> A suitable fix would be to pass `-DHAVE_DECL_RANDOM_UUID=0` on X32.

It exists, but accessing it triggers a preprocessor #error saying it
doesn't work on x32:
https://github.com/lattera/glibc/blob/master/sysdeps/unix/sysv/linux/x86/bits/sysctl.h

If I'm reading it right, the sys/sysctl.h test in config.guess.h will
pass, because it uses __has_include. It will define HAVE_SYS_SYSCTL_H,
which is used in src/openssl.c:

#if HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h> /* CTL_KERN KERN_RANDOM RANDOM_UUID sysctl(2) */
#endif

and then as I understand it, it will break at the preprocessor stage,
before it gets to:
#if HAVE_SYS_SYSCTL_H && HAVE_DECL_RANDOM_UUID

This is where it came up before (didn't see it in archived bugs
because the package was renamed):
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831333

--
Laurence "GreenReaper" Parry

Reply via email to