From d225dfaeabd434e41ee70cd7dc8eecf07aa1bb96 Mon Sep 17 00:00:00 2001 From: Tijl Coosemans Date: Thu, 22 Feb 2018 18:02:01 +0000 Subject: Add a patch to work around a buffer overrun in cpuset_getid in FreeBSD 11.1. This caused a crash when compiled with Clang due to a different stack layout compared to GCC. PR: 225229 See also: https://github.com/open-mpi/hwloc/issues/282 --- devel/hwloc/files/patch-src_topology-x86.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 devel/hwloc/files/patch-src_topology-x86.c (limited to 'devel/hwloc/files/patch-src_topology-x86.c') diff --git a/devel/hwloc/files/patch-src_topology-x86.c b/devel/hwloc/files/patch-src_topology-x86.c new file mode 100644 index 000000000000..cd586b456de2 --- /dev/null +++ b/devel/hwloc/files/patch-src_topology-x86.c @@ -0,0 +1,17 @@ +--- src/topology-x86.c.orig 2017-04-19 15:19:38 UTC ++++ src/topology-x86.c +@@ -997,7 +997,14 @@ int hwloc_look_x86(struct hwloc_backend *backend, int + unsigned features[10] = { 0 }; + struct procinfo *infos = NULL; + enum cpuid_type cpuid_type = unknown; ++#if defined HWLOC_FREEBSD_SYS && defined HAVE_CPUSET_SETID \ ++ && __FreeBSD_version >= 1101000 && __FreeBSD_version < 1102000 ++ /* Buffer overrun in cpuset_getid in FreeBSD 11.1 */ ++ hwloc_x86_os_state_t os_state[2]; ++#define os_state os_state[0] ++#else + hwloc_x86_os_state_t os_state; ++#endif + struct hwloc_binding_hooks hooks; + struct hwloc_topology_support support; + struct hwloc_topology_membind_support memsupport __hwloc_attribute_unused; -- cgit v1.2.3