conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
965 stars 1.77k forks source link

[package] ffmpeg/4.4: can't compile with clang #9767

Open AndreyMlashkin opened 2 years ago

AndreyMlashkin commented 2 years ago

Package and Environment Details (include every applicable attribute)

Package Name/Version: ffmpeg/4.4 Operating System+version: Linux Ubuntu 21.04 Compiler+version: clang 12 Conan version: conan 1.46.0

Conan profile (output of conan profile show default or conan profile show <profile> if custom profile is in use)

[settings]
arch=x86_64
arch_build=x86_64
build_type=Debug
compiler=clang
compiler.cppstd=17
compiler.libcxx=libstdc++
compiler.version=13
os=Linux
os_build=Linux
[options]
*:shared=False
vulkan-loader:shared=True
[build_requires]
[env]
CC=/usr/bin/clang
CXX=/usr/bin/clang++

Steps to reproduce (Include if Applicable)

conan install ffmpeg/4.4@ -pr clang --build missing

Logs (Include/Attach if Applicable)

Click to expand log ``` ffmpeg/4.4: Applying build-requirement: yasm/1.3.0 ffmpeg/4.4: Applying build-requirement: pkgconf/1.7.4 ffmpeg/4.4: WARN: Build folder is dirty, removing it: /home/andrei/.conan/data/ffmpeg/4.4/_/_/build/3e5e26791db733ff9d8b41b6f3862759aded1298 ffmpeg/4.4: Copying sources to build folder ffmpeg/4.4: Building your package in /home/andrei/.conan/data/ffmpeg/4.4/_/_/build/3e5e26791db733ff9d8b41b6f3862759aded1298 ffmpeg/4.4: Generator pkg_config created yasm.pc ffmpeg/4.4: Generator pkg_config created libpkgconf.pc ffmpeg/4.4: Generator pkg_config created freetype2.pc ffmpeg/4.4: Generator pkg_config created libopenjp2.pc ffmpeg/4.4: Generator pkg_config created openh264.pc ffmpeg/4.4: Generator pkg_config created x264.pc ffmpeg/4.4: Generator pkg_config created x265.pc ffmpeg/4.4: Generator pkg_config created vpx.pc ffmpeg/4.4: Generator pkg_config created libmp3lame.pc ffmpeg/4.4: Generator pkg_config created fdk-aac.pc ffmpeg/4.4: Generator pkg_config created libpulse.pc ffmpeg/4.4: Generator pkg_config created libpulse-simple.pc ffmpeg/4.4: Generator pkg_config created pulseaudio.pc ffmpeg/4.4: Generator pkg_config created vaapi.pc ffmpeg/4.4: Generator pkg_config created vdpau.pc ffmpeg/4.4: Generator pkg_config created bzip2.pc ffmpeg/4.4: Generator pkg_config created libpng.pc ffmpeg/4.4: Generator pkg_config created libbrotlicommon.pc ffmpeg/4.4: Generator pkg_config created libbrotlienc.pc ffmpeg/4.4: Generator pkg_config created libbrotlidec.pc ffmpeg/4.4: Generator pkg_config created brotli.pc ffmpeg/4.4: Generator pkg_config created libcrypto.pc ffmpeg/4.4: Generator pkg_config created libssl.pc ffmpeg/4.4: Generator pkg_config created openssl.pc ffmpeg/4.4: Generator pkg_config created alsa.pc ffmpeg/4.4: Generator pkg_config created sndfile.pc ffmpeg/4.4: Generator pkg_config created libcap.pc ffmpeg/4.4: Generator pkg_config created liblzma.pc ffmpeg/4.4: Generator pkg_config created vorbis.pc ffmpeg/4.4: Generator pkg_config created vorbisfile.pc ffmpeg/4.4: Generator pkg_config created vorbisfile-alias.pc ffmpeg/4.4: Generator pkg_config created vorbisenc.pc ffmpeg/4.4: Generator pkg_config created vorbisenc-alias.pc ffmpeg/4.4: Generator pkg_config created vorbis-all-do-not-use.pc ffmpeg/4.4: Generator pkg_config created opus.pc ffmpeg/4.4: Generator pkg_config created libwebp.pc ffmpeg/4.4: Generator pkg_config created libwebpmux.pc ffmpeg/4.4: Generator pkg_config created libwebpdemux.pc ffmpeg/4.4: Generator pkg_config created libwebpdecoder.pc ffmpeg/4.4: Generator pkg_config created libwebp-all-do-not-use.pc ffmpeg/4.4: Generator pkg_config created xcb-dri3.pc ffmpeg/4.4: Generator pkg_config created xcb-util.pc ffmpeg/4.4: Generator pkg_config created xcb-event.pc ffmpeg/4.4: Generator pkg_config created xcb-aux.pc ffmpeg/4.4: Generator pkg_config created xcb-atom.pc ffmpeg/4.4: Generator pkg_config created xkeyboard-config.pc ffmpeg/4.4: Generator pkg_config created xcb.pc ffmpeg/4.4: Generator pkg_config created xcb-xinerama.pc ffmpeg/4.4: Generator pkg_config created xcb-xfixes.pc ffmpeg/4.4: Generator pkg_config created xcb-sync.pc ffmpeg/4.4: Generator pkg_config created xcb-shm.pc ffmpeg/4.4: Generator pkg_config created xcb-shape.pc ffmpeg/4.4: Generator pkg_config created xcb-renderutil.pc ffmpeg/4.4: Generator pkg_config created xcb-render.pc ffmpeg/4.4: Generator pkg_config created xcb-randr.pc ffmpeg/4.4: Generator pkg_config created xcb-keysyms.pc ffmpeg/4.4: Generator pkg_config created xcb-image.pc ffmpeg/4.4: Generator pkg_config created xcb-icccm.pc ffmpeg/4.4: Generator pkg_config created xcb-xkb.pc ffmpeg/4.4: Generator pkg_config created xtrans.pc ffmpeg/4.4: Generator pkg_config created xxf86vm.pc ffmpeg/4.4: Generator pkg_config created xvmc.pc ffmpeg/4.4: Generator pkg_config created xv.pc ffmpeg/4.4: Generator pkg_config created xtst.pc ffmpeg/4.4: Generator pkg_config created xt.pc ffmpeg/4.4: Generator pkg_config created xscrnsaver.pc ffmpeg/4.4: Generator pkg_config created xres.pc ffmpeg/4.4: Generator pkg_config created xrender.pc ffmpeg/4.4: Generator pkg_config created xrandr.pc ffmpeg/4.4: Generator pkg_config created xpm.pc ffmpeg/4.4: Generator pkg_config created xmuu.pc ffmpeg/4.4: Generator pkg_config created xmu.pc ffmpeg/4.4: Generator pkg_config created xkbfile.pc ffmpeg/4.4: Generator pkg_config created xinerama.pc ffmpeg/4.4: Generator pkg_config created xi.pc ffmpeg/4.4: Generator pkg_config created xft.pc ffmpeg/4.4: Generator pkg_config created xfixes.pc ffmpeg/4.4: Generator pkg_config created xext.pc ffmpeg/4.4: Generator pkg_config created xdmcp.pc ffmpeg/4.4: Generator pkg_config created xdamage.pc ffmpeg/4.4: Generator pkg_config created xcursor.pc ffmpeg/4.4: Generator pkg_config created xcomposite.pc ffmpeg/4.4: Generator pkg_config created xaw7.pc ffmpeg/4.4: Generator pkg_config created xau.pc ffmpeg/4.4: Generator pkg_config created sm.pc ffmpeg/4.4: Generator pkg_config created ice.pc ffmpeg/4.4: Generator pkg_config created fontenc.pc ffmpeg/4.4: Generator pkg_config created x11-xcb.pc ffmpeg/4.4: Generator pkg_config created x11.pc ffmpeg/4.4: Generator pkg_config created xorg.pc ffmpeg/4.4: Generator pkg_config created flac.pc ffmpeg/4.4: Generator pkg_config created flac++.pc ffmpeg/4.4: Generator pkg_config created ogg.pc ffmpeg/4.4: Generator pkg_config created zlib.pc ffmpeg/4.4: Generator pkg_config created libiconv.pc ffmpeg/4.4: Aggregating env generators ffmpeg/4.4: Calling build() ffmpeg/4.4: Calling: > source_subfolder/configure '--pkg-config-flags=--static' '--disable-doc' '--disable-cross-compile' '--disable-shared' '--enable-static' '--enable-pic' '--enable-avdevice' '--enable-avcodec' '--enable-avformat' '--enable-swresample' '--enable-swscale' '--enable-postproc' '--enable-avfilter' '--enable-bzlib' '--enable-zlib' '--enable-lzma' '--enable-iconv' '--enable-libopenjpeg' '--enable-libopenh264' '--enable-libvorbis' '--enable-libopus' '--disable-libzmq' '--disable-sdl2' '--enable-libx264' '--enable-libx265' '--enable-libvpx' '--enable-libmp3lame' '--enable-libfdk-aac' '--enable-libwebp' '--enable-openssl' '--enable-alsa' '--enable-libpulse' '--enable-vaapi' '--enable-vdpau' '--enable-libxcb' '--enable-libxcb-shm' '--enable-libxcb-shape' '--enable-libxcb-xfixes' '--disable-appkit' '--disable-avfoundation' '--disable-coreimage' '--disable-audiotoolbox' '--disable-videotoolbox' '--disable-securetransport' '--disable-cuda' '--disable-cuvid' '--enable-nonfree' '--enable-gpl' '--arch=x86_64' '--disable-optimizations' '--disable-mmx' '--disable-stripping' '--enable-debug' '--cc=/usr/bin/clang' '--cxx=/usr/bin/clang++' '--extra-cflags=' '--extra-ldflags=' '--prefix=/home/andrei/.conan/data/ffmpeg/4.4/_/_/package/3e5e26791db733ff9d8b41b6f3862759aded1298' '--bindir=${prefix}/bin' '--libdir=${prefix}/lib' ERROR: libfdk_aac not found If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. ffmpeg/4.4: ffmpeg/4.4: ERROR: Package '3e5e26791db733ff9d8b41b6f3862759aded1298' build failed ffmpeg/4.4: WARN: Build folder /home/andrei/.conan/data/ffmpeg/4.4/_/_/build/3e5e26791db733ff9d8b41b6f3862759aded1298 ERROR: ffmpeg/4.4: Error in build() method, line 399 autotools = self._configure_autotools() while calling '_configure_autotools', line 389 self._autotools.configure(args=args, configure_dir=self._source_subfolder, build=False, host=False, target=False) ConanException: Error 1 while executing source_subfolder/configure '--pkg-config-flags=--static' '--disable-doc' '--disable-cross-compile' '--disable-shared' '--enable-static' '--enable-pic' '--enable-avdevice' '--enable-avcodec' '--enable-avformat' '--enable-swresample' '--enable-swscale' '--enable-postproc' '--enable-avfilter' '--enable-bzlib' '--enable-zlib' '--enable-lzma' '--enable-iconv' '--enable-libopenjpeg' '--enable-libopenh264' '--enable-libvorbis' '--enable-libopus' '--disable-libzmq' '--disable-sdl2' '--enable-libx264' '--enable-libx265' '--enable-libvpx' '--enable-libmp3lame' '--enable-libfdk-aac' '--enable-libwebp' '--enable-openssl' '--enable-alsa' '--enable-libpulse' '--enable-vaapi' '--enable-vdpau' '--enable-libxcb' '--enable-libxcb-shm' '--enable-libxcb-shape' '--enable-libxcb-xfixes' '--disable-appkit' '--disable-avfoundation' '--disable-coreimage' '--disable-audiotoolbox' '--disable-videotoolbox' '--disable-securetransport' '--disable-cuda' '--disable-cuvid' '--enable-nonfree' '--enable-gpl' '--arch=x86_64' '--disable-optimizations' '--disable-mmx' '--disable-stripping' '--enable-debug' '--cc=/usr/bin/clang' '--cxx=/usr/bin/clang++' '--extra-cflags=' '--extra-ldflags=' '--prefix=/home/andrei/.conan/data/ffmpeg/4.4/_/_/package/3e5e26791db733ff9d8b41b6f3862759aded1298' '--bindir=${prefix}/bin' '--libdir=${prefix}/lib' ```
AndreyMlashkin commented 2 years ago

I found out, it's not relevant to sanitizers

AndreyMlashkin commented 2 years ago

@SpaceIm @prince-chrismc @MartinDelille @madebr @blackliner @sh0

SSE4 commented 2 years ago

can you post config.log?

AndreyMlashkin commented 2 years ago

config.log

sure, here we go

SSE4 commented 2 years ago

I found out, it's not relevant to sanitizers

it seems like it is, there are a lot of undefined references to the __asan** functions (from libmp3lame at least). perhaps, you need to propagate sanitizer libraries (or linker flags) to the ldflags?

AndreyMlashkin commented 2 years ago

config.log

sorry, that was output with sanitizers, here is the one without them.

I have assigned 'fsanitize' to CFLAGS, CXXFLAGS, LDFLAGS in the previous log

AndreyMlashkin commented 2 years ago

Important addition: I had the following flags: ffmpeg:with_libfdk_aac=False ffmpeg:with_ssl=False

Mibu287 commented 2 years ago

I have the same problem. Then I changed libcxx to libstdc++11 compiler.libcxx=libstdc++11 and it worked.

I'm not really understand why it worked? Can anyone explain for me, please. Thanks.

WangZhongDian commented 3 months ago

我遇到了同样的问题,仍然无法解决

uilianries commented 3 months ago

@WangZhongDian Could you please give more details, like the command line used, full Conan profile, and O.S. ?

uilianries commented 3 months ago

Hello all! Unfortunately, I can not reproduce the described bug and the issue lacks information. The issue description says Clang 12, but the Profile points Clang 13.

I can build ffmpeg/4.4.4 using Conan 1.64.1 and following the same shared profile from this issue.

$ conan create . 4.4.4@ -pr:b=default -pr:h clang13 -o "*:shared=False" -o vulkan-loader:shared=True -s build_type=Debug

Full build log: ffmpeg-4.4.4-clang13.log

Please, update your local copy of ffmpeg and try to build it again.