Gcc “未绑定到正在创建的对象时重新定位非法”是什么意思?

Gcc “未绑定到正在创建的对象时重新定位非法”是什么意思?,gcc,solaris,ld,relocation,Gcc,Solaris,Ld,Relocation,我正在尝试在运行Solaris 10的SPARC上构建Apache Qpid。到目前为止,libqpidtypes.so已生成,但libqpidcomon.so未链接 编译后,链接器会创建大量错误消息,如下所示: ./b2 install address-model=64 cxxflags="-fPIC" --with-program_options ld:致命:重新定位错误:R\u SPARC\u TLS\u LDO\u添加:文件 CMakeFiles/qpidcomon.dir/qpid

我正在尝试在运行Solaris 10的SPARC上构建Apache Qpid。到目前为止,libqpidtypes.so已生成,但libqpidcomon.so未链接

编译后,链接器会创建大量错误消息,如下所示:

 ./b2 install address-model=64 cxxflags="-fPIC" --with-program_options
ld:致命:重新定位错误:R\u SPARC\u TLS\u LDO\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时,重新定位非法

我构建了所需的boost library程序选项,如下所示:

 ./b2 install address-model=64 cxxflags="-fPIC" --with-program_options
当未绑定到正在创建的对象时,Google生成的重新定位非法

问题:你能告诉我错误消息告诉我什么吗

编辑:

如果我注释掉线程本地存储说明符,Qpid将成功编译并链接。当然,这在运行时不是正确的行为

static ThreadStatus*& getThreadStatus() {

        //    THIS IS COMMENTED OUT
        static /*__thread*/ ThreadStatus* threadStatus = 0;

        // Thread local vars can't be dynamically constructed so we need
        // to check whether we've made it yet and construct it if not
        // (no locking necessary for the check as it's thread local!)
        if (!threadStatus) {
            threadStatus = new ThreadStatus;
            allThreadsStatuses.addThreadStatus(threadStatus);
        }

        return threadStatus;
    }
以下是完整的错误消息:

ld:warning:file/usr/local/lib/libboost\u program\u options.so: 尝试多次包含文件ld:致命:重新定位错误: R_SPARC_TLS_LDM_HI22:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u HI22:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u HIX22:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u LO10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u调用:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u LOX10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u LO10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u调用:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/q pidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u LOX10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u LO10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDM\u调用:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u LOX10:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时重新定位非法ld:fatal: 重新定位错误:R\u SPARC\u TLS\u LDO\u添加:文件 CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o:symbol _ZZN4QPID3SYS15删除管理器0u PollerHandlePrivatee15设置线程状态12线程状态: 绑定到:cmakfiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o: 未绑定到正在创建的对象时,重新定位非法 ***错误代码1以下命令导致错误:cd/export/home/user/qpid-cpp-0.34/build/src&&/opt/csw/bin/cmake-E cmake_link_脚本CMakeFiles/qpidcomon.dir/link.txt-verbose=make: 致命错误:目标src/libqpidcomon.so.2.0.0'的命令失败 当前工作目录/export/home/user/qpid-cpp-0.34/build ***错误代码1以下命令导致错误:make-f src/CMakeFiles/qpidcomon.dir/build.make src/CMakeFiles/qpidcomon.dir/build make:致命错误:命令失败 对于targetsrc/CMakeFiles/qpidcomon.dir/all“当前工作” 目录/export/home/user/qpid-cpp-0.34/build ***错误代码1以下命令导致错误:make-f CMakeFiles/Makefile2所有make:致命错误:针对目标的命令失败 `全部

编辑:这是链接器命令

