ソースを参照

HPUX patch from Alexander Melnikov.

kenton@google.com 16 年 前
コミット
3aa7a0dafe

+ 2 - 0
CONTRIBUTORS.txt

@@ -72,3 +72,5 @@ Patch contributors:
     * Emacs mode for Protocol Buffers (editors/protobuf-mode.el).
   Scott Stafford <scott.stafford@gmail.com>
     * Added Swap(), SwapElements(), and RemoveLast() to Reflection interface.
+  Alexander Melnikov <alm@sibmail.ru>
+    * HPUX support.

+ 1 - 0
src/google/protobuf/compiler/importer.cc

@@ -59,6 +59,7 @@ namespace compiler {
 #ifndef F_OK
 #define F_OK 00  // not defined by MSVC for whatever reason
 #endif
+#include <ctype.h>
 #endif
 
 // Returns true if the text looks like a Windows-style absolute path, starting

+ 1 - 1
src/google/protobuf/io/zero_copy_stream_unittest.cc

@@ -520,7 +520,7 @@ TEST_F(IoTest, GzipFileIo) {
 // these debug assertions while in scope.
 class MsvcDebugDisabler {
  public:
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && _MSC_VER >= 1400
   MsvcDebugDisabler() {
     old_handler_ = _set_invalid_parameter_handler(MyHandler);
     old_mode_ = _CrtSetReportMode(_CRT_ASSERT, 0);

+ 1 - 1
src/google/protobuf/stubs/hash.h

@@ -98,7 +98,7 @@ template <typename Key,
 class hash_set : public std::set<Key, HashFcn> {
 };
 
-#elif defined(_MSC_VER)
+#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION)
 
 template <typename Key>
 struct hash : public HASH_NAMESPACE::hash_compare<Key> {

+ 1 - 1
src/google/protobuf/stubs/strutil.cc

@@ -1027,7 +1027,7 @@ char* DoubleToBuffer(double value, char* buffer) {
 bool safe_strtof(const char* str, float* value) {
   char* endptr;
   errno = 0;  // errno only gets set on errors
-#ifdef _WIN32  // has no strtof()
+#if defined(_WIN32) || defined (__hpux)  // has no strtof()
   *value = strtod(str, &endptr);
 #else
   *value = strtof(str, &endptr);

+ 1 - 0
src/google/protobuf/stubs/strutil.h

@@ -33,6 +33,7 @@
 #ifndef GOOGLE_PROTOBUF_STUBS_STRUTIL_H__
 #define GOOGLE_PROTOBUF_STUBS_STRUTIL_H__
 
+#include <stdlib.h>
 #include <vector>
 #include <google/protobuf/stubs/common.h>
 

+ 4 - 1
src/google/protobuf/testing/googletest.cc

@@ -46,6 +46,8 @@
 #endif
 #include <stdio.h>
 #include <fcntl.h>
+#include <iostream>
+#include <fstream>
 
 namespace google {
 namespace protobuf {
@@ -94,7 +96,8 @@ string GetTemporaryDirectoryName() {
   // tmpnam() is generally not considered safe but we're only using it for
   // testing.  We cannot use tmpfile() or mkstemp() since we're creating a
   // directory.
-  string result = tmpnam(NULL);
+  char b[L_tmpnam + 1];     // HPUX multithread return 0 if s is 0
+  string result = tmpnam(b);
 #ifdef _WIN32
   // On Win32, tmpnam() returns a file prefixed with '\', but which is supposed
   // to be used in the current working directory.  WTF?