diff --git a/Utilities/cmtar/CMakeLists.txt b/Utilities/cmtar/CMakeLists.txt
index 6b8f4b6a4ac29da2f575e4b4a8aa7b1fa4b6ce40..d79052be3ff0646c96a7e5ec6eb8fb182987e413 100644
--- a/Utilities/cmtar/CMakeLists.txt
+++ b/Utilities/cmtar/CMakeLists.txt
@@ -99,6 +99,8 @@ FOREACH(func
     strftime
     vsnprintf
     glob
+    major
+    minor
     )
   CHECK_SYMBOL_EXISTS_EX("${func}")
 ENDFOREACH(func)
diff --git a/Utilities/cmtar/config.h.in b/Utilities/cmtar/config.h.in
index 05a7710b04bdb501ede85807e03b23c64e2c1a90..1b34680ee88849d7457fc431c86ce7f172bc7d96 100644
--- a/Utilities/cmtar/config.h.in
+++ b/Utilities/cmtar/config.h.in
@@ -3,6 +3,12 @@
 /* Define if your system has a working basename */
 #cmakedefine HAVE_BASENAME @HAVE_BASENAME@
 
+/* Define if your system has a working major */
+#cmakedefine HAVE_MAJOR @HAVE_MAJOR@
+
+/* Define if your system has a working minor */
+#cmakedefine HAVE_MINOR @HAVE_MINOR@
+
 /* 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 60be2af41a4ee2977be936035b9c92eaef8d9029..a382abd6d6cb4336f2190e04b06e6ff0ed710fcb 100644
--- a/Utilities/cmtar/internal.h
+++ b/Utilities/cmtar/internal.h
@@ -15,9 +15,9 @@
 
 #include <libtar/libtar.h>
 
-#ifndef major
+#ifndef HAVE_MAJOR
 # define major(dev) ((int)(((dev) >> 8) & 0xff))
 #endif
-#ifndef minor
+#ifndef HAVE_MINOR
 # define minor(dev) ((int)((dev) & 0xff))
 #endif