From 1d81cf994a85ddc0cc6c0626928c33cb8d94ea6d Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Mon, 17 Sep 2007 15:18:35 -0400 Subject: [PATCH] COMP: add a check for makedev, which isn't available with the PGI compiler on Cray XT3 Alex --- Utilities/cmtar/CMakeLists.txt | 1 + Utilities/cmtar/config.h.in | 3 +++ Utilities/cmtar/internal.h | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/Utilities/cmtar/CMakeLists.txt b/Utilities/cmtar/CMakeLists.txt index e1d86518a..6450338f9 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 b3b7f5ccc..db619b023 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 header file. */ #cmakedefine HAVE_CTYPE_H @HAVE_CTYPE_H@ diff --git a/Utilities/cmtar/internal.h b/Utilities/cmtar/internal.h index 01dc9030c..c1bba632b 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 +