Coder Social home page Coder Social logo

vsimon / webrtcbuilds Goto Github PK

View Code? Open in Web Editor NEW
202.0 30.0 170.0 96.46 MB

Getting started with WebRTC natively is no easy picnic. The goal of webrtcbuilds is to provide a single standalone WebRTC static library and package.

License: BSD 3-Clause "New" or "Revised" License

Shell 92.74% C++ 7.26%
webrtc

webrtcbuilds's Introduction

webrtcbuilds Build Status

The goal of webrtcbuilds is to provide a single standalone static library and package for WebRTC.

Current Platforms and Prerequisites

How to run

./build.sh to build the latest version of WebRTC.

Or with options.

Usage:
   ./build.sh [OPTIONS]

OPTIONS:
   -h             Show this message
   -d             Debug mode. Print all executed commands.
   -o OUTDIR      Output directory. Default is 'out'
   -b BRANCH      Latest revision on git branch. Overrides -r. Common branch names are 'branch-heads/nn', where 'n' is the release number.
   -r REVISION    Git SHA revision. Default is latest revision.
   -t TARGET OS   The target os for cross-compilation. Default is the host OS such as 'linux', 'mac', 'win'. Other values can be 'android', 'ios'.
   -c TARGET CPU  The target cpu for cross-compilation. Default is 'x64'. Other values can be 'x86', 'arm64', 'arm'.
   -n CONFIGS     Build configurations, space-separated. Default is 'Debug Release'. Other values can be 'Debug', 'Release'.
   -e             Compile WebRTC with RTTI enabled. Default is with RTTI not enabled.
   -g             [Linux] Compile 'Debug' WebRTC with iterator debugging disabled. Default is enabled but it might add significant overhead.
   -D             [Linux] Generate a debian package
   -F PATTERN     Allow customize package filename through a pattern
   -P PATTERN     Allow customize package name through a pattern
   -V PATTERN     Allow customize package version through a pattern

The PATTERN is a string that can use the following tokens:
   %p%            The system platform.
   %to%           Target os.
   %tc%           Target cpu.
   %b%            The branch if it was specified.
   %r%            Revision.
   %sr%           Short revision.
   %rn%           The associated revision number.
   %da%           Debian architecture.

Where is the package

out/webrtcbuilds-<rev>-<sha>-<target-os>-<target-cpu>.zip where <rev> is the revision number of the commit, <sha> is the short git SHA of the commit, and <target-os>-<target-cpu> is the OS (linux, mac, win) and CPU (x64, x86) of the target environment.

Documentation

Wiki: https://github.com/vsimon/webrtcbuilds/wiki

Mailing List: http://groups.google.com/group/webrtcbuilds

webrtcbuilds's People

Contributors

alexflint avatar danieltbrown avatar david74chou avatar matviy avatar vsimon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webrtcbuilds's Issues

Fix ‘is_trivially_copy_constructible’ is not a member of ‘std’ error

From run_tests.sh...