/usr/ccs/bin/ld-V-G-dy-z text-M /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/../../../../../libgcc-unwind.map -Y P,/lib/sparcv9:/usr/lib/sparcv9-Qy-o libqpidcomon.so.2.0.0/usr/lib/sparcv9/crti.o/usr/ccs/lib/sparcv9/values Xa.o /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/sparcv9/crtbegin.o -4.10/4.9.2/sparcv9-1/1/1/1/1/1/1/usr/1/1/1/1/7/1//1/1//7/7/7/7/7/4/4/4/4.9.9.9.9.2/4/2/4/2/4/4/4/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/sparcv9/7/7/1/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/7/sparcv9/1/7/7/7/7/7/7/7/7/7/7/7/7/7/7/sparcv9/7/7/7/7/7/7/7/7/7/7///10/lib -L/usr/ccs/lib-L/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/../../-hlibqpidcomon.so.2 cmakfiles/qpidcomon.dir/qpid/framing/AMQP_AllProxy.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeDeclareBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageCancelBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/TxRollbackBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FilePublishBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/FileAckBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionCompletedBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/sessiondeachedbody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileRejectBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionExpectedBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageAcceptBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DtxStartBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/StreamCancelBody.cpp.o CMakeFiles/qp idcommon.dir/qpid/framing/StreamPublishBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionStartOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ServerInvoker.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileOpenOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/fileconsumerbody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeBoundResult.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxRollbackBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/QueueQueryBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/MessageAcquireBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/streamconsumerbody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/SessionAttachedBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/TxCommitBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageFlushBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AMQP_ClientProxy.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/MessageSetFlowModeBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MethodBodyFactory.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FragmentProperties.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileDeliverBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionCloseBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/QueueQueryResult.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionConfirmedBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExecutionExceptionBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ConnectionRedirectBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionKnownCompletedBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageReleaseBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/MessageRejectBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/Xid.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/SessionAttachBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/XaResult.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxSetTimeoutBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeBindBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExecutionResultBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/fileconsumerokbody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileQosBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionRequestTimeoutBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileProperties.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/SessionFlushBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageTransferBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ReplyTo.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/StreamReturnBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/messageacquisituresult.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DtxSelectBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/StreamProperties.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/AMQP_ServerProxy.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ConnectionTuneOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeUnbindBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/reply_exceptions.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DeliveryProperties.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileReturnBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DtxGetTimeoutBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/QueueDeclareBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/TypeCode.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxCommitBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DtxGetTimeoutResult.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionOpenOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MethodBodyDefaultVisitor.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileQosOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/exchangequalybody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/StreamQosBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionOpenBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileStageBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/Header.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeBoundBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/messageresumesult.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionCommandPointBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/MessageResumeBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxRecoverResult.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/StreamDeliverBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AllInvoker.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxRecoverBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ClientInvoker.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/SessionGapBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SessionTimeoutBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeDeleteBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionSecureOkBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/sessiondeachbody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionStartBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/FileCancelBody .cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageFlowBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/QueueDeleteBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ConnectionSecureBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxForgetBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ConnectionCloseOkBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/TxSelectBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/DtxPrepareBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ConnectionHeartbeatBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/DtxEndBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExecutionSyncBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ExchangeQueryResult.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/QueuePurgeBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/StreamQosOkBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageStopBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/streamconsumerokbody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FileOpenBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/messagesubscribebebebody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/ConnectionTuneBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/MessageProperties.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/AsynchIO.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Condition.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Fork.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Path.cpp.o cmakfiles/qpidcomon.dir/qpid/sys/posix/FileSysDir.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/IOHandle.cpp.o cmakfiles/qpidcomon.dir/qpid/sys/posix/LockFile.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/MemoryMappedFile.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Mutex.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/PipeHandle.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/PollableCondition.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Shlib.cpp.o CMakeFiles/qpidcomon.dir/qpid/log/posix/SinkOptions.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/BSDSocket.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/SocketAddress.cpp.o cmakfiles/qpidcomon.dir/qpid/sys/posix/StrError.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Thread.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/Time.cpp.o CMakeFiles/qpidcomon.dir/qpid/SaslFactory.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/solaris/SystemInfo.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/posix/PosixPoller.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/cyrus/cyrusecuritylayer.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/ssl/check.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/ssl/util.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/ssl/SslSocket.cpp.o CMakeFiles/qpidcomon.dir/qpid/assert.cpp.o CMakeFiles/qpidcomon.dir/qpid/AclHost.cpp.o CMakeFiles/qpidcomon.dir/qpid/Address.cpp.o CMakeFiles/qpidcomon.dir/qpid/DataDir.cpp.o CMakeFiles/qpidcomon.dir/qpid/Exception.cpp.o CMakeFiles/qpidcomon.dir/qpid/Modules.cpp.o CMakeFiles/qpidcomon.dir/qpid/Options.cpp.o CMakeFiles/qpidcomon.dir/qpid/Plugin.cpp.o cmakfiles/qpidcomon.dir/qpid/RefCountedBuffer.cpp.o CMakeFiles/qpidcomon.dir/qpid/SessionState.cpp.o CMakeFiles/qpidcomon.dir/qpid/SessionId.cpp.o cmakfiles/qpidcomon.dir/qpid/StringUtils.cpp.o CMakeFiles/qpidcomon.dir/qpid/Url.cpp.o CMakeFiles/qpidcomon.dir/qpid/UrlArray.cpp.o CMakeFiles/qpidcomon.dir/qpid/NullSaslClient.cpp.o CMakeFiles/qpidcomon.dir/qpid/NullSaslServer.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp_0_10/SessionHandler.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/contractedack.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AMQBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/AMQMethodBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AMQContentBody.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AMQFrame.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/AMQHeaderBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/AMQHeartbeatBody.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/Array.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/Buffer.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/FieldTable.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/FieldValue.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/FrameSet.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/FrameDecoder.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/List.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/protocolinition.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/ProtocolVersion.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/SendContent.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SequenceNumber.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SequenceNumberSet.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/SequenceSet.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/Proxy.cpp.o CMakeFiles/qpidcomon.dir/qpid/framing/Uuid.cpp.o cmakfiles/qpidcomon.dir/qpid/framing/TransferContent.cpp.o CMakeFiles/qpidcomon.dir/qpid/log/Logger.cpp.o CMakeFiles/qpidcomon.dir/qpid/log/Options.cpp.o CMakeFile s/qpidcomon.dir/qpid/log/OstreamOutput.cpp.o cmakfiles/qpidcomon.dir/qpid/log/Selector.cpp.o CMakeFiles/qpidcomon.dir/qpid/log/Statement.cpp.o CMakeFiles/qpidcomon.dir/qpid/management/Buffer.cpp.o CMakeFiles/qpidcomon.dir/qpid/management/ConnectionSettings.cpp.o CMakeFiles/qpidcomon.dir/qpid/management/Mutex.cpp.o CMakeFiles/qpidcomon.dir/qpid/management/Manageable.cpp.o CMakeFiles/qpidcomon.dir/qpid/management/ManagementObject.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/AggregateOutput.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/AsynchIOHandler.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/Dispatcher.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/DispatchHandle.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/Runnable.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/Shlib.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/Timer.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/TimerWarnings.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp_0_10/Codecs.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/CharSequence.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/DataBuilder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/Decoder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/Descriptor.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/Encoder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/ListBuilder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/mapcoder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/MapSizeCalculator.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/MapBuilder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/MapReader.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/MessageEncoder.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/MessageId.cpp.o cmakfiles/qpidcomon.dir/qpid/amqp/MessageReader.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/Sasl.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/SaslClient.cpp.o CMakeFiles/qpidcomon.dir/qpid/amqp/SaslServer.cpp.o CMakeFiles/qpidcomon.dir/qpid/messaging/amqp/Transport.cpp.o CMakeFiles/qpidcomon.dir/qpid/sys/MemStat.cpp.o libqpidtypes.so.1.0.0 -ldl-lrt/usr/local/lib/libboost_program_options.so-lsasl2-lnss3-lsmime3-lssl3-lnssutil3-lplds4-lplc4-lnspr4-lpthread-ldl-lposix4-lrt/usr/local/lib/libboost_program_options.so-lsasl2-lnss3-lsmime3-lsslslslsls4-lnssutil3-lpldls4-lnspril4-lpthread-lposix4-R/local:/usr/lib/user:/export/home/lib/lib/libboost-program\u options.34 -lgcc_s-lpthread-lc-R/opt/csw/lib/64-lgcc_s-lpthread-lc-R/opt/csw/lib/64 /opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.2/sparcv9/crtend.o /usr/lib/sparcv9/crtn.o


