Fixing compile errors on Solaris in 64-bit mode

This commit is contained in:
Mohamed El-Tahan 2015-09-02 11:34:23 -04:00
parent 0087da9d47
commit 97fa4ca156
4 changed files with 13 additions and 13 deletions

View File

@ -42,7 +42,6 @@ AC_DEFUN([ACX_CHECK_SUNCC],[
AS_IF([test "x$ac_enable_64bit" = "xyes"],[ AS_IF([test "x$ac_enable_64bit" = "xyes"],[
AC_DEFINE([SOLARIS_64BIT_ENABLED], [1], [64bit enabled])
AS_IF([test "x$libdir" = "x\${exec_prefix}/lib"],[ AS_IF([test "x$libdir" = "x\${exec_prefix}/lib"],[
dnl The user hasn't overridden the default libdir, so we'll dnl The user hasn't overridden the default libdir, so we'll
dnl the dir suffix to match solaris 32/64-bit policy dnl the dir suffix to match solaris 32/64-bit policy
@ -52,17 +51,13 @@ AC_DEFUN([ACX_CHECK_SUNCC],[
dnl This should just be set in CPPFLAGS and in LDFLAGS, but libtool dnl This should just be set in CPPFLAGS and in LDFLAGS, but libtool
dnl does the wrong thing if you don't put it into CXXFLAGS. sigh. dnl does the wrong thing if you don't put it into CXXFLAGS. sigh.
dnl (It also needs it in CFLAGS, or it does a different wrong thing!) dnl (It also needs it in CFLAGS, or it does a different wrong thing!)
AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],[ CXXFLAGS="${CXXFLAGS} -m64"
CXXFLAGS="${CXXFLAGS} -m64" ac_cv_env_CXXFLAGS_set=set
ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-m64'
ac_cv_env_CXXFLAGS_value='-m64'
])
AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],[ CFLAGS="${CFLAGS} -m64"
CFLAGS="${CFLAGS} -m64" ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-m64'
ac_cv_env_CFLAGS_value='-m64'
])
AS_IF([test "$target_cpu" = "sparc" -a "x$SUNCC" = "xyes" ],[ AS_IF([test "$target_cpu" = "sparc" -a "x$SUNCC" = "xyes" ],[
CXXFLAGS="-xmemalign=8s ${CXXFLAGS}" CXXFLAGS="-xmemalign=8s ${CXXFLAGS}"

View File

@ -33,6 +33,7 @@
// Sanjay Ghemawat, Jeff Dean, and others. // Sanjay Ghemawat, Jeff Dean, and others.
#include <google/protobuf/compiler/command_line_interface.h> #include <google/protobuf/compiler/command_line_interface.h>
#include <google/protobuf/stubs/platform_macros.h>
#include <stdio.h> #include <stdio.h>
#include <sys/types.h> #include <sys/types.h>
@ -48,6 +49,10 @@
#include <iostream> #include <iostream>
#include <ctype.h> #include <ctype.h>
#ifdef GOOGLE_PROTOBUF_ARCH_SPARC
#include <limits.h> //For PATH_MAX
#endif
#include <memory> #include <memory>
#ifndef _SHARED_PTR_H #ifndef _SHARED_PTR_H
#include <google/protobuf/stubs/shared_ptr.h> #include <google/protobuf/stubs/shared_ptr.h>

View File

@ -76,7 +76,7 @@ typedef int32 Atomic32;
#ifdef GOOGLE_PROTOBUF_ARCH_64_BIT #ifdef GOOGLE_PROTOBUF_ARCH_64_BIT
// We need to be able to go between Atomic64 and AtomicWord implicitly. This // We need to be able to go between Atomic64 and AtomicWord implicitly. This
// means Atomic64 and AtomicWord should be the same type on 64-bit. // means Atomic64 and AtomicWord should be the same type on 64-bit.
#if defined(__ILP32__) || defined(GOOGLE_PROTOBUF_OS_NACL) || defined(GOOGLE_PROTOBUF_ARCH_SPARC) #if defined(__ILP32__) || defined(GOOGLE_PROTOBUF_OS_NACL)
// NaCl's intptr_t is not actually 64-bits on 64-bit! // NaCl's intptr_t is not actually 64-bits on 64-bit!
// http://code.google.com/p/nativeclient/issues/detail?id=1162 // http://code.google.com/p/nativeclient/issues/detail?id=1162
// sparcv9's pointer type is 32bits // sparcv9's pointer type is 32bits

View File

@ -65,7 +65,7 @@
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
#elif defined(sparc) #elif defined(sparc)
#define GOOGLE_PROTOBUF_ARCH_SPARC 1 #define GOOGLE_PROTOBUF_ARCH_SPARC 1
#ifdef SOLARIS_64BIT_ENABLED #if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1 #define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#else #else
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1