From ec46c7c4a6d9e8660abe06bcff6e9fc3c624f1af Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Fri, 29 Jun 2018 13:41:52 -0600 Subject: numactl: fix build with glibc-2.26 (#8615) --- .../numactl/numactl-2.0.11-sysmacros.patch | 41 ++++++++++++++++++++++ .../repos/builtin/packages/numactl/package.py | 2 ++ 2 files changed, 43 insertions(+) create mode 100644 var/spack/repos/builtin/packages/numactl/numactl-2.0.11-sysmacros.patch diff --git a/var/spack/repos/builtin/packages/numactl/numactl-2.0.11-sysmacros.patch b/var/spack/repos/builtin/packages/numactl/numactl-2.0.11-sysmacros.patch new file mode 100644 index 0000000000..3f95367573 --- /dev/null +++ b/var/spack/repos/builtin/packages/numactl/numactl-2.0.11-sysmacros.patch @@ -0,0 +1,41 @@ +https://bugs.gentoo.org/580098 + +From c1644f92e340d797e490c41a9ef9961125d202b9 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Mon, 18 Apr 2016 18:49:51 -0400 +Subject: [PATCH] include sys/sysmacros.h for major/minor + +These functions are not part of any official spec, and glibc has always +kept them in sys/sysmacros.h. As glibc moves to conform to POSIX, and +more alternative C libraries come up, we need to include this header +explicitly to get the prototypes. Otherwise we fail to build like: + +affinity.c: In function 'affinity_file': +affinity.c:177:7: warning: implicit declaration of function 'major' [-Wimplicit-function-declaration] + if (major(d) != maj || minor(d) != min) + ^ +affinity.c:177:26: warning: implicit declaration of function 'minor' [-Wimplicit-function-declaration] + if (major(d) != maj || minor(d) != min) + ^ +./.libs/libnuma.so: undefined reference to 'minor' +./.libs/libnuma.so: undefined reference to 'major' +collect2: error: ld returned 1 exit status +--- + affinity.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/affinity.c b/affinity.c +index 9fbd6af..984291c 100644 +--- a/affinity.c ++++ b/affinity.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.7.4 + diff --git a/var/spack/repos/builtin/packages/numactl/package.py b/var/spack/repos/builtin/packages/numactl/package.py index fa962cc021..18123ec27e 100644 --- a/var/spack/repos/builtin/packages/numactl/package.py +++ b/var/spack/repos/builtin/packages/numactl/package.py @@ -33,6 +33,8 @@ class Numactl(AutotoolsPackage): version('2.0.11', 'b56d2367217cde390b4d8087e00773b8') + patch('numactl-2.0.11-sysmacros.patch', when="@2.0.11") + depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') -- cgit v1.2.3-70-g09d2