SPARC 64位二进制文件可能需要比-fpic选项提供的更大的重新定位表。使用-fPIC大写字母:

SPARC:-Kpic和-Kpic选项

对于SPARC二进制文件,有一个细微的区别 在-K pic选项和备选-K pic选项之间 对全局偏移表项的引用


尝试使用Solaris Studio编译器进行编译,您可能会收到更具描述性的错误消息,如链接的Oracle文档中列出的错误消息。

SPARC 64位二进制文件可能需要比-fpic选项提供的更大的重定位表。使用-fPIC大写字母:

SPARC:-Kpic和-Kpic选项

对于SPARC二进制文件,有一个细微的区别 在-K pic选项和备选-K pic选项之间 对全局偏移表项的引用


尝试使用Solaris Studio编译器进行编译,您可能会收到更具描述性的错误消息,如链接的Oracle文档中列出的错误消息。

没有足够的信息来全面解释或解决您的问题,但我可以提供一些提示。重新定位R_SPARC_TLS_LDO_ADD用于实现。具体来说,它和本地动态TLS模型一起使用,这是

当本地动态模型用于引用TLS变量时,需要在引用该变量的同一动态对象共享库中定义该变量。您收到的错误表明函数qpid::sys::DeletionManager::getThreadStatus中定义的thead局部静态变量threadStatus未在正在创建的共享库libqpidcommon.so.2.0.0中的任何位置定义。相反,它是在其他一些共享库中定义的,它可能与libqpidtypes.so.1.0.0链接

