You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Philippe STRAUSS (JIRA)" <ji...@apache.org> on 2011/09/06 15:47:09 UTC

[jira] [Created] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
-----------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: THRIFT-1325
                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Library
         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
            Reporter: Philippe STRAUSS
            Priority: Blocker
             Fix For: 0.8


I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(

+ /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
Undefined symbols:
  "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
      apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
  "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
      apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
      apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
ld: symbol(s) not found
collect2: ld a retourné 1 code d'état d'exécution



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Commented] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Jake Farrell (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152605#comment-13152605 ] 

Jake Farrell commented on THRIFT-1325:
--------------------------------------

Please see http://wiki.apache.org/thrift/HowToContribute for submitting patches
                
> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Priority: Blocker
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Updated] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Brandon Arp (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brandon Arp updated THRIFT-1325:
--------------------------------

    Attachment: gcc_4_6_1_fix.txt

I think this will fix it.
                
> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Priority: Blocker
>         Attachments: gcc_4_6_1_fix.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Commented] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165194#comment-13165194 ] 

Hudson commented on THRIFT-1325:
--------------------------------

Integrated in Thrift #352 (See [https://builds.apache.org/job/Thrift/352/])
    THRIFT-1325 Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
Patch: Brandon Arp

roger : http://svn.apache.org/viewvc/?view=rev&rev=1211842
Files : 
* /thrift/trunk/lib/cpp/src/protocol/TBinaryProtocol.h
* /thrift/trunk/lib/cpp/src/protocol/TDenseProtocol.h

                
> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Assignee: Roger Meier
>            Priority: Blocker
>         Attachments: gcc_4_6_1_fix.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Commented] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Nathan Slingerland (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152520#comment-13152520 ] 

Nathan Slingerland commented on THRIFT-1325:
--------------------------------------------

I can confirm that the fix described above works (tried on Fedora 15 x86_64 - gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)).

=========================
Index: TBinaryProtocol.h
===================================================================
--- TBinaryProtocol.h   (revision 801)
+++ TBinaryProtocol.h   (revision 802)
@@ -36,8 +36,14 @@
 class TBinaryProtocolT
  : public TVirtualProtocol< TBinaryProtocolT<Transport_> > {
 protected:
+#if 0
  static const int32_t VERSION_MASK = 0xffff0000;
  static const int32_t VERSION_1 = 0x80010000;
+#else
+  // https://issues.apache.org/jira/browse/THRIFT-1325
+  static const int32_t VERSION_MASK = ((int32_t)0xffff0000);
+  static const int32_t VERSION_1 = ((int32_t)0x80010000);
+#endif
  // VERSION_2 (0x80020000)  is taken by TDenseProtocol.

 public:


 changes
=========================
Index: TDenseProtocol.h
===================================================================
--- TDenseProtocol.h    (revision 801)
+++ TDenseProtocol.h    (revision 802)
@@ -59,9 +59,16 @@
 class TDenseProtocol
  : public TVirtualProtocol<TDenseProtocol, TBinaryProtocol> {
 protected:
+#if 0
  static const int32_t VERSION_MASK = 0xffff0000;
  // VERSION_1 (0x80010000)  is taken by TBinaryProtocol.
  static const int32_t VERSION_2 = 0x80020000;
+#else
+  // https://issues.apache.org/jira/browse/THRIFT-1325
+  static const int32_t VERSION_MASK = ((int32_t)0xffff0000);
+  // VERSION_1 (0x80010000)  is taken by TBinaryProtocol.
+  static const int32_t VERSION_2 = ((int32_t)0x80020000);
+#endif

 public:
  typedef apache::thrift::reflection::local::TypeSpec TypeSpec;

                
> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Priority: Blocker
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Commented] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Matthieu Imbert (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13098665#comment-13098665 ] 

Matthieu Imbert commented on THRIFT-1325:
-----------------------------------------

i had the same issue on debian linux, also with gcc 4.6.1.
i think this is a bug in gcc. I filled a bug to gcc here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49896
for example, gcc 4.6 does not like:

static const int32_t VERSION_1 = 0x80010000;

because 0x80010000 is an unsigned int 32 literal.

one solution might be to replace in thrift includes the version
constants with the same constant already converted to a signed
literal:

in TBinaryProtocol.h, replace:
  
- static const int32_t VERSION_MASK = 0xffff0000;

  by

  static const int32_t VERSION_MASK = -0x00010000;

- static const int32_t VERSION_1 = 0x80010000;

  by

  static const int32_t VERSION_1 = -0x7fff0000;

in TDenseProtocol.h, replace:

- static const int32_t VERSION_2 = 0x80020000;

  by static const int32_t VERSION_2 = -0x7ffe0000;

i haven't tested it though.


> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Priority: Blocker
>             Fix For: 0.8
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Resolved] (THRIFT-1325) Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT::VERSION_MASK"

Posted by "Roger Meier (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-1325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roger Meier resolved THRIFT-1325.
---------------------------------

    Resolution: Fixed
      Assignee: Roger Meier

updated patch to trunk and committed!
Thanks Philippe!
                
> Thrift SVN and latest GCC issue: Undefined symbols: "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK"
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-1325
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1325
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>         Environment: Mac OS 10.6.8 x86_64, GNU GCC 4.6.1 hand compiled
>            Reporter: Philippe STRAUSS
>            Assignee: Roger Meier
>            Priority: Blocker
>         Attachments: gcc_4_6_1_fix.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> I need latest gcc for a pet project of mine using intrisics. Using GCC 4.6.1, building code generated by thrift for a C++ server, I always get the error cut and pasted below at link time. Using apple shipped gcc 4.2.1 it build (link) fine, but cannot use it for another part of my project :(
> + /opt/gnucc/bin/g++ -g -DDEBUG -I/usr/local/include -I/opt/local/include -I/opt/misc/include -I/opt/misc/include/thrift -I/opt/av/include -I/opt/num/include -o jack_preamp.nat jack_preamp.o rc_types.o rc_constants.o Control.o ../common_c/libcommon.a ../jackc/libjackc.a ../config/libcf.a ../libsigpath/libsigpath.a -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -L/opt/local/lib -lsndfile -L/opt/misc/lib -lconfig -L/opt/misc/lib -lthrift -L/opt/av/lib -L/opt/num/lib -lconvolve -lsndfile -lsamplerate -lfftw3f
> Undefined symbols:
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_MASK", [==================referenced from:==================================================================  ] 00225 / 00227
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
>   "apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::VERSION_1", referenced from:
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::writeMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, apache::thrift::protocol::TMessageType, int) in jack_preamp.o
>       apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) in jack_preamp.o
> ld: symbol(s) not found
> collect2: ld a retourné 1 code d'état d'exécution

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira