summaryrefslogtreecommitdiffstats
path: root/Utilities
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities')
-rw-r--r--Utilities/cmtar/CMakeLists.txt1
-rw-r--r--Utilities/cmtar/config.h.in3
-rw-r--r--Utilities/cmtar/internal.h8
3 files changed, 12 insertions, 0 deletions
diff --git a/Utilities/cmtar/CMakeLists.txt b/Utilities/cmtar/CMakeLists.txt
index e1d8651..6450338 100644
--- a/Utilities/cmtar/CMakeLists.txt
+++ b/Utilities/cmtar/CMakeLists.txt
@@ -107,6 +107,7 @@ FOREACH(func
glob
major
minor
+ makedev
)
CHECK_SYMBOL_EXISTS_EX("${func}")
ENDFOREACH(func)
diff --git a/Utilities/cmtar/config.h.in b/Utilities/cmtar/config.h.in
index b3b7f5c..db619b0 100644
--- a/Utilities/cmtar/config.h.in
+++ b/Utilities/cmtar/config.h.in
@@ -9,6 +9,9 @@
/* Define if your system has a working minor */
#cmakedefine HAVE_MINOR @HAVE_MINOR@
+/* Define if your system has a working minor */
+#cmakedefine HAVE_MAKEDEV @HAVE_MAKEDEV@
+
/* Define to 1 if you have the <ctype.h> header file. */
#cmakedefine HAVE_CTYPE_H @HAVE_CTYPE_H@
diff --git a/Utilities/cmtar/internal.h b/Utilities/cmtar/internal.h
index 01dc903..c1bba63 100644
--- a/Utilities/cmtar/internal.h
+++ b/Utilities/cmtar/internal.h
@@ -25,3 +25,11 @@
#ifndef HAVE_MINOR
# define minor(dev) ((int)((dev) & 0xff))
#endif
+/* On Cray XT3 when using thr PGI pgcc 7.0.4 sys/sysmacros.h ends up without
+ makedev(), since __i386__ is not defined when GLIBC_HAVE_LONG_LONG should
+ be enabled in features.h */
+#ifndef HAVE_MAKEDEV
+# define makedev(major, minor) ((((int)((major) & 0xff)) << 8 ) \
+ | ((int)((minor) & 0xff)) )
+#endif
+