产生此错误的原因尚不清楚。使用-fpic编译时使用。当使用全局动态模型引用线程局部变量时,它们可以位于任何共享库中,而不仅仅是正在创建的库中。您可以尝试显式使用-ftls model=global dynamic选项,但除非有人显式使用-ftls model=local dynamic,否则这不会有任何效果

GCC可能错误地优化了对threadStatus的引用。如果GCC确定不能从不同的转换单元访问线程局部变量,它将使用局部动态模型来引用它,因为该模型比更通用的全局动态模型更快。问题也可能是由于您正在编译的源代码中的某些内容,例如
n生成文件中有错误或链接器中有错误

没有足够的信息来充分解释或解决您的问题,但我可以提供一些提示。重新定位R_SPARC_TLS_LDO_ADD用于实现。具体来说,它和本地动态TLS模型一起使用,这是

当本地动态模型用于引用TLS变量时,需要在引用该变量的同一动态对象共享库中定义该变量。您收到的错误表明函数qpid::sys::DeletionManager::getThreadStatus中定义的thead局部静态变量threadStatus未在正在创建的共享库libqpidcommon.so.2.0.0中的任何位置定义。相反,它是在其他一些共享库中定义的,它可能与libqpidtypes.so.1.0.0链接

产生此错误的原因尚不清楚。使用-fpic编译时使用。当使用全局动态模型引用线程局部变量时,它们可以位于任何共享库中,而不仅仅是正在创建的库中。您可以尝试显式使用-ftls model=global dynamic选项,但除非有人显式使用-ftls model=local dynamic,否则这不会有任何效果


GCC可能错误地优化了对threadStatus的引用。如果GCC确定不能从不同的转换单元访问线程局部变量,它将使用局部动态模型来引用它,因为该模型比更通用的全局动态模型更快。问题还可能是由于您正在编译的源代码中的某些内容、makefile中的错误或链接器中的错误

谢谢你的意见!我用PIC重建了一切,仍然是相同的错误。好吧,这可能是恰当的:尝试多次包含文件。您可以发布传递给ld命令的参数吗?我已经将它们添加到post中,虽然我做了一些进一步的挖掘,但没有发现问题-您可能遇到了GCC/Solars ld不兼容问题。您发布的关于GCC修补程序的链接适用于Solaris x86,但它指出在Solaris 11之前,Sun ld无法正确处理@tlsldm reloc。您的Solaris安装的最新情况如何?你能试着用GNU的ld吗?是的,我也看到了。我将尝试更新Solaris ld。我已经尝试过gnu ld,但这似乎带来了许多其他问题,因为在Solaris上,gcc是编译为使用Solaris ld的。感谢您的输入!我用PIC重建了一切,仍然是相同的错误。好吧,这可能是恰当的:尝试多次包含文件。您可以发布传递给ld命令的参数吗?我已经将它们添加到post中,虽然我做了一些进一步的挖掘,但没有发现问题-您可能遇到了GCC/Solars ld不兼容问题。您发布的关于GCC修补程序的链接适用于Solaris x86,但它指出在Solaris 11之前,Sun ld无法正确处理@tlsldm reloc。您的Solaris安装的最新情况如何?你能试着用GNU的ld吗?是的,我也看到了。我将尝试更新Solaris ld。我已经尝试过gnu ld,但这似乎带来了许多其他问题,因为在Solaris上,gcc是编译为使用Solaris ld的。如果可以,我会提供啤酒…如果可以,我会提供啤酒…在注释完线程说明符后,请参见问题中的编辑,程序编译和链接成功。注释掉_线程说明符后,请参见问题中的编辑,程序编译和链接成功。