diff --git a/Utilities/cmlibarchive/libarchive/archive.h b/Utilities/cmlibarchive/libarchive/archive.h
index 9d84121..ec63bc0 100644
--- a/Utilities/cmlibarchive/libarchive/archive.h
+++ b/Utilities/cmlibarchive/libarchive/archive.h
@@ -35,7 +35,9 @@
  * this header!  If you must conditionalize, use predefined compiler and/or
  * platform macros.
  */
-#if defined(__BORLANDC__) && __BORLANDC__ >= 0x560
+#if defined(__osf__)
+# define __LA_STDINT_H "archive_stdint.h"
+#elif defined(__BORLANDC__) && __BORLANDC__ >= 0x560
 # define __LA_STDINT_H <stdint.h>
 #elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__)
 # define __LA_STDINT_H <inttypes.h>
diff --git a/Utilities/cmlibarchive/libarchive/archive_endian.h b/Utilities/cmlibarchive/libarchive/archive_endian.h
index 067312d..c05410b 100644
--- a/Utilities/cmlibarchive/libarchive/archive_endian.h
+++ b/Utilities/cmlibarchive/libarchive/archive_endian.h
@@ -46,7 +46,7 @@
  * - SunPro C
  * - Microsoft Visual C++ 6.0 (supposedly newer versions too)
  */
-#if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__) || defined(__SUNPRO_C)
+#if defined(__WATCOMC__) || defined(__sgi) || defined(__hpux) || defined(__BORLANDC__) || defined(__SUNPRO_C) || defined(__osf__)
 #define inline
 #elif defined(_MSC_VER)
 #define inline __inline
diff --git a/Utilities/cmlibarchive/libarchive/archive_platform.h b/Utilities/cmlibarchive/libarchive/archive_platform.h
index c90057f..da2c625 100644
--- a/Utilities/cmlibarchive/libarchive/archive_platform.h
+++ b/Utilities/cmlibarchive/libarchive/archive_platform.h
@@ -59,6 +59,13 @@
 #if HAVE_STDINT_H
 #include <stdint.h>
 #endif
+#if !defined(HAVE_INTTYPES_H) && !defined(HAVE_STDINT_H)
+#include "archive_stdint.h"
+#endif
+
+#ifndef HAVE_ID_T
+#define id_t pid_t
+#endif
 
 /* It should be possible to get rid of this by extending the feature-test
  * macros to cover Windows API functions, probably along with non-trivial
diff --git a/Utilities/cmlibarchive/libarchive/archive_stdint.h b/Utilities/cmlibarchive/libarchive/archive_stdint.h
new file mode 100644
index 0000000..823199a
--- /dev/null
+++ b/Utilities/cmlibarchive/libarchive/archive_stdint.h
@@ -0,0 +1,8 @@
+/* archive_stdint.h */
+
+typedef unsigned int uint32_t;
+
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+/* end archive_stdint.h */
