[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #25483 [Obfuscation/Snowflake]: Windows reproducible build of snowflake
#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@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs