#19001: Tor Browser with Snowflake -----------------------------------+--------------------- Reporter: dcf | Owner: Type: project | Status: new Priority: Medium | Milestone: Component: Obfuscation/Snowflake | Version: Severity: Normal | Resolution: Keywords: | Actual Points: Parent ID: | Points: Reviewer: | Sponsor: -----------------------------------+---------------------
Comment (by arlolra): In order to help out with https://github.com/keroserene/go- webrtc/issues/38, dcf pushed https://gitweb.torproject.org/user/dcf/tor-browser- bundle.git/commit/?h=snowflake&id=4c9dae0f2242361b71f74d0533ee5780fe60dbb8, and built https://people.torproject.org/~dcf/pt- bundle/snowflake/20160608-6.0a5-98487434e0/ The bundles there work fine, but using the magic to build go-webrtc (and thus, help out in the above) runs afoul. go-webrtc has moved ahead now, so first check out 3a7f6aed75357dc85a7438af10b12c4177cf180f (or, better 5e9969c3bf5e63df086566404241c06279e5d56a). Then, because the headers might not be what's expected (see https://gitweb.torproject.org/user/dcf/tor-browser- bundle.git/tree/gitian/descriptors/linux/gitian-pluggable- transports.yml?h=snowflake&id=6cd7c411e8910d75f5ef18e86bbe682f943aa229#n341), checkout 8ccf77319e08b86330c0e5b195697fd738c80931 in webrtc.git, and copy them over again. Now, I'd expect it to work. But, linux 386 yields, {{{ # github.com/keroserene/go-webrtc /tmp/go-build151695054/github.com/keroserene/go- webrtc/_obj/peerconnection.cc.o: In function `CGO_DeserializeSDP': ./peerconnection.cc:344: undefined reference to `webrtc::JsepSessionDescription::JsepSessionDescription(std::string const&)' ./peerconnection.cc:347: undefined reference to `webrtc::SdpDeserialize(std::string const&, webrtc::JsepSessionDescription*, webrtc::SdpParseError*)' /tmp/go-build151695054/github.com/keroserene/go- webrtc/_obj/peerconnection.cc.o: In function `CGO_AddIceCandidate': ./peerconnection.cc:386: undefined reference to `webrtc::CreateIceCandidate(std::string const&, int, std::string const&, webrtc::SdpParseError*)' /tmp/go-build151695054/github.com/keroserene/go- webrtc/_obj/peerconnection.cc.o: In function `Peer::Initialize()': ./peerconnection.cc:54: undefined reference to `rtc::Thread::SetName(std::string const&, void const*)' ./peerconnection.cc:55: undefined reference to `rtc::Thread::SetName(std::string const&, void const*)' collect2: error: ld returned 1 exit status }}} and amd64, {{{ # _/home/david/branches/go-webrtc /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a when searching for -lwebrtc-linux-amd64-magic /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a when searching for -lwebrtc-linux-amd64-magic /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a when searching for -lwebrtc-linux-amd64-magic /usr/bin/ld: cannot find -lwebrtc-linux-amd64-magic collect2: error: ld returned 1 exit status FAIL _/home/david/branches/go-webrtc [build failed] }}} Maybe this has something to do with what's said above, > libwebrtc needs a newer GCC than Debian wheezy has, so I copied code from the firefox descriptor to use our self-built GCC. I also tried building libwebrtc with Clang, which worked, but I couldn't get the resulting library to link with go-webrtc and Cgo. Another thing I noticed is that `gclient sync -r hash` does something funky with master if you aren't already on `hash`. What I've normally been doing is `gclient sync && cd src/ && git checkout hash && cd .. && gclient sync -r hash`, but maybe that was just me. It was also suggested that it might be because go-webrtc sets `_GLIBCXX_USE_CXX11_ABI=0` but playing with that didn't produce any useful results. Anyways, just documenting for posterity. -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/19001#comment:5> Tor Bug Tracker & Wiki <https://trac.torproject.org/> The Tor Project: anonymity online _______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs