#25483: Windows reproducible build of snowflake -----------------------------------+-------------------------- Reporter: arlolra | Owner: sukhbir Type: project | Status: assigned Priority: High | Milestone: Component: Obfuscation/Snowflake | Version: Severity: Normal | Resolution: Keywords: TorbrowserTeam201804 | Actual Points: Parent ID: #19001 | Points: Reviewer: | Sponsor: -----------------------------------+--------------------------
Comment (by sukhbir): As an update to this ticket, I have been trying to get the Windows build to work, the latest progress of which is at https://github.com/azadi/tor- browser-build/commits/go-webrtc ... it's not much and mostly builds on the work of dcf and others to try to fix the error below. Currently, the status is that we are hitting a linking error when trying to build `go-webrtc` (`mingw-w64`) with `webrtc` (`clang`). The exact error is: {{{ /var/tmp/dist/mingw-w64/x86_64-w64-mingw32/include/malloc.h:183:0: note: this is the location of the previous definition #define alloca(x) __builtin_alloca((x)) ^ # github.com/keroserene/go-webrtc /var/tmp/dist/mingw-w64/lib/gcc/x86_64-w64-mingw32/5.4.0/../../../../x86_64-w64-mingw32/lib/../lib/libstdc++.a (cow-stdexcept.o): In function `std::string::_M_data() const': /var/tmp/build/gcc/x86_64-w64-mingw32/libstdc++-v3/src/c++11/../../../../gcc-5.4.0/libstdc++-v3/src/c++11 /cow-stdexcept.cc:44: multiple definition of `std::logic_error::logic_error(std::logic_error const&)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/peerconnection.cc.o:peerconnection.cc:(.text$_ZNSt11logic_errorC2ERKS_[_ZNSt11logic_errorC2ERKS_]+0x0): first defined here /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x5a9): undefined reference to `cricket::AudioCodec::ToString() const' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x6de): undefined reference to `webrtc::RtpExtension::ToString() const' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x813): undefined reference to `cricket::DataCodec::ToString() const' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x8f5): undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x96a): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xa1b): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xbf8): undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xc6d): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xd20): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xdb1): undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xe26): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xed5): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xf6d): undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0xfe2): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x1094): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x112c): undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x11a1): undefined reference to `rtc::FatalMessage::~FatalMessage()' /tmp/go-build868110800/github.com/keroserene/go- webrtc/_obj/ctestenums.cc.o:ctestenums.cc:(.text+0x1254): undefined reference to `rtc::FatalMessage::~FatalMessage()' /var/tmp/dist/mingw-w64/lib/gcc/x86_64-w64-mingw32/5.4.0/../../../../x86_64-w64-mingw32/bin/ld: $WORK/github.com/keroserene/go-webrtc/_obj/ctestenums.cc.o: bad reloc address 0xc0 in section `.rdata' collect2: error: ld returned 1 exit status }}} I have tried different things but mostly focusing on the `webrtc` library to start with but it seems like that is not the problem since it has the missing symbols (which other than the usual symbol lookup, we also confirmed by writing a small program that calls them.) It was suggested that this can be due to C++ ABI (in)compatibility between `mingw-w64` and `clang` but at least one mingw-w64 person I talked with disagreed with that assumption. A [https://groups.google.com/forum/#!topic/discuss-webrtc/UbQ602XSB10 post] made on the discuss-webrtc Google group was also not helpful and even though there are similar (not same) posts with this problem, there seem to be no solutions that actually work; I have tried incorporating the other suggestions as well in the various threads, but to no effect. As suggested by Hooman, I have started looking recently into using the [https://github.com/asicerik/go-webrtc asicerik go-webrtc] (this wrapper is for native compiling on Windows using Visual Studio and not cross- compiling using Linux) but it doesn't link against `webrtc` currently. -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25483#comment:24> 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