Bug#878705: opencv: FTBFS on x32: sysctl(.h) unsupported

Aaron M. Ucko ucko at debian.org
Mon Oct 16 14:41:56 UTC 2017


Mattia Rizzolo <mattia at debian.org> writes:

> Hi Aaron,

Hi, Mattia.

Thanks for the quick response!  I can't readily test a fix[1], but
suspect the problem is the second half of

>     #elif defined __APPLE__ || !defined __GNU__

which results in trying to #include <sys/sysctl.h> on a wide range of
architectures.  (Only the Hurd predefines __GNU__.)  Seeing as cmake
detects that <sys/sysctl.h> is unusable on x32, I'd suggest merging and
simplifying the second and third branches to something along the lines of

#if defined __linux__ || defined __APPLE__ ||  defined __GLIBC__
    #include <unistd.h>
    #include <stdio.h>
    #include <sys/types.h>
    #if defined __ANDROID__
        #include <sys/sysconf.h>
    #elif defined HAVE_SYS_SYSCTL_H
        #include <sys/sysctl.h>
    #endif
#endif

[1] I'm not a porter or buildd maintainer, just a regular DD who cares
    about portability and checks buildd logs from anything building
    binary packages newly showing up on amd64 and/or i386.

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?amu@monk.mit.edu



More information about the debian-science-maintainers mailing list