From: Bruno Haible Date: Tue, 18 Apr 2017 23:03:34 +0000 (+0200) Subject: vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9. X-Git-Tag: v1.0~6275 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=3a82bb79c68b1bf814ad1f5e7c5e34bbe6697a26;p=gnulib.git vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9. * modules/vma-iter (configure.ac): Test whether can be included. * lib/vma-iter.c: On Solaris, test HAVE_SYS_PROCFS_H before including . * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on Solaris when cannot be included. Reported by Tom G. Christensen . --- diff --git a/ChangeLog b/ChangeLog index f056a84f83..4c7113662a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2017-04-18 Bruno Haible + + vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9. + * modules/vma-iter (configure.ac): Test whether can be + included. + * lib/vma-iter.c: On Solaris, test HAVE_SYS_PROCFS_H before including + . + * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on Solaris when + cannot be included. + Reported by Tom G. Christensen . + 2017-04-18 Bruno Haible getopt-gnu: Add comments. diff --git a/lib/vma-iter.c b/lib/vma-iter.c index 7356188f15..d4bae13183 100644 --- a/lib/vma-iter.c +++ b/lib/vma-iter.c @@ -32,7 +32,7 @@ # include /* PIOC*, prmap_t */ #endif -#if defined __sun /* Solaris */ +#if defined __sun && HAVE_SYS_PROCFS_H /* Solaris */ # include /* memcpy */ # include # include /* mmap, munmap */ @@ -378,7 +378,7 @@ vma_iterate (vma_iterate_callback_fn callback, void *data) close (fd); return -1; -#elif defined __sun /* Solaris */ +#elif defined __sun && HAVE_SYS_PROCFS_H /* Solaris */ /* Note: Solaris defines a different type prmap_t with _STRUCTURED_PROC than without! Here's a table of sizeof(prmap_t): diff --git a/lib/vma-iter.h b/lib/vma-iter.h index bb1f3c1e76..95374efb65 100644 --- a/lib/vma-iter.h +++ b/lib/vma-iter.h @@ -52,7 +52,7 @@ extern int vma_iterate (vma_iterate_callback_fn callback, void *data); 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 diff --git a/modules/vma-iter b/modules/vma-iter index df9e7b8548..40e560532c 100644 --- a/modules/vma-iter +++ b/modules/vma-iter @@ -15,6 +15,8 @@ getpagesize configure.ac: gl_FUNC_MMAP_ANON AC_CHECK_FUNCS_ONCE([mquery pstat_getprocvm]) +dnl On Solaris <= 9, is unusable when AC_SYS_LARGEFILE is in use. +AC_CHECK_HEADERS([sys/procfs.h]) Makefile.am: lib_SOURCES += vma-iter.c