You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King III (JIRA)" <ji...@apache.org> on 2019/01/11 14:20:00 UTC

[jira] [Commented] (THRIFT-3924) Make C++ library build on SunOS with the Sun compiler

    [ https://issues.apache.org/jira/browse/THRIFT-3924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16740422#comment-16740422 ] 

James E. King III commented on THRIFT-3924:
-------------------------------------------

THRIFT-4720 moved the C++ side to C++11.  We don't have access to a SunCC / solaris compiler to do this work.  It would need to be submitted by pull request an taken on faith that it works.

> Make C++ library build on SunOS with the Sun compiler
> -----------------------------------------------------
>
>                 Key: THRIFT-3924
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3924
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: 1.upgrade thrift from 0.9.0 to 0.9.2
> 2.SunOS
> 3./opt/SUNWspro/prod/include/CC/Cstd
> 4.CC compiler
>            Reporter: Guoguang Lan
>            Priority: Minor
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> when Both Clang and GNUC are not define , there is an error!
> 1.upgrade thrift from 0.9.0 to 0.9.2
> 2.SunOS
> 3./opt/SUNWspro/prod/include/CC/Cstd
> compile: CC -DHAVE_CONFIG_H -I. -I../.. -I../../lib/cpp/src/thrift -I/CBB_3rdTools/server/OpenSource/src/thrift/thrift-0.9.2/boost_1_57_0//include -I./src -D_POSIX_PTHREAD_SEMANTICS -D_SUN_ -DSUN -I/CBB_3rdTools/server/OpenSource/src/thrift/thrift-0.9.2/openssl/include -I/CBB_3rdTools/server/OpenSource/src/thrift/thrift-0.9.2/boost_1_57_0/include/boost/tr1 -Wextra -pedantic -g -c src/thrift/transport/TFileTransport.cpp -KPIC -DPIC -o src/thrift/transport/.libs/TFileTransport.o CC: Warning: Option -Wextra passed to ld, if ld is invoked, ignored otherwise CC: Warning: Option -pedantic passed to ld, if ld is invoked, ignored otherwise "./src/thrift/cxxfunctional.h", line 124: Error: stdcxx is not a member of apache::thrift.
> when i modify the code like this:
> `#ifdef clang
> /* Clang has two options, depending on standard library:
> - no -stdlib or -stdlib=libstdc++ set; uses GNU libstdc++.
> - -stdlib=libc++; uses LLVM libc++.
> , no 'std::tr1'. *
> The compiler itself doesn't define anything differently
> depending on the value of -stdlib, but the library headers
> will set different preprocessor options. In order to check,
> though, we have to pull in some library header.
> */
> #include
> /* With LLVM libc++, utility pulls in __config, which sets
> _LIBCPP_VERSION. */
> #if defined(_LIBCPP_VERSION)
> #define _THRIFT_USING_CLANG_LIBCXX 1
> /* With GNU libstdc++, utility pulls in bits/c++config.h,
> which sets GLIBCXX. */
> #elif defined(GLIBCXX)
> #define _THRIFT_USING_GNU_LIBSTDCXX 1
> /* No idea. /
> #else
> #error Unable to detect which C++ standard library is in use.
> #endif
> #elif GNUC
> #define _THRIFT_USING_GNU_LIBSTDCXX 1
> / No idea. */
> #else
> #error Unable to detect which C++ standard library is in use. Both Clang and GNUC are not define!
> #endif`
> output:
> "./src/thrift/cxxfunctional.h", line 71: Error: #error Unable to detect which C++ standard library is in use. Both Clang and GNUC are not define!.
> Thank you!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)