> Severity: serious
> Justification: fails to build from source (but built successfully in the past)
>
> Builds of likwid 4.1 on x32 fail:

Usually, FTBFS on a non-release architecture is not a RC bug.
However, in this case, the new code is so bogus that IMHO keeping this
severity is warranted.

You're supposed to never use the sysctl syscall on Linux.  It hasn't been
removed outright only because ancient glibc uses it to query kernel's
version and "we don't break userspace".  Any other use will spam syslog.
"man 2 sysctl" has some information.

So how come likwid calls it?  Turns out someone had the brilliant idea of
using autoconf... once.  The resultant config from some random machine is
hardcoded in the source.  This syscall does exist on darwin and freebsd.

If you want a dirty patch that solves symptoms but not the cause, fixing
FTBFS on x32 and syslog spam on amd64:

--- a/ext/hwloc/include/private/autogen/config.h
+++ b/ext/hwloc/include/private/autogen/config.h
@@ -330,7 +330,9 @@
 #define HAVE_SYNC_BUILTINS 1
 
 /* Define to '1' if sysctl is present and usable */
+#ifndef __linux__
 #define HAVE_SYSCTL 1
+#endif
 
 /* Define to '1' if sysctlbyname is present and usable */
 /* #undef HAVE_SYSCTLBYNAME */
@@ -359,7 +361,9 @@
 #define HAVE_SYS_STAT_H 1
 
 /* Define to 1 if you have the <sys/sysctl.h> header file. */
+#ifndef __linux__
 #define HAVE_SYS_SYSCTL_H 1
+#endif
 
 /* Define to 1 if you have the <sys/time.h> header file. */
 #define HAVE_SYS_TIME_H 1

-- 
An imaginary friend squared is a real enemy.

Reply via email to