$ test/run_tests.sh $(ls -d -1 out/webrtc*/) Release
In file included from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/api/optional.h:25:0,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/socket.h:28,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/asyncsocket.h:15,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/socketfactory.h:14,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/socketserver.h:15,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/messagequeue.h:30,
                 from /home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/thread.h:25,
                 from /home/travis/build/vsimon/webrtcbuilds/test/simple_app.cc:4:
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h: In function ‘constexpr bool rtc::sanitizer_impl::IsTriviallyCopyable()’:
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:101:28: error: ‘is_trivially_copy_constructible’ is not a member of ‘std’
   return static_cast<bool>(std::is_trivially_copy_constructible<T>::value &&
                            ^
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:101:66: error: expected primary-expression before ‘>’ token
   return static_cast<bool>(std::is_trivially_copy_constructible<T>::value &&
                                                                  ^
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:101:67: error: ‘::value’ has not been declared
   return static_cast<bool>(std::is_trivially_copy_constructible<T>::value &&
                                                                   ^
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:102:29: error: ‘is_trivially_copy_assignable’ is not a member of ‘std’
                            (std::is_trivially_copy_assignable<T>::value ||
                             ^
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:102:64: error: expected primary-expression before ‘>’ token
                            (std::is_trivially_copy_assignable<T>::value ||
                                                                ^
/home/travis/build/vsimon/webrtcbuilds/out/webrtcbuilds-22893-cbaa254-linux-x64/include/rtc_base/sanitizer.h:102:65: error: ‘::value’ has not been declared
                            (std::is_trivially_copy_assignable<T>::value ||
                                                                 ^

Tests fail with build 25798

Tests fail with branch-heads/72

./test/run_tests.sh out/webrtcbuilds-25798-8086577-linux-x64 /home/ben/src/webrtcbuilds/test/simple_app.cc: In function ‘int main(int, char**)’: /home/ben/src/webrtcbuilds/test/simple_app.cc:30:5: error: ‘CreatePeerConnectionFactory’ is not a member of ‘webrtc’ webrtc::CreatePeerConnectionFactory( ^

peerconnection_client: Failed to find capturer for id

Configuration:
Windows 10 x64
Visual Studio 2013 Community
webrtcbuilds-10081

Trying to get working peerconnection_client example built from source code.
It builds without errors but fails to initialize a call with same peerconnection_client.

Console debug log:

(webrtcvideocapturer.cc:183): Failed to find capturer for id:
\\?\\root#image#0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global
(common.cc:59): c:\\webrtcbuilds-builder\out\src\talk\app\webrtc\videosource.cc(334):
ASSERT FAILED: capturer != NULL @ webrtc::VideoSource::Create

Test cases:

  • bin/peerconnection_client + bin/peerconnection_client: works fine, video is showing
  • bin/peerconnection_client + mine compiled peerconnection_client (Debug x64): error above
  • mine compiled peerconnection_client + mine compiled peerconnection_client (Debug x64): error above
  • mine compiled peerconnection_client + mine compiled peerconnection_client (Release x64): just closes
  • bin/peerconnection_client + mine compiled peerconnection_client (Debug Win32): error above

undefined reference to `cricket::DeviceManagerFactory::Create()'

Hi!
I'm trying test DeviceManagerFactory,but getting link errors.

Test Code:

#include <iostream>

#include "webrtc/base/scoped_ptr.h"
#include "talk/media/devices/devicemanager.h"

int main(int argc, char **argv) {
    rtc::scoped_ptr<cricket::DeviceManagerInterface> dev_manager(
            cricket::DeviceManagerFactory::Create());
    if (!dev_manager->Init()) {
        std::cout << "Can't create device manager" << std::endl;
        return 1;
    }
    std::cout << "Created device manager" << std::endl;
    return 0;
}

Console:

make all 
Building target: pbuilds
Invoking: GCC C++ Linker
g++ `pkg-config --cflags --libs --define-variable=prefix=/home/savage/soft/webrtc/webrtc-linux64 libwebrtc_full` -o "pbuilds"  ./webrtct.o   
./webrtct.o: In function `main':
/home/savage/soft/workspace/cpp/pbuilds/Debug/../webrtct.cc:8: undefined reference to `cricket::DeviceManagerFactory::Create()'
./webrtct.o: In function `ToString<int>':
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)'
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::~FatalMessage()'
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::~FatalMessage()'
./webrtct.o: In function `ToString<unsigned int>':
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::FatalMessage(char const*, int)'
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::~FatalMessage()'
/home/savage/soft/webrtc/webrtc-linux64/include/webrtc/base/stringencode.h:170: undefined reference to `rtc::FatalMessage::~FatalMessage()'
collect2: error: ld returned 1 exit status
make: *** [pbuilds] Error 1

Options for compiling examples

Hi vsimon,

Could you provide some command line options for compiling examples, like AppRTCMobile?

To build the android demo, in util.sh, I commented out the line in patch() method which removes the example from being built, and add AppRTCMobile target in the compile-unix(), and finally I got an apk.

Thank you very much!

Difference between Debug and Release

Hi vsimon

I came across a problem which took me 3 weeks to find what code always cause segfault.
Though i have work hard on it, i only found the debug and release versions are different and i still don't know what the diff is.
Finally i build a simple test here and i cannot move forward one step:

#include <memory>
#include <iostream>
#include "webrtc/base/thread.h"
#include "talk/media/base/videocapturer.h"

using namespace std;
using cricket::VideoCapturer;

class GangVideoCapturer: public VideoCapturer {
public:
    GangVideoCapturer() {
    }
    cricket::CaptureState Start(const cricket::VideoFormat& capture_format) override {
        return cricket::CS_STOPPED;
    }
    void Stop() override {
    }
    bool IsRunning() override {
        return false;
    }
    bool IsScreencast() const override {
        return false;
    }
    bool GetPreferredFourccs(std::vector<uint32>* fourccs) override {
        return true;
    }
};

void run() {
    cout << "run start" << endl;
    VideoCapturer* capture = new GangVideoCapturer();
    cout << "create capturer ok" << endl;
    delete capture;
    cout << "delete capturer ok" << endl;
}

int main(int argc, char **argv) {
    run();
    cout << "quit" << endl;
}

Log when using debug lib:

make all 
Building file: ../main.cc
Invoking: GCC C++ Compiler
g++ -std=c++0x -DWEBRTC_POSIX -DPOSIX -I"/home/savage/git/webrtcbuilds" -O3 -g3 -Wall -c -fmessage-length=0 -fno-rtti `pkg-config --cflags libssl` -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cc"
Finished building: ../main.cc

Building target: ffmpeg-wrap-test
Invoking: GCC C++ Linker
g++  ./main.o   -lwebrtc_full -L/home/savage/soft/webrtc/webrtc-linux64/lib/Debug `pkg-config --libs libssl` -lstdc++ -ldl -pthread -o "ffmpeg-wrap-test"
Finished building target: ffmpeg-wrap-test

run start
create capturer ok
delete capturer ok
quit

Log when using release lib:

make all 
Building file: ../main.cc
Invoking: GCC C++ Compiler
g++ -std=c++0x -DWEBRTC_POSIX -DPOSIX -I"/home/savage/git/webrtcbuilds" -O3 -g3 -Wall -c -fmessage-length=0 -fno-rtti `pkg-config --cflags libssl` -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cc"
Finished building: ../main.cc

Building target: ffmpeg-wrap-test
Invoking: GCC C++ Linker
g++  ./main.o   -lwebrtc_full -L/home/savage/soft/webrtc/webrtc-linux64/lib/Release `pkg-config --libs libssl` -lstdc++ -ldl -pthread -o "ffmpeg-wrap-test"
Finished building target: ffmpeg-wrap-test

run start
create capturer ok

The gdb info when using release lib:

Thread #1 [ffmpeg-wrap-tes] 15049 [core: 4] (Suspended : Signal : SIGSEGV:Segmentation fault)   
    __GI___libc_free() at malloc.c:2,933 0x7ffff7048872 
    deallocate() at new_allocator.h:110 0x4083fe    
    deallocate() at alloc_traits.h:383 0x4083fe 
    _M_deallocate() at stl_vector.h:178 0x4083fe    
    ~_Vector_base() at stl_vector.h:160 0x4083fe    
    ~vector() at stl_vector.h:425 0x4083fe  
    ~RollingAccumulator() at rollingaccumulator.h:33 0x4083fe   
    cricket::VideoCapturer::~VideoCapturer() at videocapturer.h:144 0x4083fe    
    ~GangVideoCapturer() at main.cc:9 0x409240  
    GangVideoCapturer::~GangVideoCapturer() at main.cc:9 0x409240   
    <...more frames...> 

The gdb info of my origin code is weird(output.c is a source of ffmpeg):
sometimes:

(Suspended : Signal : SIGSEGV:Segmentation fault)   
    yuv2rgb_X_c_template() at output.c:1,367 0x1010233  
    yuv2rgba32_X_c() at output.c:1,510 0x1010233    
    sigslot::lock_block<sigslot::single_threaded>::lock_block() at sigslot.h:257 0x90e006   
    sigslot::_signal_base0<sigslot::single_threaded>::disconnect_all() at sigslot.h:520 0x90cef2    
    gang::GangVideoCapturer::~GangVideoCapturer() at gangvideocapturer.cc:94 0x90826f   
    webrtc::VideoSource::~VideoSource() at 0x94e55e 
        ...............

and sometimes:

(Suspended : Signal : SIGILL:Illegal instruction)   
    yuv2422_2_c_template() at output.c:597 0x1010001    
    yuv2uyvy422_2_c() at output.c:670 0x1010001 
    0x0

Env:

g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.9.2-10ubuntu13' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Ubuntu 4.9.2-10ubuntu13)

Thanks!

On Mac: ./build.sh -b branch-heads/66 -d failed

  • pushd ./third_party/abseil-cpp
    /Users/zhouchengming/webrtc-checkout/webrtc-builds/util.sh: line 346: pushd: ./third_party/abseil-cpp: No such file or directory

Is this a problem of webrtc source code or of webrtcbuilds?

Link errors with webrtcbuilds-15043-74f9d98-linux-x64 using clang

Having built WebRTC r74f9d98 with clang, I'm now getting a whole bunch of linker errors for various things that should be in libwebrtc_full.a:

  • multiple definition of 'webrtc::CircularBuffer::~CircularBuffer()
  • undefined reference to 'webrtc::voe::Statistics::Statistics(unsigned int)'
  • undefined reference to 'webrtc::voe::Statistics::~Statistics()'
  • undefined reference to 'webrtc::voe::Statistics::Initialized() const'
  • undefined reference to 'webrtc::voe::Statistics::SetUnInitialized()'
  • undefined reference to 'webrtc::voe::Statistics::SetLastError(int) const'
  • undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel) const'
  • undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel, char const*) const'
  • undefined reference to 'webrtc::voe::Statistics::LastError() const'
  • undefined reference to 'vtable for webrtc::rtcp::Remb'
  • undefined reference to 'webrtc::rtcp::Remb::Parse(webrtc::rtcp::CommonHeader const&)'
  • undefined reference to 'webrtc::rtcp::Remb::SetSsrcs(std::vector<unsigned int, std::allocator >)'
Linking libeawebrtc.so
mkdir -p lib
/home/rob/libs/webrtcbuilds/out/src/third_party/llvm-build/Release+Asserts/bin/clang++ -Wl,-z,now -Wl,-z,relro -Wl,--fatal-warnings -Wl,-z,defs -pthread -Wl,-z,noexecstack -fPIC -fuse-ld=gold -B/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin -Wl,--disable-new-dtags -m64 -Wl,--detect-odr-violations -Wl,--icf=all -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections  -shared -o lib/libeawebrtc.so -Wl,--start-group obj/libeawebrtc.o obj/PeerConnectionImpl.o obj/DataChannelImpl.o obj/EAVideoTrackSource.o obj/MJPEGVideoTrackSource.o obj/RawVideoTrackSource.o /home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a  -Wl,--end-group -ldl -lX11
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: error: /home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(circular_buffer.o): multiple definition of 'webrtc::CircularBuffer::~CircularBuffer()'
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: /home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(utility.o): previous definition here
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: error: /home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(circular_buffer.o): multiple definition of 'webrtc::CircularBuffer::~CircularBuffer()'
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: /home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(utility.o): previous definition here
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_codec_impl.o):../../webrtc/voice_engine/voe_codec_impl.cc:function webrtc::VoECodecImpl::SetSendCodec(int, webrtc::CodecInst const&): error: undefined reference to 'webrtc::voe::Statistics::Initialized() const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_codec_impl.o):../../webrtc/voice_engine/voe_codec_impl.cc:function webrtc::VoECodecImpl::GetSendCodec(int, webrtc::CodecInst&): error: undefined reference to 'webrtc::voe::Statistics::Initialized() const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_codec_impl.o):../../webrtc/voice_engine/voe_codec_impl.cc:function webrtc::VoECodecImpl::SetBitRate(int, int): error: undefined reference to 'webrtc::voe::Statistics::Initialized() const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_codec_impl.o):../../webrtc/voice_engine/voe_codec_impl.cc:function webrtc::VoECodecImpl::GetRecCodec(int, webrtc::CodecInst&): error: undefined reference to 'webrtc::voe::Statistics::Initialized() const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_audio_processing_impl.o):../../webrtc/voice_engine/voe_audio_processing_impl.cc:function webrtc::VoEAudioProcessingImpl::SetTypingDetectionParameters(int, int, int, int, int): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(transmit_mixer.o):../../webrtc/voice_engine/transmit_mixer.cc:function webrtc::voe::TransmitMixer::RegisterVoiceEngineObserver(webrtc::VoiceEngineObserver&): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel, char const*) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(transmit_mixer.o):../../webrtc/voice_engine/transmit_mixer.cc:function webrtc::voe::TransmitMixer::StartPlayingFileAsMicrophone(char const*, bool, webrtc::FileFormats, int, float, int, webrtc::CodecInst const*): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel, char const*) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(transmit_mixer.o):../../webrtc/voice_engine/transmit_mixer.cc:function webrtc::voe::TransmitMixer::StartPlayingFileAsMicrophone(char const*, bool, webrtc::FileFormats, int, float, int, webrtc::CodecInst const*): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel, char const*) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(transmit_mixer.o):../../webrtc/voice_engine/transmit_mixer.cc:function webrtc::voe::TransmitMixer::StartPlayingFileAsMicrophone(char const*, bool, webrtc::FileFormats, int, float, int, webrtc::CodecInst const*): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel, char const*) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_base_impl.o):../../webrtc/voice_engine/voe_base_impl.cc:function webrtc::VoEBaseImpl::TerminateInternal(): error: undefined reference to 'webrtc::voe::Statistics::SetUnInitialized()'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_base_impl.o):../../webrtc/voice_engine/voe_base_impl.cc:function webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*, rtc::scoped_refptr<webrtc::AudioDecoderFactory> const&): error: undefined reference to 'webrtc::voe::Statistics::SetInitialized()'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(voe_base_impl.o):../../webrtc/voice_engine/voe_base_impl.cc:function webrtc::VoEBaseImpl::LastError(): error: undefined reference to 'webrtc::voe::Statistics::LastError() const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(channel.o):../../webrtc/voice_engine/channel.cc:function webrtc::voe::Channel::OnInitializeDecoder(signed char, char const*, int, unsigned long, unsigned int): error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(shared_data.o):../../webrtc/voice_engine/shared_data.cc:function webrtc::voe::SharedData::SharedData(): error: undefined reference to 'webrtc::voe::Statistics::Statistics(unsigned int)'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(shared_data.o):../../webrtc/voice_engine/shared_data.cc:function webrtc::voe::SharedData::~SharedData(): error: undefined reference to 'webrtc::voe::Statistics::~Statistics()'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(shared_data.o):../../webrtc/voice_engine/shared_data.cc:function webrtc::voe::SharedData::SetLastError(int) const: error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(shared_data.o):../../webrtc/voice_engine/shared_data.cc:function webrtc::voe::SharedData::SetLastError(int, webrtc::TraceLevel) const: error: undefined reference to 'webrtc::voe::Statistics::SetLastError(int, webrtc::TraceLevel) const'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(rtcp_receiver.o):../../webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:function webrtc::RTCPReceiver::ParseCompoundPacket(unsigned char const*, unsigned char const*, webrtc::RTCPReceiver::PacketInformation*): error: undefined reference to 'vtable for webrtc::rtcp::Remb'
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(rtcp_receiver.o):../../webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:function webrtc::RTCPReceiver::ParseCompoundPacket(unsigned char const*, unsigned char const*, webrtc::RTCPReceiver::PacketInformation*): error: undefined reference to 'webrtc::rtcp::Remb::Parse(webrtc::rtcp::CommonHeader const&)'
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(rtcp_sender.o):../../webrtc/modules/rtp_rtcp/source/rtcp_sender.cc:function webrtc::RTCPSender::BuildREMB(webrtc::RTCPSender::RtcpContext const&): error: undefined reference to 'vtable for webrtc::rtcp::Remb'
/home/rob/libs/webrtcbuilds/out/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
/home/rob/libs/webrtcbuilds/out/webrtcbuilds-15043-74f9d98-linux-x64/lib/Release/libwebrtc_full.a(rtcp_sender.o):../../webrtc/modules/rtp_rtcp/source/rtcp_sender.cc:function webrtc::RTCPSender::BuildREMB(webrtc::RTCPSender::RtcpContext const&): error: undefined reference to 'webrtc::rtcp::Remb::SetSsrcs(std::vector<unsigned int, std::allocator<unsigned int> >)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

build fails when building ios arm arm64

Hi

running this command

./build.sh -d -o build_ios -r 185ba29a3c0556798158840c2424416d0fd779fe -t ios

I keep on getting this error

warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: archive library: libwebrtc_full.a will be fat and ar(1) will not be able to operate on it /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: x86_64 file: libwebrtc_full.a(atomicops_internals_x86_gcc.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: x86_64 file: libwebrtc_full.a(atomicops_internals_x86_msvc.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: x86_64 file: libwebrtc_full.a(error_listener.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: for architecture: armv7 file: libwebrtc_full.a(debug.o) has no symbols /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar: internal ranlib command failed

I tried googling it but nothing panned out, would you have any idea, your help would be much appreciated,

thanks

[Android] clang: error: unknown argument: '-fno-tree-sra'

Running ubuntu 16.04 LTS

Seems like clang doesn't recognise some of the flags.
Here's the full log

$ ./build.sh -t android -c arm
Host OS: linux
Target OS: android
Target CPU: arm
Checking webrtcbuilds dependencies
Checking depot-tools
Building revision: 5fcc7b5a5306e319164863e584f16d49c070bef7
Associated revision number: 21537
Checking out WebRTC revision (this will take awhile): 5fcc7b5a5306e319164863e584f16d49c070bef7
Syncing projects: 100% (45/45), done.                                      
Running hooks: 100% (26/26), done.              
Checking WebRTC dependencies
[sudo] password for ibicha: 
Skipping debugging symbols.
Skipping 32-bit libraries for ARM/Android.
Skipping ARM cross toolchain.
Skipping NaCl, NaCl toolchain, NaCl ports dependencies.
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease                   
Hit:2 http://dl.google.com/linux/chrome/deb stable Release                     
Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]     
Hit:5 http://ca.archive.ubuntu.com/ubuntu xenial InRelease                     
Hit:6 http://ca.archive.ubuntu.com/ubuntu xenial-updates InRelease             
Get:7 http://ca.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]  
Fetched 204 kB in 2s (91.3 kB/s)                                    
Reading package lists... Done
Finding missing packages...
Packages required:  apache2-bin binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf binutils-mips64el-linux-gnuabi64 binutils-mipsel-linux-gnu bison cdbs curl devscripts dpkg-dev elfutils fakeroot flex fonts-ipafont g++ git-core git-svn gperf lib32gcc1 lib32stdc++6 libapache2-mod-php7.0 libasound2 libasound2-dev libatk1.0-0 libatk1.0-dbg libav-tools libbluetooth-dev libbrlapi0.6 libbrlapi-dev libbz2-1.0 libbz2-dev libc6 libc6-i386 libcairo2 libcairo2-dbg libcairo2-dev libcap2 libcap-dev libcups2 libcups2-dev libcurl4-gnutls-dev libdrm-dev libelf-dev libexpat1 libffi6 libffi-dev libfontconfig1 libfontconfig1-dbg libfreetype6 libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libglib2.0-0 libglib2.0-0-dbg libglib2.0-dev libglu1-mesa-dev libgnome-keyring0 libgnome-keyring-dev libgtk2.0-0 libgtk2.0-dev libgtk-3-0 libgtk-3-0-dbg libgtk-3-dev libjpeg-dev libkrb5-dev libnspr4 libnspr4-dev libnss3 libnss3-dev libpam0g libpam0g-dev libpango1.0-0 libpango1.0-0-dbg libpci3 libpci-dev libpcre3 libpixman-1-0 libpng16-16 libpulse0 libpulse-dev libsctp-dev libspeechd2 libspeechd-dev libsqlite3-0 libsqlite3-dev libssl-dev libstdc++6 libudev1 libudev-dev libwww-perl libx11-6 libx11-6-dbg libx11-xcb1 libx11-xcb1-dbg libxau6 libxcb1 libxcomposite1 libxcursor1 libxcursor1-dbg libxdamage1 libxdamage1-dbg libxdmcp6 libxext6 libxfixes3 libxfixes3-dbg libxi6 libxi6-dbg libxinerama1 libxkbcommon-dev libxrandr2 libxrandr2-dbg libxrender1 libxrender1-dbg libxslt1-dev libxss-dev libxt-dev libxtst6 libxtst6-dbg libxtst-dev locales mesa-common-dev openbox patch perl php7.0-cgi pkg-config python python-cherrypy3 python-crypto python-dev python-numpy python-opencv python-openssl python-psutil python-yaml realpath rpm ruby subversion ttf-mscorefonts-installer wdiff x11-utils xcompmgr zip zlib1g

No missing packages, and the packages are up to date.

Skipping installation of Chrome OS fonts.
Installing locales.
Locales already up-to-date.
Skipping debugging symbols.
Including 32-bit libraries for ARM/Android.
Skipping ARM cross toolchain.
Skipping NaCl, NaCl toolchain, NaCl ports dependencies.
Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:2 http://dl.google.com/linux/chrome/deb stable Release                     
Hit:4 http://ca.archive.ubuntu.com/ubuntu xenial InRelease                     
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Hit:6 http://ca.archive.ubuntu.com/ubuntu xenial-updates InRelease             
Get:7 http://ca.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]  
Fetched 204 kB in 1s (104 kB/s)                                     
Reading package lists... Done
Finding missing packages...
Packages required:  libpci3:i386 linux-libc-dev:i386 apache2-bin binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf binutils-mips64el-linux-gnuabi64 binutils-mipsel-linux-gnu bison cdbs curl devscripts dpkg-dev elfutils fakeroot flex fonts-ipafont g++ g++-5-multilib git-core git-svn gperf lib32gcc1 lib32stdc++6 libapache2-mod-php7.0 libasound2 libasound2-dev libatk1.0-0 libatk1.0-dbg libav-tools libbluetooth-dev libbrlapi0.6 libbrlapi-dev libbz2-1.0 libbz2-dev libc6 libc6-i386 libcairo2 libcairo2-dbg libcairo2-dev libcap2 libcap-dev libcups2 libcups2-dev libcurl4-gnutls-dev libdrm-dev libelf-dev libexpat1 libffi6 libffi-dev libfontconfig1 libfontconfig1-dbg libfreetype6 libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libglib2.0-0 libglib2.0-0-dbg libglib2.0-dev libglu1-mesa-dev libgnome-keyring0 libgnome-keyring-dev libgtk2.0-0 libgtk2.0-dev libgtk-3-0 libgtk-3-0-dbg libgtk-3-dev libjpeg-dev libkrb5-dev libnspr4 libnspr4-dev libnss3 libnss3-dev libpam0g libpam0g-dev libpango1.0-0 libpango1.0-0-dbg libpci3 libpci-dev libpcre3 libpixman-1-0 libpng16-16 libpulse0 libpulse-dev libsctp-dev libspeechd2 libspeechd-dev libsqlite3-0 libsqlite3-dev libssl-dev libstdc++6 libudev1 libudev-dev libwww-perl libx11-6 libx11-6-dbg libx11-xcb1 libx11-xcb1-dbg libxau6 libxcb1 libxcomposite1 libxcursor1 libxcursor1-dbg libxdamage1 libxdamage1-dbg libxdmcp6 libxext6 libxfixes3 libxfixes3-dbg libxi6 libxi6-dbg libxinerama1 libxkbcommon-dev libxrandr2 libxrandr2-dbg libxrender1 libxrender1-dbg libxslt1-dev libxss-dev libxt-dev libxtst6 libxtst6-dbg libxtst-dev locales mesa-common-dev openbox patch perl php7.0-cgi pkg-config python python-cherrypy3 python-crypto python-dev python-numpy python-opencv python-openssl python-psutil python-yaml realpath rpm ruby subversion ttf-mscorefonts-installer wdiff x11-utils xcompmgr zip zlib1g

No missing packages, and the packages are up to date.

Skipping installation of Chrome OS fonts.
Installing locales.
Locales already up-to-date.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
x11-utils is already the newest version (7.7+3).
lighttpd is already the newest version (1.4.35-4ubuntu2).
python-pexpect is already the newest version (4.0.1-1).
lib32z1 is already the newest version (1:1.2.8.dfsg-2ubuntu4.1).
xvfb is already the newest version (2:1.18.4-0ubuntu0.7).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libncurses5:i386 is already the newest version (6.0+20160213-1ubuntu1).
libstdc++6:i386 is already the newest version (5.4.0-6ubuntu1~16.04.5).
zlib1g:i386 is already the newest version (1:1.2.8.dfsg-2ubuntu4.1).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
bsdiff is already the newest version (4.3-15).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
install-build-deps-android.sh complete.
Patching WebRTC source
Compiling WebRTC
Done. Made 2258 targets from 200 files in 391ms
ninja: Entering directory `.'
[1/4421] CXX obj/api/libjingle_peerconnection_api/jsep.o
FAILED: obj/api/libjingle_peerconnection_api/jsep.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/jsep.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/jsep.cc -o obj/api/libjingle_peerconnection_api/jsep.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[2/4421] CXX obj/webrtc_common/common_types.o
FAILED: obj/webrtc_common/common_types.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/webrtc_common/common_types.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../common_types.cc -o obj/webrtc_common/common_types.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[3/4421] CXX obj/api/libjingle_peerconnection_api/mediastreaminterface.o
FAILED: obj/api/libjingle_peerconnection_api/mediastreaminterface.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/mediastreaminterface.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/mediastreaminterface.cc -o obj/api/libjingle_peerconnection_api/mediastreaminterface.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[4/4421] CXX obj/api/libjingle_peerconnection_api/mediaconstraintsinterface.o
FAILED: obj/api/libjingle_peerconnection_api/mediaconstraintsinterface.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/mediaconstraintsinterface.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/mediaconstraintsinterface.cc -o obj/api/libjingle_peerconnection_api/mediaconstraintsinterface.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[5/4421] CXX obj/api/libjingle_peerconnection_api/rtcerror.o
FAILED: obj/api/libjingle_peerconnection_api/rtcerror.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/rtcerror.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/rtcerror.cc -o obj/api/libjingle_peerconnection_api/rtcerror.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[6/4421] CXX obj/api/libjingle_peerconnection_api/candidate.o
FAILED: obj/api/libjingle_peerconnection_api/candidate.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/candidate.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/candidate.cc -o obj/api/libjingle_peerconnection_api/candidate.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[7/4421] CXX obj/api/libjingle_peerconnection_api/rtp_headers.o
FAILED: obj/api/libjingle_peerconnection_api/rtp_headers.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/rtp_headers.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/rtp_headers.cc -o obj/api/libjingle_peerconnection_api/rtp_headers.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[8/4421] CXX obj/api/libjingle_peerconnection_api/rtpparameters.o
FAILED: obj/api/libjingle_peerconnection_api/rtpparameters.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/rtpparameters.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/rtpparameters.cc -o obj/api/libjingle_peerconnection_api/rtpparameters.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[9/4421] CXX obj/api/libjingle_peerconnection_api/mediatypes.o
FAILED: obj/api/libjingle_peerconnection_api/mediatypes.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/mediatypes.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/mediatypes.cc -o obj/api/libjingle_peerconnection_api/mediatypes.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
[10/4421] CXX obj/api/libjingle_peerconnection_api/proxy.o
FAILED: obj/api/libjingle_peerconnection_api/proxy.o 
../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/libjingle_peerconnection_api/proxy.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__GNU_SOURCE=1 -DCHROMIUM_CXX_TWEAK_INLINES -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_HAS_NEON -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums --target=arm-linux-androideabi -isystem../../third_party/android_tools/ndk/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -D__NDK_FPABI__= -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -mthumb -mthumb-interwork -Wall -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -gdwarf-3 -g1 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-strict-overflow -fno-builtin-cos -fno-builtin-sin -fno-builtin-cosf -fno-builtin-sinf -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include --sysroot=../../third_party/android_tools/ndk/sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../api/proxy.cc -o obj/api/libjingle_peerconnection_api/proxy.o
clang: error: unknown argument: '-fno-tree-sra'
clang: error: unknown argument: '-mthumb-interwork'
clang: warning: optimization flag '-fno-caller-saves' is not supported [-Wignored-optimization-argument]
clang: warning: optimization flag '-fno-delete-null-pointer-checks' is not supported [-Wignored-optimization-argument]
ninja: build stopped: subcommand failed.

No sound on mac

When I run the same code on windows everything works, I have sound when I have a voice conversation with a webrtc page in chrome. However, when I build the same app on Mac and try to make a call I get silence on mac (both ways). All signalling exchange is correct, except I simply don't get any audio, as if some dev/null is used for wavein/waveout on mac. Any ideas/pointers where I should look into?

Thanks

depot-tool bug

When I try to build via
./build.sh

I get :

Associated revision number: 22040
Checking out WebRTC revision (this will take awhile): 00733015fafbbc61ddc12dfdc88b21a9fcd9d122
File "/Users/wolfgang/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 65
print 'Running: %s' % (' '.join(pipes.quote(x) for x in cmd))
^
SyntaxError: invalid syntax

I tried to delete the line but it is back each time the build process run.
Anybody got some idea to fix it?

Fail to compile peer_connection example

Hi vsimon
I've been trying to compile, adding dependancies that are missing from the wiki page on how to compile peer_connection, and I've come to the following error compiling with gcc

/usr/bin/ld: /home/usr/Documents/webrtcbuilds/out/webrtcbuilds-26473-fa89d84-linux-x64/lib/Release/libwebrtc_full.a(psnr.o): undefined reference to symbol 'log10@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line

to which i have no idea how to handle.
Compiling with g++ gives several undefined references to webrtc:: and json:: also.

Fail to compile on mac

on current mac, building with specific build is failing due to usage of --lines and --fields.

REVISION=$(git ls-remote $REPO_URL --heads $BRANCH | head --lines 1 | cut --fields 1) || \

simple change to this works

REVISION=$(git ls-remote $REPO_URL --heads $BRANCH | head -n 1 | cut -f 1) || \

Example of how to include webrtc_full.lib in a Visual Studio project

Hi,

Thanks for this great project !
Following my question on the mailing list: https://groups.google.com/forum/#!topic/webrtcbuilds/AhjHnOO_CCI, I was wondering if it would help anyone to have an example of how to link a build of WebRTC with a C++ Visual Studio project.

I ended up having a webrtc_full.lib static library without too much trouble, however being more of a Linux guy I am having trouble to link it against my Visual Studio project.

I would be glad to propose a pull request to complete the wiki about how to compile peerconnection example on Windows once my problem will be fix. https://github.com/vsimon/webrtcbuilds/wiki/Building-the-peerconnection-example

Thanks again for this great script !

fatal: The remote end hung up unexpectedly

$ ./build.sh -b branch-heads/60 -t android -c arm64

Host OS: mac
Target OS: android
Target CPU: arm64
Checking webrtcbuilds dependencies
Checking depot-tools
Building branch: branch-heads/60
Building revision: 6294a7eb71c891e9ea41273a7a94113f6802d0da
Associated revision number: 18252
Checking out WebRTC revision (this will take awhile): 6294a7eb71c891e9ea41273a7a94113f6802d0da
Running: gclient root
Running: gclient config --spec 'solutions = [
{
"url": "https://webrtc.googlesource.com/src.git",
"managed": False,
"name": "src",
"deps_file": "DEPS",
"custom_deps": {},
},
]
target_os = ["android", "unix"]
'
Running: gclient sync --nohooks --with_branch_heads

src/examples/androidtests/third_party/gradle (ERROR)

[0:00:22] Started.
[0:00:22]

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/external/github.com/gradle/gradle.git /Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125' in '/Users/danny/Downloads/webrtcbuilds-master/out'
[0:00:22] Cloning into '/Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125'...
[0:00:23] fatal: remote error: want e6b08dfae6525b5a8d069ac48c52b08d86aa47d2 not valid
[0:00:23] fatal: The remote end hung up unexpectedly

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/external/github.com/gradle/gradle.git /Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125' in '/Users/danny/Downloads/webrtcbuilds-master/out'
[0:00:23] Cloning into '/Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125'...
[0:00:24] fatal: remote error: want e6b08dfae6525b5a8d069ac48c52b08d86aa47d2 not valid
[0:00:24] fatal: The remote end hung up unexpectedly

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/external/github.com/gradle/gradle.git /Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125' in '/Users/danny/Downloads/webrtcbuilds-master/out'
[0:00:25] Cloning into '/Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125'...
[0:00:26] fatal: remote error: want e6b08dfae6525b5a8d069ac48c52b08d86aa47d2 not valid
[0:00:26] fatal: The remote end hung up unexpectedly

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/external/github.com/gradle/gradle.git /Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125' in '/Users/danny/Downloads/webrtcbuilds-master/out'
[0:00:28] Cloning into '/Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125'...
[0:00:28] fatal: remote error: want e6b08dfae6525b5a8d069ac48c52b08d86aa47d2 not valid
[0:00:28] fatal: The remote end hung up unexpectedly
Traceback (most recent call last):
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_scm.py", line 899, in _Clone
self._Run(clone_cmd, options, cwd=self._root_dir, retry=True)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_scm.py", line 1203, in _Run
gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_utils.py", line 314, in CheckCallAndFilterAndHeader
return CheckCallAndFilter(args, **kwargs)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_utils.py", line 560, in CheckCallAndFilter
rv, args, kwargs.get('cwd', None), None, None)
CalledProcessError: Command 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/external/github.com/gradle/gradle.git /Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125' returned non-zero exit status 128 in /Users/danny/Downloads/webrtcbuilds-master/out

Traceback (most recent call last):
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient.py", line 2836, in
sys.exit(main(sys.argv[1:]))
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient.py", line 2822, in main
return dispatcher.execute(OptionParser(), argv)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/subcommand.py", line 252, in execute
return command(parser, args[1:])
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient.py", line 2577, in CMDsync
ret = client.RunOnDeps('update', args)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient.py", line 1578, in RunOnDeps
work_queue.flush(revision_overrides, command, args, options=self._options)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_utils.py", line 1059, in run
self.item.run(*self.args, **self.kwargs)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient.py", line 932, in run
file_list)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_scm.py", line 129, in RunCommand
return getattr(self, command)(options, args, file_list)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_scm.py", line 419, in update
self._Clone(revision, url, options)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/gclient_scm.py", line 907, in _Clone
if os.listdir(tmp_dir):
OSError: [Errno 2] No such file or directory: '/Users/danny/Downloads/webrtcbuilds-master/out/src/examples/androidtests/third_party/_gclient_gradle_nKx125'
Traceback (most recent call last):
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 301, in
sys.exit(main())
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 296, in main
return run(options, spec, root)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 290, in run
return checkout.init()
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 133, in init
self.run_gclient(*sync_cmd)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 78, in run_gclient
return self.run(cmd_prefix + cmd, **kwargs)
File "/Users/danny/Downloads/webrtcbuilds-master/depot_tools/fetch.py", line 68, in run
return subprocess.check_output(cmd, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 573, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '('gclient', 'sync', '--nohooks', '--with_branch_heads')' returned non-zero exit status 1

ERROR Unresolved dependencies.

Hi,

I encountered as following error while building on Ubuntu 16.04.
I don't know which package is missed.
Could you help me ?

Compiling WebRTC

  • compile linux /home/netmind/opensrcs/visimonwebrtcbuild/out linux x64
  • local platform=linux
  • local outdir=/home/netmind/opensrcs/visimonwebrtcbuild/out
  • local target_os=linux
  • local target_cpu=x64
  • local 'common_args=is_component_build=false rtc_include_tests=false'
  • local 'target_args=target_os="linux" target_cpu="x64"'
  • pushd /home/netmind/opensrcs/visimonwebrtcbuild/out/src
  • case $platform in
  • '[' linux = linux ']'
  • target_args+=' is_clang=false use_sysroot=false'
  • gn gen out/Debug '--args=is_component_build=false rtc_include_tests=false target_os="linux" target_cpu="x64" is_clang=false use_sysroot=false'
    ERROR Unresolved dependencies.
    //:default(//build/toolchain/linux:x64)
    needs //webrtc:webrtc(//build/toolchain/linux:x64)

how to compile webrtc?

can u tell me how to compile webrtc? I've tried countless times for several months, but I failed.. I follow the official instructions, I've tried njnia or vs2013... there were various problems. :(
i need linux32 too,so that i can work with andorid device.i just want android device communicate to pc(both linux and windows).

there is my email [email protected], thank you sooooooooooooo much!!!

PeerConnection client wiki post does not behave correctly. Cannot compile

The basic instructions for building the WebRTC PeerConnection client on Linux no longer appears to work.

I did try to assemble a Makefile version. But that ends up failing with a couple unresolved symbols.

INC=-I/ -I../../.. -I/usr/include/jsoncpp -I../../../third_party/libyuv/include
WEBRTCBUILDS_FOLDER=/home/elischleifer/WebRTCBuilds/webrtcbuilds/out/webrtcbuilds-20416-9de3aac-linux-x64
PKG_CONFIG_PATH=$WEBRTCBUILDS_FOLDER/lib/Debug/pkgconfig
CPPFLAGS=-DWEBRTC_POSIX

client: linux/main.cc linux/main_wnd.cc conductor.cc defaults.cc peer_connection_client.cc
@echo Building client
g++ $(INC) $(CPPFLAGS) -o $@ $^
$(shell pkg-config --cflags --libs --define-variable=prefix=$(WEBRTCBUILDS_FOLDER) libwebrtc_full)
$(shell pkg-config --cflags --libs gtk+-2.0)
$(shell pkg-config --cflags --libs x11)

clean:
rm -f client client.o

It seems that simd_asm.lib is not packaged into webrtc_full.lib

Hi,

I create a Visual Studio project, and link against webrtc_full.lib,
error like this:
webrtc_full.lib(jsimd_x86_64.obj) : error LNK2019: 无法解析的外部符号 jsimd_rgb_ycc_convert_sse2,该符号在函数 jsimd_rgb_ycc_convert 中被引用

When I add link library simd_asm.lib, build successfully.

It seems that simd_asm.lib is not in webrtc_full.lib and need link separately.

Subclass link error

Hi vsimon!
I got a lot link errors recently. I finally locate the problem after testing.
When extending subclass from some webrtc class ie rtc::Thread, g++ will say undefined reference to `typeinfo for rtc::Thread'.

Code:

#include <iostream>
#include "webrtc/base/thread.h"

class GangCapturerThread: public rtc::Thread {
public:
    explicit GangCapturerThread() {
    }
    virtual ~GangCapturerThread() {
    }

    void Print() {
        std::cout << "ok" << std::endl;
    }
};

int main(int argc, char **argv) {
    GangCapturerThread thread;
    thread.Print();
}

Command:

g++ ./main.cc    `pkg-config --cflags --libs --define-variable=prefix=/home/savage/soft/webrtc/webrtc-linux64 libwebrtc_full` -o "ic-webrtc"

Error:

./main.o:(.rodata._ZTI18GangCapturerThread[_ZTI18GangCapturerThread]+0x10): undefined reference to `typeinfo for rtc::Thread'
collect2: error: ld returned 1 exit status

Another Test:

#include <iostream>
#include "webrtc/base/thread.h"

int main(int argc, char **argv) {
    rtc::Thread* thread = rtc::Thread::Current();
    std::cout << thread->IsCurrent() << std::endl;
}

Everything's ok!
I've no idea what's wrong with the subclass.

Build with Third_Party Json?

I see the flag WEBRTC_EXTERNAL_JSON inside of the webrtc headers. However I can not use it because the third_party headers are not included. Is it possible to compile webrtc with these third_party headers? I am having a lot of problems with my systems jsoncpp library.

Support for Screen Sharing

Hello There,
Will you ever have support screen sharing with an example for OSX native world?

Appreciate your effort.

Thanks!

Linux errors when running test

Currently I am getting this output when trying to run the test on Ubuntu 16.04

ben@ben-ubuntu16:~/src/webrtcbuilds/test$ ./run_tests.sh /home/ben/src/webrtcbuilds/out/webrtcbuilds-25370-359d60a-linux-x64 /home/ben/src/webrtcbuilds/test/simple_app.cc: In function ‘int main(int, char**)’: /home/ben/src/webrtcbuilds/test/simple_app.cc:38:11: error: too few arguments to function ‘rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> webrtc::CreatePeerConnectionFactory(rtc::Thread*, rtc::Thread*, rtc::Thread*, rtc::scoped_refptr<webrtc::AudioDeviceModule>, rtc::scoped_refptr<webrtc::AudioEncoderFactory>, rtc::scoped_refptr<webrtc::AudioDecoderFactory>, std::unique_ptr<webrtc::VideoEncoderFactory>, std::unique_ptr<webrtc::VideoDecoderFactory>, rtc::scoped_refptr<webrtc::AudioMixer>, rtc::scoped_refptr<webrtc::AudioProcessing>)’ NULL); ^ In file included from /home/ben/src/webrtcbuilds/test/simple_app.cc:6:0: /home/ben/src/webrtcbuilds/out/webrtcbuilds-25370-359d60a-linux-x64/include/api/peerconnectioninterface.h:1424:1: note: declared here CreatePeerConnectionFactory( ^ In file included from /usr/include/c++/5/memory:81:0, from /home/ben/src/webrtcbuilds/out/webrtcbuilds-25370-359d60a-linux-x64/include/rtc_base/thread.h:16, from /home/ben/src/webrtcbuilds/test/simple_app.cc:4: /usr/include/c++/5/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = webrtc::VideoEncoderFactory]’: /usr/include/c++/5/bits/unique_ptr.h:236:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = webrtc::VideoEncoderFactory; _Dp = std::default_delete<webrtc::VideoEncoderFactory>]’ /usr/include/c++/5/bits/unique_ptr.h:200:61: required from ‘constexpr std::unique_ptr<_Tp, _Dp>::unique_ptr(std::nullptr_t) [with _Tp = webrtc::VideoEncoderFactory; _Dp = std::default_delete<webrtc::VideoEncoderFactory>; std::nullptr_t = std::nullptr_t]’ /home/ben/src/webrtcbuilds/test/simple_app.cc:38:11: required from here /usr/include/c++/5/bits/unique_ptr.h:74:22: error: invalid application of ‘sizeof’ to incomplete type ‘webrtc::VideoEncoderFactory’ static_assert(sizeof(_Tp)>0, ^ /usr/include/c++/5/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = webrtc::VideoDecoderFactory]’: /usr/include/c++/5/bits/unique_ptr.h:236:17: required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = webrtc::VideoDecoderFactory; _Dp = std::default_delete<webrtc::VideoDecoderFactory>]’ /usr/include/c++/5/bits/unique_ptr.h:200:61: required from ‘constexpr std::unique_ptr<_Tp, _Dp>::unique_ptr(std::nullptr_t) [with _Tp = webrtc::VideoDecoderFactory; _Dp = std::default_delete<webrtc::VideoDecoderFactory>; std::nullptr_t = std::nullptr_t]’ /home/ben/src/webrtcbuilds/test/simple_app.cc:38:11: required from here /usr/include/c++/5/bits/unique_ptr.h:74:22: error: invalid application of ‘sizeof’ to incomplete type ‘webrtc::VideoDecoderFactory’

Build problems under Microsoft Windows

The Microsoft Windows build does not work for me. I have created a fork to fix the problems, and will post a pull request when done. If someone can provide a little help with a problem regarding depot_tools listed under 'Next problem', I would appreciate it.

Problems fixed so far:

  • Platform detection (util.sh function set-platform): the (recommended) git bash shell returns an $OSTYPE value of 'msys' (mingw). Added detection of $OSTYPE 'msys', set PLATFORM to 'windows'.
  • curl output directory creation (util.sh function check::deps): the 'curl' command to load jq.exe fails to create the output directory, even with --create-dirs specified. Added an explicit 'mkdir --parents', this fixed the problem.

Next problem:

  • depot_tools, fetch command (util.sh function checkout): the 'fetch' command is not found. This may result from an interaction between util.sh functions check::depot-tools and check:deps. check::deps creates the depot_tools directory to load python276_bin/jq.exe, so check::depot-tools finds that the depot_tools directory already exists, and does not load the tools. I would appreciate any suggestions about how to fix the handling in a clean manner.

src/setup_links.py --force

I downloaded latest version of webrtcbuilds
and ran the following :

build.sh -b 50 -t linux

________ running '/usr/bin/python src/setup_links.py' in '/mnt/vdb/webrtcbuilds/out'
Dangerous actions:
Planning to remove file: third_party/BUILD.gn
Planning to remove directory: testing
Planning to remove directory: third_party/binutils
Planning to remove directory: third_party/boringssl
Planning to remove directory: third_party/colorama
Planning to remove directory: third_party/drmemory
Planning to remove directory: third_party/expat
Planning to remove directory: third_party/ffmpeg
Planning to remove directory: third_party/instrumented_libraries
Planning to remove directory: third_party/jsoncpp
Planning to remove directory: third_party/libjpeg
Planning to remove directory: third_party/libjpeg_turbo
Planning to remove directory: third_party/libsrtp
Planning to remove directory: third_party/libudev
Planning to remove directory: third_party/libyuv
Planning to remove directory: third_party/lss
Planning to remove directory: third_party/ocmock
Planning to remove directory: third_party/openh264
Planning to remove directory: third_party/openmax_dl
Planning to remove directory: third_party/opus
Planning to remove directory: third_party/proguard
Planning to remove directory: third_party/protobuf
Planning to remove directory: third_party/sqlite
Planning to remove directory: third_party/usrsctp
Planning to remove directory: third_party/yasm
Planning to remove directory: third_party/zlib
Planning to remove directory: tools/clang
Planning to remove directory: tools/generate_library_loader
Planning to remove directory: tools/generate_stubs
Planning to remove directory: tools/gn
Planning to remove directory: tools/gyp
Planning to remove directory: tools/mb
Planning to remove directory: tools/memory
Planning to remove directory: tools/protoc_wrapper
Planning to remove directory: tools/python
Planning to remove directory: tools/swarming_client
Planning to remove directory: tools/valgrind
Planning to remove directory: tools/vim
Planning to remove directory: tools/win
Planning to remove directory: tools/xdisplaycheck
Planning to remove directory: build
Planning to remove directory: buildtools
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                      A C T I O N     R E Q I R E D
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Because chromium/src is transitioning to Git (from SVN), we needed to
change the way that the WebRTC standalone checkout works. Instead of
individually syncing subdirectories of Chromium in SVN, we're now
syncing Chromium (and all of its DEPS, as defined by its own DEPS file),
into the `chromium/src` directory.

As such, all Chromium directories which are currently pulled by DEPS are
now replaced with a symlink into the full Chromium checkout.

To avoid disrupting developers, we've chosen to not delete your
directories forcibly, in case you have some work in progress in one of
them :).

ACTION REQUIRED:
Before running `gclient sync|runhooks` again, you must run:
src/setup_links.py --force

Which will replace all directories which now must be symlinks, after
prompting with a summary of the work-to-be-done.


Error: Command '/usr/bin/python src/setup_links.py' returned non-zero exit status 1 in /mnt/vdb/webrtcbuilds/out

Building with GN instead of GYP

Does it make sense to transition the build to using GN instead of GYP? @agouaillard mentioned the issue in his comment on pull request #18.

Alex referenced the Google+ discuss-webrtc PSA by Henrik Kjellander https://groups.google.com/forum/?fromgroups#!topic/discuss-webrtc/QMJBvIn1Y3o (as I write this, updated 12 hours ago), which states that all builds other than iOS now use GN instead of GYP.

Presumably, updating to GN might be a problem for people building older revisions of WebRTC.

Thoughts?

Build problems under Ubuntu 16.04 64-bit

build.sh generates an error after running for approximately 35 minutes, shortly after completing the git checkout.

The operating system is Ubuntu 16.04 64-bit running on AMD.

The error report from the console is (to make it easier to read, I have replaced my path to the webrtcbuilds directory with '...', the replaced path is approximately 46 characters long):

________ running '/usr/bin/python src/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' in '.../webrtcbuilds/out/src/chromium'
Error: Command '/usr/bin/python src/build/linux/sysroot_scripts/install-sysroot.py --running-as-hook' returned non-zero exit status 1 in .../webrtcbuilds/out/src/chromium
Installing Debian Wheezy amd64 root image: .../webrtcbuilds/out/src/chromium/src/build/linux/debian_wheezy_amd64-sysroot
Downloading https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/c09e94d74f6efc174bd88195eee902b4350fc006/debian_wheezy_amd64_sysroot.tgz
Traceback (most recent call last):
File "src/build/linux/sysroot_scripts/install-sysroot.py", line 232, in
sys.exit(main(sys.argv[1:]))
File "src/build/linux/sysroot_scripts/install-sysroot.py", line 153, in main
InstallDefaultSysroots()
File "src/build/linux/sysroot_scripts/install-sysroot.py", line 127, in InstallDefaultSysroots
InstallSysroot(host_arch)
File "src/build/linux/sysroot_scripts/install-sysroot.py", line 218, in InstallSysroot
['curl', '--fail', '--retry', '3', '-L', url, '-o', tarball])
File "/usr/lib/python2.7/subprocess.py", line 536, in check_call
retcode = call(_popenargs, *_kwargs)
File "/usr/lib/python2.7/subprocess.py", line 523, in call
return Popen(_popenargs, *_kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 711, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Error: Command '/usr/bin/python -u src/sync_chromium.py --target-revision 938114be1ecffa98a68ededc466b85ab6b16dcd8' returned non-zero exit status 2 in .../webrtcbuilds/out

Cross compiling

I'm trying to cross compile WebRTC to Windows on a Linux machine. This requires a win_toolchain. I used this script to produce the toolchain.

The toolchain is stored as a zip file. I was wondering if there is a way to feed this toolchain to the build.sh script as input.

Chromium instruction on cross-compiling is not clear how to use the toolchain.

Build problems on OSX

  1. checking for the absence of variable via -v MSVSVER does not work with the 'nounset' option on non-windows platforms.
  2. readlink on osx does not have an -f option.

GetVideoCaptureDevices causes exit dierctly

Hi vsimon!
Thanks for your help with issues#1.
I came across another problem when going further.
It took me days finding the answer,but failed again.

I copied OpenVideoCaptureDevice() from examples code. But when it runs, it exits in the mid-way.
Code:

#include "talk/media/devices/devicemanager.h"
#include "webrtc/base/logging.h"

cricket::VideoCapturer* OpenVideoCaptureDevice() {
    rtc::scoped_ptr<cricket::DeviceManagerInterface> dev_manager(
            cricket::DeviceManagerFactory::Create());
    if (!dev_manager->Init()) {
        LOG(LS_ERROR) << "Can't create device manager";
        return NULL;
    }
    std::vector<cricket::Device> devs;
    LOG(LS_INFO) << "dev_manager->GetVideoCaptureDevices(&devs)";
    bool has = dev_manager->GetVideoCaptureDevices(&devs);
    LOG(LS_INFO) << "WILL NEVER BE HERE!!!WHY?";
    if (!has) {
        LOG(LS_ERROR) << "Can't enumerate video devices";
        return NULL;
    }
    std::vector<cricket::Device>::iterator dev_it = devs.begin();
    cricket::VideoCapturer* capturer = NULL;
    for (; dev_it != devs.end(); ++dev_it) {
        capturer = dev_manager->CreateVideoCapturer(*dev_it);
        if (capturer != NULL)
            break;
    }
    return capturer;
}

int main(int argc, char **argv) {
    cricket::VideoCapturer* vc = OpenVideoCaptureDevice();
    LOG(LS_INFO) << typeid(vc).name();
    return 0;
}

Console:

dev_manager->GetVideoCaptureDevices(&devs)
Enumerating V4L2 devices
V4L2 device metadata found at /sys/class/video4linux/
Found V4L2 capture device /dev/video0
Trying /sys/class/video4linux/video0/name
Name for video0 is Loopback video device 0
Total V4L2 devices found : 1

I found that this line causes the exit after debug: devicemanager.cc#L360

  for (std::vector<Device>::iterator it = devices->begin();

called by: main()

bool has = dev_manager->GetVideoCaptureDevices(&devs);

So i replaced that line to:

        const char* const kFilteredVideoDevicesName[] = {NULL, };
...
    devs.clear();
    devs.push_back(cricket::Device("Loopback video device 0", "/dev/video0"));

    bool has = cricket::DeviceManager::FilterDevices(&devs,
            kFilteredVideoDevicesName);

Then got error:

Building target: practice
Invoking: GCC C++ Linker
g++  ./play.o    `pkg-config --libs --define-variable=prefix=/home/savage/soft/webrtc/webrtc-linux64 libwebrtc_full` -o "practice"
./play.o: In function `OpenVideoCaptureDevice()':
/home/savage/soft/workspace/cpp/practice/Debug/../play.cc:21: undefined reference to `cricket::DeviceManager::FilterDevices(std::vector<cricket::Device, std::allocator<cricket::Device> >*, char const* const*)'
collect2: error: ld returned 1 exit status
make: *** [practice] Error 1

Then i google again and again, but still found nothing.
Can you help me again?Thanks!

Script fails trying to install ancient "apache2.2-bin" package (apache2-bin is new name)

The package, apache2.2-bin, is not avaliable in Debian stable (buster) or Debian oldstable (stretch). It is only available in oldoldstable (jessie) or in older unsupported historical archives.

Even in jessie, the package does not do anything. It just has a dependency on apache2-bin. It's a transitional package for upgrading to jessie from even older versions. Unfortunately, it pins the version, so that it wants to install the ancient apache2-bin from jessie, which conflicts with installing an up-to-date apache.

The dependency should simply be changed to apache2-bin. Nothing will break unless someone tries to build it on a Debian-based system even older than jessie.

This is from the log of the build. I included a lot of context; the error is at the bottom.

Checking WebRTC dependencies
Hit:1 http://security.debian.org stretch/updates InRelease
Hit:2 http://security.debian.org buster/updates InRelease
Hit:5 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Ign:3 http://cdn-fastly.deb.debian.org/debian oldoldstable InRelease
Ign:4 http://cdn-fastly.deb.debian.org/debian stretch InRelease
Hit:6 http://cdn-fastly.deb.debian.org/debian stretch-backports InRelease
Hit:7 http://cdn-fastly.deb.debian.org/debian buster InRelease
Hit:8 http://cdn-fastly.deb.debian.org/debian buster-backports InRelease
Hit:9 http://cdn-fastly.deb.debian.org/debian oldoldstable Release
Hit:10 http://cdn-fastly.deb.debian.org/debian stretch Release
Hit:11 https://download.jitsi.org stable/ InRelease
Reading package lists... Done
Building apt package list.
Skipping debugging symbols.
Skipping 32-bit libraries.
Skipping ARM cross toolchain.
Skipping NaCl, NaCl toolchain, NaCl ports dependencies.
Finding missing packages...
Packages required:  apache2.2-bin binutils binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf binutils-mips64el-linux-gnuab
i64 binutils-mipsel-linux-gnu bison bzip2 cdbs curl dbus-x11 devscripts dpkg-dev elfutils fakeroot flex git-core gperf lib32gcc1
 lib32stdc++6 libapache2-mod-php7.0 libappindicator3-1 libappindicator3-dev libasound2 libasound2-dev libatk1.0-0 libatspi2.0-0
libatspi2.0-dev libav-tools libbluetooth-dev libbrlapi0.6 libbrlapi-dev libbz2-1.0 libbz2-dev libc6 libc6-dev libc6-i386 libcair
o2 libcairo2-dev libcap2 libcap-dev libcups2 libcups2-dev libcurl4-gnutls-dev libdrm-dev libelf-dev libexpat1 libffi6 libffi-dev
 libfontconfig1 libfreetype6 libgbm-dev libglib2.0-0 libglib2.0-dev libglu1-mesa-dev libgnome-keyring0 libgnome-keyring-dev libg
tk-3-0 libgtk-3-dev libjpeg-dev libkrb5-dev libnspr4 libnspr4-dev libnss3 libnss3-dev libpam0g libpam0g-dev libpango1.0-0 libpci
3 libpci-dev libpcre3 libpixman-1-0 libpng16-16 libpulse0 libpulse-dev libsctp-dev libspeechd2 libspeechd-dev libsqlite3-0 libsq
lite3-dev libssl-dev libstdc++6 libudev1 libudev-dev libuuid1 libwayland-egl1-mesa libwww-perl libx11-6 libx11-xcb1 libxau6 libx
cb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon-dev libxrandr2 libxren
der1 libxslt1-dev libxss-dev libxt-dev libxtst6 libxtst-dev locales openbox p7zip patch perl php7.0-cgi pkg-config python python
-cherrypy3 python-crypto python-dev python-numpy python-opencv python-openssl python-psutil python-yaml realpath rpm ruby subver
sion uuid-dev wdiff x11-utils xcompmgr xz-utils zip zlib1g

E: Unable to correct problems, you have held broken packages.
The following command failed:  apt-get --just-print install apache2.2-bin binutils binutils-aarch64-linux-gnu binutils-arm-linux
-gnueabihf binutils-mips64el-linux-gnuabi64 binutils-mipsel-linux-gnu bison bzip2 cdbs curl dbus-x11 devscripts dpkg-dev elfutil
s fakeroot flex git-core gperf lib32gcc1 lib32stdc++6 libapache2-mod-php7.0 libappindicator3-1 libappindicator3-dev libasound2 l
ibasound2-dev libatk1.0-0 libatspi2.0-0 libatspi2.0-dev libav-tools libbluetooth-dev libbrlapi0.6 libbrlapi-dev libbz2-1.0 libbz
2-dev libc6 libc6-dev libc6-i386 libcairo2 libcairo2-dev libcap2 libcap-dev libcups2 libcups2-dev libcurl4-gnutls-dev libdrm-dev
 libelf-dev libexpat1 libffi6 libffi-dev libfontconfig1 libfreetype6 libgbm-dev libglib2.0-0 libglib2.0-dev libglu1-mesa-dev lib
gnome-keyring0 libgnome-keyring-dev libgtk-3-0 libgtk-3-dev libjpeg-dev libkrb5-dev libnspr4 libnspr4-dev libnss3 libnss3-dev li
bpam0g libpam0g-dev libpango1.0-0 libpci3 libpci-dev libpcre3 libpixman-1-0 libpng16-16 libpulse0 libpulse-dev libsctp-dev libsp
eechd2 libspeechd-dev libsqlite3-0 libsqlite3-dev libssl-dev libstdc++6 libudev1 libudev-dev libuuid1 libwayland-egl1-mesa libww
w-perl libx11-6 libx11-xcb1 libxau6 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxiner
ama1 libxkbcommon-dev libxrandr2 libxrender1 libxslt1-dev libxss-dev libxt-dev libxtst6 libxtst-dev locales openbox p7zip patch
perl php7.0-cgi pkg-config python python-cherrypy3 python-crypto python-dev python-numpy python-opencv python-openssl python-psu
til python-yaml realpath rpm ruby subversion uuid-dev wdiff x11-utils xcompmgr xz-utils zip zlib1g

It produced the following output:
Reading package lists...
Building dependency tree...
Reading state information...
libxau6 is already the newest version (1:1.0.8-1).
libxss-dev is already the newest version (1:1.2.2-1).
libasound2 is already the newest version (1.1.3-5).
libasound2-dev is already the newest version (1.1.3-5).
libatspi2.0-0 is already the newest version (2.22.0-6+deb9u1).
libatspi2.0-dev is already the newest version (2.22.0-6+deb9u1).
libatk1.0-0 is already the newest version (2.22.0-1).
binutils is already the newest version (2.28-5).
binutils set to manually installed.
libbrlapi0.6 is already the newest version (5.4-7+deb9u1).
libbrlapi0.6 set to manually installed.
bzip2 is already the newest version (1.0.6-8.1).
libbz2-1.0 is already the newest version (1.0.6-8.1).
libbz2-dev is already the newest version (1.0.6-8.1).
libcairo2 is already the newest version (1.14.8-1).
libcairo2-dev is already the newest version (1.14.8-1).
cdbs is already the newest version (0.4.150).
python-cherrypy3 is already the newest version (3.5.0-2).
python-cherrypy3 set to manually installed.
libcups2 is already the newest version (2.2.1-8+deb9u4).
curl is already the newest version (7.52.1-5+deb9u9).
dbus-x11 is already the newest version (1.10.28-0+deb9u1).
devscripts is already the newest version (2.17.6+deb9u2).
dpkg-dev is already the newest version (1.18.25).
fakeroot is already the newest version (1.21-3.1).
libfontconfig1 is already the newest version (2.11.0-6.7+b1).
libfreetype6 is already the newest version (2.6.3-3.2).
libfreetype6 set to manually installed.
lib32gcc1 is already the newest version (1:6.3.0-18+deb9u1).
lib32gcc1 set to manually installed.
lib32stdc++6 is already the newest version (6.3.0-18+deb9u1).
lib32stdc++6 set to manually installed.
libstdc++6 is already the newest version (6.3.0-18+deb9u1).
libglib2.0-0 is already the newest version (2.50.3-2+deb9u1).
libglib2.0-dev is already the newest version (2.50.3-2+deb9u1).
gperf is already the newest version (3.0.4-2+b1).
libgtk-3-0 is already the newest version (3.22.11-1).
libgtk-3-dev is already the newest version (3.22.11-1).
libkrb5-dev is already the newest version (1.15-1+deb9u1).
libappindicator3-1 is already the newest version (0.4.92-4).
libappindicator3-1 set to manually installed.
libcap-dev is already the newest version (1:2.25-1).
libcap2 is already the newest version (1:2.25-1).
libdrm-dev is already the newest version (2.4.74-1).
libffi-dev is already the newest version (3.2.1-6).
libffi-dev set to manually installed.
libffi6 is already the newest version (3.2.1-6).
libglu1-mesa-dev is already the newest version (9.0.0-2.1).
libjpeg-dev is already the newest version (1:1.5.1-2).
libpng16-16 is already the newest version (1.6.28-1+deb9u1).
libpng16-16 set to manually installed.
libwww-perl is already the newest version (6.15-1).
libx11-6 is already the newest version (2:1.6.4-3+deb9u1).
libx11-xcb1 is already the newest version (2:1.6.4-3+deb9u1).
libxcb1 is already the newest version (1.12-1).
libxcomposite1 is already the newest version (1:0.4.4-2).
libxcursor1 is already the newest version (1:1.1.14-1+deb9u2).
libxdamage1 is already the newest version (1:1.1.4-2+b3).
libxdmcp6 is already the newest version (1:1.1.2-3).
libxext6 is already the newest version (2:1.3.3-1+b2).
libxfixes3 is already the newest version (1:5.0.3-1).
libxi6 is already the newest version (2:1.7.9-1).
libxinerama1 is already the newest version (2:1.1.3-1+b3).
libxkbcommon-dev is already the newest version (0.7.1-2~deb9u1).
libxrandr2 is already the newest version (2:1.5.1-1).
libxrender1 is already the newest version (1:0.9.10-1).
libxt-dev is already the newest version (1:1.1.5-1).
libxtst-dev is already the newest version (2:1.2.3-1).
libxtst6 is already the newest version (2:1.2.3-1).
libwayland-egl1-mesa is already the newest version (13.0.6-1+b2).
libnspr4 is already the newest version (2:4.12-6).
libnspr4 set to manually installed.
libnss3 is already the newest version (2:3.26.2-1.1+deb9u1).
libnss3 set to manually installed.
python-opencv is already the newest version (2.4.9.1+dfsg1-2).
p7zip is already the newest version (16.02+dfsg-3+deb9u1).
p7zip set to manually installed.
libpam0g is already the newest version (1.1.8-3.6).
libpam0g-dev is already the newest version (1.1.8-3.6).
libpango1.0-0 is already the newest version (1.40.5-1).
libpango1.0-0 set to manually installed.
patch is already the newest version (2.7.5-1+deb9u2).
libpci3 is already the newest version (1:3.5.2-1).
libpci3 set to manually installed.
libpcre3 is already the newest version (2:8.39-3).
perl is already the newest version (5.24.1-3+deb9u5).
perl set to manually installed.
libpixman-1-0 is already the newest version (0.34.0-1).
pkg-config is already the newest version (0.29-4+b1).
libpulse-dev is already the newest version (10.0-1+deb9u1).
libpulse0 is already the newest version (10.0-1+deb9u1).
python-openssl is already the newest version (16.2.0-1).
python-openssl set to manually installed.
python-crypto is already the newest version (2.6.1-7).
python-crypto set to manually installed.
python is already the newest version (2.7.13-2).
python set to manually installed.
python-dev is already the newest version (2.7.13-2).
python-dev set to manually installed.
python-numpy is already the newest version (1:1.12.1-3).
python-yaml is already the newest version (3.12-1).
python-yaml set to manually installed.
libspeechd2 is already the newest version (0.8.6-4+deb9u1).
libspeechd2 set to manually installed.
libsqlite3-0 is already the newest version (3.16.2-5+deb9u1).
libsqlite3-0 set to manually installed.
libsqlite3-dev is already the newest version (3.16.2-5+deb9u1).
libudev-dev is already the newest version (232-25+deb9u12).
libudev1 is already the newest version (232-25+deb9u12).
libuuid1 is already the newest version (2.29.2-1+deb9u1).
uuid-dev is already the newest version (2.29.2-1+deb9u1).
uuid-dev set to manually installed.
wdiff is already the newest version (1.2.2-2).
x11-utils is already the newest version (7.7+3+b1).
xz-utils is already the newest version (5.2.2-1.2+b1).
zip is already the newest version (3.0-11+b1).
zlib1g is already the newest version (1:1.2.8.dfsg-5).
libexpat1 is already the newest version (2.2.0-2+deb9u3).
libc6 is already the newest version (2.28-10).
libc6-dev is already the newest version (2.28-10).
libc6-i386 is already the newest version (2.28-10).
libc6-i386 set to manually installed.
locales is already the newest version (2.28-10).
libssl-dev is already the newest version (1.1.1d-0+deb10u2).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apache2.2-bin : Depends: apache2-bin (= 2.4.10-10+deb8u12) but 2.4.25-3+deb9u9 is to be installed

You will have to install the above packages yourself.

ERROR Unresolved dependencies (webrtc_tests)

My (previously working) build fails, now complaining that //webrtc:webrtc_tests(//build/toolchain/linux:x64) has not been built. Is rtc_include_tests=false correct?

build.sh -d output:

Compiling WebRTC
+ compile linux /home/rob/libs/webrtcbuilds/out linux x64
+ local platform=linux
+ local outdir=/home/rob/libs/webrtcbuilds/out
+ local target_os=linux
+ local target_cpu=x64
+ local 'common_args=is_component_build=false rtc_include_tests=false'
+ local 'target_args=target_os="linux" target_cpu="x64"'
+ pushd /home/rob/libs/webrtcbuilds/out/src
+ case $platform in
+ '[' linux = linux ']'
+ target_args+=' is_clang=false use_sysroot=false'
+ gn gen out/Debug '--args=is_component_build=false rtc_include_tests=false target_os="linux" target_cpu="x64" is_clang=false use_sysroot=false'
ERROR Unresolved dependencies.
//:default(//build/toolchain/linux:x64)
  needs //webrtc:webrtc(//build/toolchain/linux:x64)
//:default(//build/toolchain/linux:x64)
  needs //webrtc:webrtc_tests(//build/toolchain/linux:x64)

Cannot build server peer connection

Hi,

When I try to build example that guide in https://github.com/vsimon/webrtcbuilds/wiki/Building-the-peerconnection-example I get a failed message.

hq@hq:~/buildwebrtc/webrtcbuilds/out/src/examples/peerconnection/server$ g++ -o peerconnection_server main.cc data_socket.cc peer_channel.cc utils.cc -I/home/hq/buildwebrtc/webrtcbuilds/out/webrtcbuilds-23375-cefc465-linux-x64/include -I/home/hq/buildwebrtc/webrtcbuilds/out/src -DWEBRTC_POSIX -DWEBRTC_LINUX $(pkg-config --cflags --libs --define-variable=prefix=$WEBRTCBUILDS_FOLDER libwebrtc_full) -L/home/hq/buildwebrtc/webrtcbuilds/out/webrtcbuilds-23375-cefc465-linux-x64/lib/Release -std=c++11 -lwebrtc_full -lpthread
Variable 'WEBRTC_LOCAL' not defined in '/home/hq/buildwebrtc/webrtcbuilds/out/webrtcbuilds-23375-cefc465-linux-x64/lib/Release/pkgconfig/libwebrtc_full.pc'
/tmp/ccX18aQA.o: In function main': main.cc:(.text+0x7bb): undefined reference to webrtc::test::CommandLineParser::SetUsageMessage(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
main.cc:(.text+0x83e): undefined reference to webrtc::test::CommandLineParser::SetFlag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' main.cc:(.text+0x8ee): undefined reference to webrtc::test::CommandLineParser::SetFlag(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
main.cc:(.text+0x983): undefined reference to webrtc::test::CommandLineParser::GetFlag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' main.cc:(.text+0xa2d): undefined reference to webrtc::test::CommandLineParser::GetFlag(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
/tmp/ccj2g8Hf.o: In function rtc::s_url_decode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': peer_channel.cc:(.text._ZN3rtc12s_url_decodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN3rtc12s_url_decodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x33): undefined reference to rtc::s_transform(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned long ()(char, unsigned long, char const*, unsigned long))'
collect2: error: ld returned 1 exit status

Any suggest for this issue ?

Thanks.

Build problems under Microsoft Windows

The Microsoft Windows build does not work for me. I have created a fork to fix the problems, and will post a pull request when done. If someone can provide a little help with a problem regarding depot_tools listed under 'Next problem', I would appreciate it.

Problems fixed so far:

  • Platform detection (util.sh function set-platform): the (recommended) git bash shell returns an $OSTYPE value of 'msys' (mingw). Added detection of $OSTYPE 'msys', set PLATFORM to 'windows'.
  • curl output directory creation (util.sh function check::deps): the 'curl' command to load jq.exe fails to create the output directory, even with --create-dirs specified. Added an explicit 'mkdir --parents', this fixed the problem.

Next problem:

  • depot_tools, fetch command (util.sh function checkout): the 'fetch' command is not found. This may result from an interaction between util.sh functions check::depot-tools and check::deps. check::deps creates the depot_tools directory to load python276_bin/jq.exe, so check::depot-tools finds that the depot_tools directory already exists, and does not load the tools. In general, 'git clone' requires an empty directory, so the approach of loading jq.exe before calling git clone does not work. I would appreciate any suggestions about how to fix the handling in a clean manner.

Build fails : src/setup_links.py : No such file or directory

Hi,building on Windows. Some python script file can't be found.Here is the terminal output:

Error: Command 'D:\emsdk\python\2.7.5.3_64bit\python.exe src/build/landmines.py --landmine-scripts src/tools_webrtc/get_landmines.py --src-dir src' returned non-zero exit status 1 in D:\webrtcbuilds\out
/d/webrtcbuilds/util.sh: line 148: src/setup_links.py: No such file or directory

Automatic `apt-get -y install` should use `--no-upgrade`

When apt-get -y install is used by automated installers, they should use --no-upgrade. Users probably aren't expecting to have their systems upgraded by this build script, and it is unlikely ever to be needed.

(Even if it were needed to get a specific version, the current approach would be inadequate, since users might not have the updated apt sources. The correct approach would be generating a package with dependencies with version bounds, then installing that.)

run_tests.sh (building the example) fails

Hi,

after successfully building WebRTC on MacOS El Capitan, I am trying to execute the run_tests.sh script.

However, this fails with the following linking error:

➜ test git:(master) ✗ ./run_tests.sh ../out/webrtcbuilds-14720-3355f6d-mac-x64/
Undefined symbols for architecture x86_64:
"_AVCaptureSessionPreset1280x720", referenced from:
___cxx_global_var_init in libwebrtc_full.a(device_info.o)
+[DeviceInfoIosObjC capabilityForPreset:] in libwebrtc_full.a(device_info_objc.o)
-[RTCVideoCaptureIosObjC startCaptureWithCapability:] in libwebrtc_full.a(rtc_video_capture_objc.o)
-[RTCVideoCaptureIosObjC startCaptureInBackgroundWithOutput:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"_AVCaptureSessionPreset352x288", referenced from:
___cxx_global_var_init in libwebrtc_full.a(device_info.o)
+[DeviceInfoIosObjC capabilityForPreset:] in libwebrtc_full.a(device_info_objc.o)
-[RTCVideoCaptureIosObjC startCaptureWithCapability:] in libwebrtc_full.a(rtc_video_capture_objc.o)
-[RTCVideoCaptureIosObjC startCaptureInBackgroundWithOutput:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"_AVCaptureSessionPreset640x480", referenced from:
___cxx_global_var_init in libwebrtc_full.a(device_info.o)
+[DeviceInfoIosObjC capabilityForPreset:] in libwebrtc_full.a(device_info_objc.o)
-[RTCVideoCaptureIosObjC startCaptureWithCapability:] in libwebrtc_full.a(rtc_video_capture_objc.o)
-[RTCVideoCaptureIosObjC startCaptureInBackgroundWithOutput:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"_AVCaptureSessionPresetLow", referenced from:
-[RTCVideoCaptureIosObjC startCaptureInBackgroundWithOutput:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"_AVMediaTypeVideo", referenced from:
+[DeviceInfoIosObjC captureDeviceCount] in libwebrtc_full.a(device_info_objc.o)
+[DeviceInfoIosObjC captureDeviceForIndex:] in libwebrtc_full.a(device_info_objc.o)
+[DeviceInfoIosObjC captureDeviceForUniqueId:] in libwebrtc_full.a(device_info_objc.o)
-[RTCVideoCaptureIosObjC startCaptureInBackgroundWithOutput:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"_CMSampleBufferGetImageBuffer", referenced from:
-[RTCVideoCaptureIosObjC captureOutput:didOutputSampleBuffer:fromConnection:] in libwebrtc_full.a(rtc_video_capture_objc.o)
"OBJC_CLASS$_AVCaptureDevice", referenced from:
objc-class-ref in libwebrtc_full.a(device_info_objc.o)
"OBJC_CLASS$_AVCaptureDeviceInput", referenced from:
objc-class-ref in libwebrtc_full.a(rtc_video_capture_objc.o)
"OBJC_CLASS$_AVCaptureSession", referenced from:
objc-class-ref in libwebrtc_full.a(rtc_video_capture_objc.o)
"OBJC_CLASS$_AVCaptureVideoDataOutput", referenced from:
objc-class-ref in libwebrtc_full.a(rtc_video_capture_objc.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Am I missing some Mac foundation packages here?

Thanks,
Alex

Looking an example of using the prebuilt Android libraries

I know Android support is still experimental, but is it working for some people?
I want to build an Android native library (.so file) which uses WebRTC's peer connection layer to enable p2p media streaming. I haven't been able to figure out how to incorporate the prebuilt Android libraries into my Android.mk file.
For one thing I'm not sure which of the supplied libraries (libwebrtc_full.a, libjingle_peerconnection_so.so, or libwebrtcdemo-jni.so) I should be linking to. I've been betting on the libjingle_peerconnection_so.so library, but keep on getting undefined symbols for all of the symbols in the rtc namespace.

The test code I am trying to compile (into an .so) is

#include "talk/app/webrtc/peerconnectionfactory.h"

extern "C"
{
void foo()
{
    rtc::Thread *worker = new rtc::Thread;
    rtc::Thread *signaling = new rtc::Thread;
    worker->Start();
    signaling->Start();
    rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> peerConnectionFactory = 
        webrtc::CreatePeerConnectionFactory(worker,signaling,0,0,0);
}
}

Thanks

Fix errors building x86 on linux

Probably needs libexpat1-dev:i386 somewhere in deps (webrtc's install-dep scripts doesn't cover?)

$ ./build.sh -c x86

FAILED: expat_xml_parse_fuzzer
g++ -Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -fuse-ld=gold -B../../third_party/binutils/Linux_x64/Release/bin -Wl,--threads -Wl,--thread-count=4 -Wl,--icf=safe -pthread -m32 -Wl,-rpath-link=../Debug -Wl,--disable-new-dtags -o "./expat_xml_parse_fuzzer" -Wl,--start-group @"./expat_xml_parse_fuzzer.rsp" -Wl,--end-group -ldl -lrt -lexpat
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: error: cannot find -lexpat
../../third_party/expat/fuzz/expat_xml_parse_fuzzer.cc:23: error: undefined reference to 'XML_ParserCreateNS'
../../third_party/expat/fuzz/expat_xml_parse_fuzzer.cc:23: error: undefined reference to 'XML_ParserCreate'
../../third_party/expat/fuzz/expat_xml_parse_fuzzer.cc:24: error: undefined reference to 'XML_Parse'
../../third_party/expat/fuzz/expat_xml_parse_fuzzer.cc:25: error: undefined reference to 'XML_ParserFree'

failed to run run_test.sh & link peer connection server

Ubuntu 18.04.1
WebRTC 69, 70, 71

g++ -o peerconnection_server main.cc data_socket.cc peer_channel.cc utils.cc $(pkg-config --cflags --libs --define-variable=WEBRTC_LOCAL=/home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64/ libwebrtc_full)
/tmp/ccqnQqEA.o: In function main': main.cc:(.text+0x7e4): undefined reference to webrtc::test::CommandLineParser::SetUsageMessage(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
main.cc:(.text+0x86b): undefined reference to webrtc::test::CommandLineParser::SetFlag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' main.cc:(.text+0x91f): undefined reference to webrtc::test::CommandLineParser::SetFlag(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
main.cc:(.text+0x9b6): undefined reference to webrtc::test::CommandLineParser::GetFlag(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' main.cc:(.text+0xa64): undefined reference to webrtc::test::CommandLineParser::GetFlag(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
/tmp/cc2MbET6.o: In function rtc::s_url_decode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': peer_channel.cc:(.text._ZN3rtc12s_url_decodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN3rtc12s_url_decodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x35): undefined reference to rtc::s_transform(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned long ()(char, unsigned long, char const*, unsigned long))'
/home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(cxa_exception_storage.o): In function __cxxabiv1::(anonymous namespace)::destruct_(void*)': cxa_exception_storage.cpp:(.text._ZN10__cxxabiv112_GLOBAL__N_19destruct_EPv+0x12): undefined reference to pthread_setspecific'
/home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(cxa_exception_storage.o): In function __cxxabiv1::(anonymous namespace)::construct_()': cxa_exception_storage.cpp:(.text._ZN10__cxxabiv112_GLOBAL__N_110construct_Ev+0x13): undefined reference to pthread_key_create'
/home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(cxa_exception_storage.o): In function __cxa_get_globals_fast': cxa_exception_storage.cpp:(.text.__cxa_get_globals_fast+0x13): undefined reference to pthread_once'
cxa_exception_storage.cpp:(.text.__cxa_get_globals_fast+0x23): undefined reference to pthread_getspecific' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(cxa_exception_storage.o): In function __cxa_get_globals':
cxa_exception_storage.cpp:(.text.__cxa_get_globals+0x41): undefined reference to pthread_setspecific' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(mutex.o): In function std::__1::mutex::try_lock()':
mutex.cpp:(.text._ZNSt3__15mutex8try_lockEv+0x5): undefined reference to pthread_mutex_trylock' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(mutex.o): In function std::__1::recursive_mutex::recursive_mutex()':
mutex.cpp:(.text._ZNSt3__115recursive_mutexC2Ev+0x27): undefined reference to pthread_mutexattr_init' mutex.cpp:(.text._ZNSt3__115recursive_mutexC2Ev+0x49): undefined reference to pthread_mutexattr_settype'
mutex.cpp:(.text._ZNSt3__115recursive_mutexC2Ev+0x68): undefined reference to pthread_mutexattr_destroy' mutex.cpp:(.text._ZNSt3__115recursive_mutexC2Ev+0x74): undefined reference to pthread_mutexattr_destroy'
mutex.cpp:(.text._ZNSt3__115recursive_mutexC2Ev+0x81): undefined reference to pthread_mutexattr_destroy' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(mutex.o): In function std::__1::recursive_mutex::try_lock()':
mutex.cpp:(.text._ZNSt3__115recursive_mutex8try_lockEv+0x5): undefined reference to pthread_mutex_trylock' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(mutex.o): In function std::__1::timed_mutex::try_lock()':
mutex.cpp:(.text._ZNSt3__111timed_mutex8try_lockEv+0xe): undefined reference to pthread_mutex_trylock' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(mutex.o): In function std::__1::recursive_timed_mutex::try_lock()':
mutex.cpp:(.text._ZNSt3__121recursive_timed_mutex8try_lockEv+0x1f): undefined reference to pthread_mutex_trylock' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(memory.o): In function std::__1::__sp_mut::lock()':
memory.cpp:(.text._ZNSt3__18__sp_mut4lockEv+0x26): undefined reference to pthread_mutex_trylock' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(condition_variable.o): In function std::__1::notify_all_at_thread_exit(std::__1::condition_variable&, std::__1::unique_lockstd::__1::mutex)':
condition_variable.cpp:(.text._ZNSt3__125notify_all_at_thread_exitERNS_18condition_variableENS_11unique_lockINS_5mutexEEE+0x1c): undefined reference to pthread_getspecific' condition_variable.cpp:(.text._ZNSt3__125notify_all_at_thread_exitERNS_18condition_variableENS_11unique_lockINS_5mutexEEE+0x2d): undefined reference to pthread_getspecific'
condition_variable.cpp:(.text._ZNSt3__125notify_all_at_thread_exitERNS_18condition_variableENS_11unique_lockINS_5mutexEEE+0x75): undefined reference to pthread_setspecific' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(thread.o): In function std::__1::thread::join()':
thread.cpp:(.text._ZNSt3__16thread4joinEv+0x17): undefined reference to pthread_join' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(thread.o): In function std::__1::thread::detach()':
thread.cpp:(.text._ZNSt3__16thread6detachEv+0x15): undefined reference to pthread_detach' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(thread.o): In function std::__1::__thread_local_data()':
thread.cpp:(.text._ZNSt3__119__thread_local_dataEv+0x4f): undefined reference to pthread_key_create' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(future.o): In function std::__1::__assoc_sub_state::set_value_at_thread_exit()':
future.cpp:(.text._ZNSt3__117__assoc_sub_state24set_value_at_thread_exitEv+0x91): undefined reference to pthread_getspecific' /home/max/Documents/devel/webrtcbuilds/out/webrtcbuilds-23360-350e48a-linux-x64//lib/Release/libwebrtc_full.a(future.o): In function std::__1::__assoc_sub_state::set_exception_at_thread_exit(std::exception_ptr)':
future.cpp:(.text._ZNSt3__117__assoc_sub_state28set_exception_at_thread_exitESt13exception_ptr+0x99): undefined reference to `pthread_getspecific'
collect2: error: ld returned 1 exit status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.