[ https://issues.apache.org/jira/browse/THRIFT-4402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16276062#comment-16276062 ]
Henrique Andrade commented on THRIFT-4402: ------------------------------------------ BTW, along the same lines, there are similarly declared global symbols in TSSLSocket.cpp/h as well: 0000000000000000 B apache::thrift::transport::TSSLSocketFactory::manualOpenSSLInitialization_ 0000000000000028 B apache::thrift::transport::TSSLSocketFactory::count_ 0000000000000010 B apache::thrift::transport::TSSLSocketFactory::mutex_ > Minimize global uninitialized symbol leakage (TSocket::useLowMinRto_) > --------------------------------------------------------------------- > > Key: THRIFT-4402 > URL: https://issues.apache.org/jira/browse/THRIFT-4402 > Project: Thrift > Issue Type: Bug > Components: C++ - Library > Affects Versions: 0.10.0 > Reporter: Henrique Andrade > Priority: Trivial > > Since the symbol TSocket::useLowMinRto_ is only used in TSocket.cpp, it can > be declared and made static in TSocket.cpp itself (no need for it to be > declared in the header file). > This way it will not be a global symbol in the corresponding shared file. > ``` > > nm -C ./lib/cpp/src/thrift/transport/TSocket.o | grep " B " > 0000000000000000 B apache::thrift::transport::TSocket::useLowMinRto_ > ``` > Unnecessary exposed global symbols like this can cause subtle dynamic linking > errors: > https://stackoverflow.com/questions/6714046/c-linux-double-destruction-of-static-variable-linking-symbols-overlap -- This message was sent by Atlassian JIRA (v6.4.14#64029)