Code

processes: Fix build for Solaris 32-bit binary
authorJan Andres <jandres@gmx.net>
Sat, 31 Jan 2015 08:43:30 +0000 (09:43 +0100)
committerJan Andres <jandres@gmx.net>
Sat, 31 Jan 2015 09:08:00 +0000 (10:08 +0100)
Work around a #error in <sys/procfs.h> that occurs when building a
32-bit binary with _FILE_OFFSET_BITS=64. This uses a hack similar
to the one in swap.c.

src/processes.c

index fb88a3153e1e150618805141404da25100602498..f5f293a409dc0ba1ae47436d602caeb239a6e65e 100644 (file)
 /* #endif HAVE_PROCINFO_H */
 
 #elif KERNEL_SOLARIS
+/* Hack: Avoid #error when building a 32-bit binary with
+ * _FILE_OFFSET_BITS=64. There is a reason for this #error, as one
+ * of the structures in <sys/procfs.h> uses an off_t, but that
+ * isn't relevant to our usage of procfs. */
+#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
+#  define SAVE_FOB_64
+#  undef _FILE_OFFSET_BITS
+#endif
+
 # include <procfs.h>
+
+#ifdef SAVE_FOB_64
+#  define _FILE_OFFSET_BITS 64
+#  undef SAVE_FOB_64
+#endif
+
 # include <dirent.h>
 /* #endif KERNEL_SOLARIS */