+2017-04-18 Bruno Haible <bruno@clisp.org>
+
+ vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9.
+ * modules/vma-iter (configure.ac): Test whether <sys/procfs.h> can be
+ included.
+ * lib/vma-iter.c: On Solaris, test HAVE_SYS_PROCFS_H before including
+ <sys/procfs.h>.
+ * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on Solaris when
+ <sys/procfs.h> cannot be included.
+ Reported by Tom G. Christensen <tgc@jupiterrise.com>.
+
2017-04-18 Bruno Haible <bruno@clisp.org>
getopt-gnu: Add comments.
# include <sys/procfs.h> /* PIOC*, prmap_t */
#endif
-#if defined __sun /* Solaris */
+#if defined __sun && HAVE_SYS_PROCFS_H /* Solaris */
# include <string.h> /* memcpy */
# include <sys/types.h>
# include <sys/mman.h> /* mmap, munmap */
close (fd);
return -1;
-#elif defined __sun /* Solaris */
+#elif defined __sun && HAVE_SYS_PROCFS_H /* Solaris */
/* Note: Solaris <sys/procfs.h> defines a different type prmap_t with
_STRUCTURED_PROC than without! Here's a table of sizeof(prmap_t):
this platform.
Note that even when this macro is defined, vma_iterate() may still fail to
find any virtual memory area, for example if /proc is not mounted. */
-#if defined __linux__ || defined __FreeBSD__ || defined __NetBSD__ || defined __sgi || defined __osf__ || defined __sun || HAVE_PSTAT_GETPROCVM || (defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __WIN32__) || defined __CYGWIN__ || defined __BEOS__ || defined __HAIKU__ || HAVE_MQUERY
+#if defined __linux__ || defined __FreeBSD__ || defined __NetBSD__ || defined __sgi || defined __osf__ || (defined __sun && HAVE_SYS_PROCFS_H) || HAVE_PSTAT_GETPROCVM || (defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __WIN32__) || defined __CYGWIN__ || defined __BEOS__ || defined __HAIKU__ || HAVE_MQUERY
# define VMA_ITERATE_SUPPORTED 1
#endif
configure.ac:
gl_FUNC_MMAP_ANON
AC_CHECK_FUNCS_ONCE([mquery pstat_getprocvm])
+dnl On Solaris <= 9, <sys/procfs.h> is unusable when AC_SYS_LARGEFILE is in use.
+AC_CHECK_HEADERS([sys/procfs.h])
Makefile.am:
lib_SOURCES += vma-iter.c