diff --git a/numactl-clearcache-pie.patch b/numactl-clearcache-pie.patch new file mode 100644 index 0000000..4809ce7 --- /dev/null +++ b/numactl-clearcache-pie.patch @@ -0,0 +1,28 @@ +--- numactl-2.0.10.orig/clearcache.c ++++ numactl-2.0.10/clearcache.c +@@ -54,24 +54,5 @@ void fallback_clearcache(void) + + void clearcache(unsigned char *mem, unsigned size) + { +-#if defined(__i386__) || defined(__x86_64__) +- unsigned i, cl, eax, feat; +- /* get clflush unit and feature */ +- asm("cpuid" : "=a" (eax), "=b" (cl), "=d" (feat) : "0" (1) : "cx"); +- if (!(feat & (1 << 19))) +- fallback_clearcache(); +- cl = ((cl >> 8) & 0xff) * 8; +- for (i = 0; i < size; i += cl) +- asm("clflush %0" :: "m" (mem[i])); +-#elif defined(__ia64__) +- unsigned long cl, endcl; +- // flush probable 128 byte cache lines (but possibly 64 bytes) +- cl = (unsigned long)mem; +- endcl = (unsigned long)(mem + (size-1)); +- for (; cl <= endcl; cl += 64) +- asm ("fc %0" :: "r"(cl) : "memory" ); +-#else +-#warning "Consider adding a clearcache implementation for your architecture" +- fallback_clearcache(); +-#endif ++ __builtin___clear_cache(mem, (mem + (size-1))); + } diff --git a/numactl.changes b/numactl.changes index a95310c..a9d4709 100644 --- a/numactl.changes +++ b/numactl.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Feb 23 16:28:34 UTC 2015 - crrodriguez@opensuse.org + +- package fails to build with PIE globally enabled, due to + error: inconsistent operand constraints in an 'asm'. + Turns out there is a GCC builtin for doing the operation + cleanly. (numactl-clearcache-pie.patch) + ------------------------------------------------------------------- Tue Jan 27 11:07:47 UTC 2015 - trenn@suse.de diff --git a/numactl.spec b/numactl.spec index 24dcd15..df6a070 100644 --- a/numactl.spec +++ b/numactl.spec @@ -1,7 +1,7 @@ # # spec file for package numactl # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,6 +30,7 @@ Source2: baselibs.conf Patch0: revert_date_in_numastat.patch # PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: 0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch +Patch2: numactl-clearcache-pie.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} > 1110 BuildRequires: autoconf >= 2.64 @@ -64,7 +65,7 @@ individual NUMA policy in applications. %setup -q %patch0 -p1 %patch1 -p1 - +%patch2 -p1 %build %if 0%{?suse_version} > 1110 autoconf