Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation with Conan on Ubuntu 20.04 #93

Open
GeorgeSixth opened this issue Dec 5, 2023 · 0 comments
Open

Compilation with Conan on Ubuntu 20.04 #93

GeorgeSixth opened this issue Dec 5, 2023 · 0 comments

Comments

@GeorgeSixth
Copy link

GeorgeSixth commented Dec 5, 2023

Hello everyone, I'm currently trying to build the library using the provided conanfile.py and I am encountering several compilation errors.

I first wanted to build the project on Ubuntu 22.04 but it raises an error on the supported distros when running the install-sysroot.py --arch=i386

ERROR: The only supported distros are
 	Ubuntu 14.04 LTS (trusty with EoL April 2022)
 	Ubuntu 16.04 LTS (xenial with EoL April 2024)
 	Ubuntu 18.04 LTS (bionic with EoL April 2028)
 	Ubuntu 20.04 LTS (focal with Eol April 2030)
 	Ubuntu 20.10 (groovy)
 	Debian 10 (buster) or later

I defaulted back to ubuntu 20.04 with a clean environment, I execute conan create . on the release branch m114_release as per the readme instructions I encounter the following errors:

ninja: Entering directory `out'
[153/5245] CXX obj/api/rtp_sender_interface/rtp_sender_interface.o
FAILED: obj/api/rtp_sender_interface/rtp_sender_interface.o 
../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/api/rtp_sender_interface/rtp_sender_interface.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-17-init-8029-g27f27d15-3\" -DCR_SYSROOT_KEY=20230329T085712Z-1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_STRICT_FIELD_TRIALS=0 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DRTC_ENABLE_VP9 -DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY -DWEBRTC_HAVE_SCTP -DWEBRTC_USE_H264 -DWEBRTC_LIBRARY_IMPL -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DLIBYUV_DISABLE_NEON -I.. -Igen -I../third_party/abseil-cpp -I../third_party/libyuv/include -Wall -Werror -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -m64 -msse3 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -ffile-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors -Wno-shadow -Wctad-maybe-unsupported -Wc++11-narrowing -Wundef -Wunused-lambda-capture -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti --sysroot=../build/linux/debian_bullseye_amd64-sysroot -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../api/rtp_sender_interface.cc -o obj/api/rtp_sender_interface/rtp_sender_interface.o
In file included from ../api/rtp_sender_interface.cc:11:
In file included from ../api/rtp_sender_interface.h:25:
In file included from ../api/frame_transformer_interface.h:18:
In file included from ../api/video/encoded_frame.h:19:
In file included from ../modules/video_coding/encoded_frame.h:18:
../modules/video_coding/include/video_codec_interface.h:54:20: error: 'is_pod<webrtc::CodecSpecificInfoVP8>' is deprecated: use is_standard_layout && is_trivial instead [-Werror,-Wdeprecated-declarations]
static_assert(std::is_pod<CodecSpecificInfoVP8>::value, "");

(logs shortened as they are several pages of the same error)

My machine's profile for added info:

[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux
os_build=Linux

Specifying a C++17 compiler with Conan yields the same result via conan create . -s compiler.cppstd=gnu17 :

[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux
os_build=Linux

After some digging, it seems C++20 has deprecated std::is_pod in favour of std::is_standard_layout and std::is_trivial. Is there any configuration I might be missing perhaps in the .gclient file ?

Thanks in advance !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant