dyne / frei0r

A large collection of free and portable video plugins
https://frei0r.dyne.org/
GNU General Public License v2.0
419 stars 91 forks source link

v2.3.1 build fails when cross-compiling for Windows via mingw. See build log in comments. #178

Closed timothymowens closed 4 months ago

timothymowens commented 11 months ago

Build fails via Ubuntu 22.04.2 in WSL 2 on Windows 10 using the ffmpeg-windows-build-helpers script. Previously, v2.3.0 worked just fine.

This is in reference to this issue for ffmpeg-windows-build-helpers: https://github.com/rdp/ffmpeg-windows-build-helpers/issues/707

Note the errors to the recently added kaleid0sc0pe.cpp in the build log.

Build log:

-- Build files have been written to: /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git

Making /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git as $ PATH=/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin:$PATH make  -j 24

[  0%] Building C object src/filter/alpha0ps/CMakeFiles/alpha0ps_alpha0ps.dir/alpha0ps_alpha0ps.c.obj
[  0%] Building C object src/filter/3dflippo/CMakeFiles/3dflippo.dir/3dflippo.c.obj
[  0%] Building C object src/filter/balanc0r/CMakeFiles/balanc0r.dir/balanc0r.c.obj
[  0%] Building C object src/filter/alpha0ps/CMakeFiles/alpha0ps_alphaspot.dir/alpha0ps_alphaspot.c.obj
[  0%] Building CXX object src/filter/bluescreen0r/CMakeFiles/bluescreen0r.dir/bluescreen0r.cpp.obj
[  1%] Building CXX object src/filter/baltan/CMakeFiles/baltan.dir/baltan.cpp.obj
[  1%] Building CXX object src/filter/aech0r/CMakeFiles/aech0r.dir/aech0r.cpp.obj
[  2%] Building C object src/filter/alpha0ps/CMakeFiles/alpha0ps_alphagrad.dir/alpha0ps_alphagrad.c.obj
[  2%] Building C object src/filter/bgsubtract0r/CMakeFiles/bgsubtract0r.dir/bgsubtract0r.c.obj
[  2%] Building C object src/filter/bw0r/CMakeFiles/bw0r.dir/bw0r.c.obj
[  2%] Building C object src/filter/blur/CMakeFiles/IIRblur.dir/IIRblur.c.obj
[  3%] Building C object src/filter/brightness/CMakeFiles/brightness.dir/brightness.c.obj
[  3%] Building CXX object src/filter/cartoon/CMakeFiles/cartoon.dir/cartoon.cpp.obj
[  3%] Building C object src/filter/cluster/CMakeFiles/cluster.dir/cluster.c.obj
[  4%] Building C object src/filter/colordistance/CMakeFiles/colordistance.dir/colordistance.c.obj
[  3%] Building C object src/filter/coloradj/CMakeFiles/coloradj_RGB.dir/coloradj_RGB.c.obj
[  4%] Building C object src/filter/colorize/CMakeFiles/colorize.dir/colorize.c.obj
[  4%] Building C object src/filter/colorhalftone/CMakeFiles/colorhalftone.dir/colorhalftone.c.obj
[  5%] Building C object src/filter/colortap/CMakeFiles/colortap.dir/colortap.c.obj
[  5%] Building CXX object src/filter/d90stairsteppingfix/CMakeFiles/d90stairsteppingfix.dir/d90stairsteppingfix.cpp.obj
[  6%] Building C object src/filter/c0rners/CMakeFiles/c0rners.dir/c0rners.c.obj
[  7%] Building C object src/filter/colgate/CMakeFiles/colgate.dir/colgate.c.obj
[  7%] Building C object src/filter/contrast0r/CMakeFiles/contrast0r.dir/contrast0r.c.obj
[  8%] Building C object src/filter/curves/CMakeFiles/curves.dir/curves.c.obj
[  8%] Linking C shared module bw0r.dll
[  8%] Linking C shared module contrast0r.dll
[  8%] Linking C shared module colortap.dll
[  8%] Linking C shared module colorize.dll
[  8%] Built target bw0r
[  8%] Linking C shared module balanc0r.dll
[  8%] Linking C shared module brightness.dll
[  8%] Linking C shared module colordistance.dll
[  9%] Building C object src/filter/defish0r/CMakeFiles/defish0r.dir/defish0r.c.obj
[ 10%] Linking C shared module bgsubtract0r.dll
[ 10%] Built target colortap
[ 10%] Built target contrast0r
[ 10%] Built target colorize
[ 11%] Linking C shared module colorhalftone.dll
[ 12%] Building CXX object src/filter/delay0r/CMakeFiles/delay0r.dir/delay0r.cpp.obj
[ 12%] Linking C shared module alpha0ps_alphagrad.dll
[ 12%] Building CXX object src/filter/delaygrab/CMakeFiles/delaygrab.dir/delaygrab.cpp.obj
[ 12%] Built target balanc0r
[ 12%] Built target bgsubtract0r
[ 12%] Linking C shared module cluster.dll
[ 12%] Linking C shared module 3dflippo.dll
[ 12%] Building C object src/filter/dither/CMakeFiles/dither.dir/dither.c.obj
[ 12%] Building C object src/filter/distort0r/CMakeFiles/distort0r.dir/distort0r.c.obj
[ 12%] Linking C shared module colgate.dll
[ 12%] Building C object src/filter/denoise/CMakeFiles/denoise_hqdn3d.dir/denoise_hqdn3d.c.obj
[ 12%] Built target brightness
[ 12%] Built target colorhalftone
[ 12%] Built target colordistance
[ 12%] Linking C shared module coloradj_RGB.dll
[ 12%] Building CXX object src/filter/edgeglow/CMakeFiles/edgeglow.dir/edgeglow.cpp.obj
[ 12%] Built target cluster
[ 12%] Built target alpha0ps_alphagrad
[ 13%] Linking C shared module alpha0ps_alphaspot.dll
[ 14%] Building C object src/filter/emboss/CMakeFiles/emboss.dir/emboss.c.obj
[ 14%] Building CXX object src/filter/elastic_scale/CMakeFiles/elastic_scale.dir/elastic_scale.cpp.obj
[ 14%] Built target 3dflippo
[ 14%] Building CXX object src/filter/equaliz0r/CMakeFiles/equaliz0r.dir/equaliz0r.cpp.obj
[ 15%] Building C object src/filter/flippo/CMakeFiles/flippo.dir/flippo.c.obj
[ 15%] Built target colgate
[ 15%] Building C object src/filter/gamma/CMakeFiles/gamma.dir/gamma.c.obj
[ 15%] Built target coloradj_RGB
[ 15%] Built target alpha0ps_alphaspot
[ 16%] Linking C shared module distort0r.dll
[ 16%] Linking C shared module dither.dll
[ 16%] Linking C shared module flippo.dll
[ 17%] Building C object src/filter/glow/CMakeFiles/glow.dir/glow.c.obj
[ 17%] Building C object src/filter/hueshift0r/CMakeFiles/hueshift0r.dir/hueshift0r.c.obj
[ 18%] Linking C shared module emboss.dll
[ 18%] Building C object src/filter/glitch0r/CMakeFiles/glitch0r.dir/glitch0r.c.obj
[ 19%] Linking C shared module gamma.dll
[ 19%] Built target distort0r
[ 19%] Built target dither
[ 19%] Built target flippo
[ 19%] Building CXX object src/filter/kaleid0sc0pe/CMakeFiles/kaleid0sc0pe.dir/api.cpp.obj
[ 19%] Building C object src/filter/invert0r/CMakeFiles/invert0r.dir/invert0r.c.obj
[ 19%] Linking C shared module denoise_hqdn3d.dll
[ 19%] Built target gamma
[ 19%] Building C object src/filter/keyspillm0pup/CMakeFiles/keyspillm0pup.dir/keyspillm0pup.c.obj
[ 19%] Built target emboss
[ 19%] Building C object src/filter/lenscorrection/CMakeFiles/lenscorrection.dir/lenscorrection.c.obj
[ 20%] Building C object src/filter/letterb0xed/CMakeFiles/letterb0xed.dir/letterb0xed.c.obj
[ 20%] Built target denoise_hqdn3d
[ 20%] Linking C shared module invert0r.dll
[ 20%] Building C object src/filter/levels/CMakeFiles/levels.dir/levels.c.obj
[ 20%] Linking C shared module glitch0r.dll
[ 20%] Linking C shared module glow.dll
[ 20%] Built target invert0r
[ 21%] Linking C shared module hueshift0r.dll
[ 21%] Linking C shared module alpha0ps_alpha0ps.dll
[ 21%] Linking C shared module lenscorrection.dll
[ 22%] Building CXX object src/filter/lightgraffiti/CMakeFiles/lightgraffiti.dir/lightgraffiti.cpp.obj
[ 22%] Built target glitch0r
[ 22%] Linking C shared module letterb0xed.dll
[ 22%] Building C object src/filter/luminance/CMakeFiles/luminance.dir/luminance.c.obj
[ 22%] Built target glow
[ 22%] Linking C shared module curves.dll
[ 23%] Building C object src/filter/mask0mate/CMakeFiles/mask0mate.dir/mask0mate.c.obj
[ 23%] Built target hueshift0r
[ 23%] Built target alpha0ps_alpha0ps
[ 23%] Built target lenscorrection
[ 24%] Building C object src/filter/medians/CMakeFiles/medians.dir/medians.c.obj
[ 24%] Built target letterb0xed
[ 24%] Building C object src/filter/measure/CMakeFiles/measure_pr0file.dir/measure_pr0file.c.obj
[ 24%] Building C object src/filter/measure/CMakeFiles/measure_pr0be.dir/measure_pr0be.c.obj
[ 24%] Linking C shared module luminance.dll
[ 24%] Building CXX object src/filter/ndvi/CMakeFiles/ndvi.dir/ndvi.cpp.obj
[ 24%] Built target curves
[ 25%] Building CXX object src/filter/nervous/CMakeFiles/nervous.dir/nervous.cpp.obj
[ 25%] Linking CXX shared module baltan.dll
[ 25%] Built target luminance
[ 26%] Linking C shared module levels.dll
[ 26%] Building C object src/filter/normaliz0r/CMakeFiles/normaliz0r.dir/normaliz0r.c.obj
[ 26%] Linking C shared module mask0mate.dll
[ 26%] Built target levels
[ 27%] Linking CXX shared module d90stairsteppingfix.dll
[ 28%] Building CXX object src/filter/nosync0r/CMakeFiles/nosync0r.dir/nosync0r.cpp.obj
[ 28%] Built target mask0mate
[ 29%] Building C object src/filter/perspective/CMakeFiles/perspective.dir/perspective.c.obj
[ 29%] Linking C shared module defish0r.dll
[ 29%] Linking C shared module normaliz0r.dll
[ 30%] Linking CXX shared module delaygrab.dll
[ 30%] Linking CXX shared module equaliz0r.dll
[ 30%] Built target defish0r
[ 31%] Linking C shared module keyspillm0pup.dll
[ 31%] Linking C shared module perspective.dll
[ 31%] Linking C shared module c0rners.dll
[ 31%] Built target normaliz0r
[ 31%] Building C object src/filter/pixeliz0r/CMakeFiles/pixeliz0r.dir/pixeliz0r.c.obj
[ 31%] Building CXX object src/filter/pixs0r/CMakeFiles/pixs0r.dir/pixs0r.cc.obj
[ 32%] Linking CXX shared module cartoon.dll
[ 32%] Linking CXX shared module bluescreen0r.dll
[ 32%] Built target keyspillm0pup
[ 32%] Built target perspective
[ 32%] Built target c0rners
[ 32%] Building C object src/filter/posterize/CMakeFiles/posterize.dir/posterize.c.obj
[ 32%] Building CXX object src/filter/premultiply/CMakeFiles/premultiply.dir/premultiply.cpp.obj
[ 33%] Building CXX object src/filter/primaries/CMakeFiles/primaries.dir/primaries.cpp.obj
[ 34%] Linking CXX shared module aech0r.dll
[ 35%] Linking C shared module pixeliz0r.dll
[ 36%] Linking C shared module posterize.dll
[ 36%] Built target baltan
[ 37%] Building C object src/filter/RGB/CMakeFiles/R.dir/R.c.obj
[ 37%] Linking CXX shared module delay0r.dll
[ 37%] Built target pixeliz0r
[ 37%] Linking CXX shared module edgeglow.dll
[ 37%] Built target d90stairsteppingfix
[ 37%] Built target posterize
[ 38%] Building C object src/filter/RGB/CMakeFiles/B.dir/B.c.obj
[ 38%] Building C object src/filter/RGB/CMakeFiles/G.dir/G.c.obj
[ 38%] Linking C shared module IIRblur.dll
[ 38%] Linking C shared module R.dll
[ 38%] Linking CXX shared module elastic_scale.dll
[ 38%] Building C object src/filter/rgbnoise/CMakeFiles/rgbnoise.dir/rgbnoise.c.obj
[ 38%] Linking C shared module B.dll
[ 38%] Built target IIRblur
[ 38%] Linking C shared module measure_pr0file.dll
[ 38%] Built target R
[ 39%] Linking C shared module G.dll
[ 39%] Built target delaygrab
[ 39%] Building C object src/filter/rgbsplit0r/CMakeFiles/rgbsplit0r.dir/rgbsplit0r.c.obj
[ 39%] Built target B
[ 40%] Building C object src/filter/saturat0r/CMakeFiles/saturat0r.dir/saturat0r.c.obj
[ 41%] Building CXX object src/filter/kaleid0sc0pe/CMakeFiles/kaleid0sc0pe.dir/kaleid0sc0pe.cpp.obj
[ 42%] Building CXX object src/filter/scanline0r/CMakeFiles/scanline0r.dir/scanline0r.cpp.obj
[ 42%] Linking C shared module rgbnoise.dll
[ 42%] Built target equaliz0r
[ 42%] Built target G
[ 42%] Linking CXX shared module nervous.dll
[ 42%] Built target measure_pr0file
[ 42%] Building C object src/filter/select0r/CMakeFiles/select0r.dir/select0r.c.obj
[ 42%] Building C object src/filter/sharpness/CMakeFiles/sharpness.dir/sharpness.c.obj
In file included from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:25:
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.h:42: warning: "__SSE2__" redefined
   42 | #define __SSE2__
      |
<built-in>: note: this is the location of the previous definition
[ 42%] Linking C shared module rgbsplit0r.dll
[ 43%] Building C object src/filter/sigmoidaltransfer/CMakeFiles/sigmoidaltransfer.dir/sigmoidaltransfer.c.obj
[ 43%] Built target cartoon
[ 43%] Built target bluescreen0r
[ 43%] Built target rgbnoise
[ 43%] Linking C shared module saturat0r.dll
[ 43%] Built target rgbsplit0r
[ 43%] Building C object src/filter/softglow/CMakeFiles/softglow.dir/softglow.c.obj
[ 43%] Building CXX object src/filter/sobel/CMakeFiles/sobel.dir/sobel.cpp.obj
[ 43%] Building CXX object src/filter/sopsat/CMakeFiles/sopsat.dir/sopsat.cpp.obj
[ 44%] Linking C shared module measure_pr0be.dll
[ 44%] Building C object src/filter/spillsupress/CMakeFiles/spillsupress.dir/spillsupress.c.obj
[ 44%] Linking C shared module sigmoidaltransfer.dll
[ 44%] Linking CXX shared module pixs0r.dll
[ 44%] Built target aech0r
[ 44%] Linking C shared module sharpness.dll
[ 44%] Built target saturat0r
[ 44%] Built target delay0r
[ 44%] Built target measure_pr0be
[ 44%] Built target sigmoidaltransfer
[ 44%] Building C object src/filter/three_point_balance/CMakeFiles/three_point_balance.dir/three_point_balance.c.obj
[ 44%] Building C object src/filter/tehroxx0r/CMakeFiles/tehroxx0r.dir/tehroxx0r.c.obj
[ 45%] Building C object src/filter/squareblur/CMakeFiles/squareblur.dir/squareblur.c.obj
[ 45%] Linking C shared module spillsupress.dll
[ 45%] Built target edgeglow
[ 45%] Built target sharpness
[ 46%] Building CXX object src/filter/threelay0r/CMakeFiles/threelay0r.dir/threelay0r.cpp.obj
[ 47%] Building CXX object src/filter/timeout/CMakeFiles/timeout.dir/timeout.cpp.obj
[ 47%] Building C object src/filter/tint0r/CMakeFiles/tint0r.dir/tint0r.c.obj
[ 47%] Built target pixs0r
[ 47%] Built target spillsupress
[ 47%] Building C object src/filter/threshold0r/CMakeFiles/threshold0r.dir/threshold0r.c.obj
[ 47%] Building C object src/filter/transparency/CMakeFiles/transparency.dir/transparency.c.obj
[ 47%] Building CXX object src/filter/tutorial/CMakeFiles/tutorial.dir/tutorial.cpp.obj
[ 47%] Linking C shared module softglow.dll
[ 48%] Linking C shared module tehroxx0r.dll
[ 48%] Built target elastic_scale
[ 48%] Linking CXX shared module nosync0r.dll
[ 49%] Building CXX object src/filter/twolay0r/CMakeFiles/twolay0r.dir/twolay0r.cpp.obj
[ 49%] Built target softglow
[ 50%] Linking C shared module transparency.dll
[ 50%] Linking C shared module squareblur.dll
[ 51%] Linking C shared module threshold0r.dll
[ 51%] Linking C shared module tint0r.dll
[ 52%] Building C object src/filter/vertigo/CMakeFiles/vertigo.dir/vertigo.c.obj
[ 52%] Built target tehroxx0r
[ 52%] Linking C shared module three_point_balance.dll
[ 52%] Built target squareblur
[ 52%] Built target nervous
[ 52%] Built target transparency
[ 52%] Building CXX object src/filter/vignette/CMakeFiles/vignette.dir/vignette.cpp.obj
[ 52%] Built target threshold0r
[ 52%] Built target tint0r
[ 53%] Building CXX object src/generator/dem0scene/CMakeFiles/plasma.dir/plasma.cpp.obj
[ 53%] Built target three_point_balance
[ 53%] Building CXX object src/generator/nois0r/CMakeFiles/nois0r.dir/nois0r.cpp.obj
[ 53%] Building CXX object src/generator/lissajous0r/CMakeFiles/lissajous0r.dir/lissajous0r.cpp.obj
[ 54%] Building CXX object src/generator/onecol0r/CMakeFiles/onecol0r.dir/onecol0r.cpp.obj
[ 55%] Building C object src/generator/ising0r/CMakeFiles/ising0r.dir/ising0r.c.obj
[ 55%] Building CXX object src/generator/partik0l/CMakeFiles/partik0l.dir/partik0l.cpp.obj
[ 55%] Linking C shared module vertigo.dll
[ 55%] Building C object src/generator/test_pat/CMakeFiles/test_pat_B.dir/test_pat_B.c.obj
[ 55%] Linking CXX shared module premultiply.dll
[ 55%] Linking CXX shared module primaries.dll
[ 55%] Linking C shared module ising0r.dll
[ 55%] Built target vertigo
[ 56%] Building C object src/generator/test_pat/CMakeFiles/test_pat_C.dir/test_pat_C.c.obj
[ 56%] Built target ising0r
[ 56%] Building C object src/generator/test_pat/CMakeFiles/test_pat_G.dir/test_pat_G.c.obj
[ 57%] Linking C shared module select0r.dll
[ 57%] Linking CXX shared module scanline0r.dll
[ 57%] Linking C shared module medians.dll
[ 57%] Built target select0r
[ 57%] Linking CXX shared module ndvi.dll
[ 57%] Built target nosync0r
[ 57%] Building C object src/generator/test_pat/CMakeFiles/test_pat_I.dir/test_pat_I.c.obj
[ 57%] Built target medians
[ 58%] Building C object src/generator/test_pat/CMakeFiles/test_pat_L.dir/test_pat_L.c.obj
[ 59%] Linking CXX shared module sobel.dll
[ 59%] Building C object src/generator/test_pat/CMakeFiles/test_pat_R.dir/test_pat_R.c.obj
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp: In member function 'virtual int32_t libkaleid0sc0pe::Kaleid0sc0pe::process(const void*, void*)':
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:630:59: error: 'std::thread' has not been declared
  630 |         std::uint32_t n_threads = m_n_threads == 0 ? std::thread::hardware_concurrency() : m_n_threads;
      |                                                           ^~~~~~
[ 59%] Built target premultiply
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:647:164: error: invalid use of incomplete type 'class std::future<void>'
  647 |             futures.push_back(std::async(std::launch::async, m_edge_reflect ? &Kaleid0sc0pe::process_block : &Kaleid0sc0pe::process_block_bg, this, blocks[i].get()));
      |                                                                                                                                                                    ^
In file included from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:28:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/future:125:11: note: declaration of 'class std::future<void>'
  125 |     class future;
      |           ^~~~~~
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:655:13: error: invalid use of incomplete type 'class std::future<void>'
  655 |             f.wait();
      |             ^
In file included from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:28:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/future:125:11: note: declaration of 'class std::future<void>'
  125 |     class future;
      |           ^~~~~~
[ 59%] Linking CXX shared module threelay0r.dll
[ 59%] Building CXX object src/mixer2/addition/CMakeFiles/addition.dir/addition.cpp.obj
[ 59%] Linking C shared module test_pat_C.dll
[ 59%] Built target primaries
In file included from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/vector:67,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.h:30,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:25:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::future<void>; _Alloc = std::allocator<std::future<void> >]':
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_vector.h:487:7:   required from here
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_vector.h:336:35: error: invalid use of incomplete type 'class std::future<void>'
  336 |         _M_impl._M_end_of_storage - _M_impl._M_start);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:28:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/future:125:11: note: declaration of 'class std::future<void>'
  125 |     class future;
      |           ^~~~~~
In file included from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_algobase.h:67,
                 from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/memory:63,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/ikaleid0sc0pe.h:29,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.h:28,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:25:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_iterator.h: In instantiation of '__gnu_cxx::__normal_iterator<_Iterator, _Container>& __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator++() [with _Iterator = std::future<void>*; _Container = std::vector<std::future<void> >]':
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:654:24:   required from here
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_iterator.h:980:4: error: cannot increment a pointer to incomplete type 'std::future<void>'
  980 |  ++_M_current;
      |    ^~~~~~~~~~
[ 60%] Building CXX object src/mixer2/addition_alpha/CMakeFiles/addition_alpha.dir/addition_alpha.cpp.obj
In file included from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/move.h:57,
                 from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_pair.h:59,
                 from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_algobase.h:64,
                 from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/memory:63,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/ikaleid0sc0pe.h:29,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.h:28,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:25:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/type_traits: In instantiation of 'struct std::is_destructible<std::future<void> >':
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_construct.h:177:51:   required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = std::future<void>*]'
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/alloc_traits.h:738:15:   required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_T2>&) [with _ForwardIterator = std::future<void>*; _Tp = std::future<void>]'
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_vector.h:680:15:   required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = std::future<void>; _Alloc = std::allocator<std::future<void> >]'
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:632:40:   required from here
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/type_traits:844:52: error: static assertion failed: template argument must be a complete class or an unbounded array
  844 |       static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/memory:65,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/ikaleid0sc0pe.h:29,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.h:28,
                 from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:25:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_construct.h: In instantiation of 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = std::future<void>*]':
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/alloc_traits.h:738:15:   required from 'void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_T2>&) [with _ForwardIterator = std::future<void>*; _Tp = std::future<void>]'
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_vector.h:680:15:   required from 'std::vector<_Tp, _Alloc>::~vector() [with _Tp = std::future<void>; _Alloc = std::allocator<std::future<void> >]'
/root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:632:40:   required from here
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_construct.h:177:51: error: static assertion failed: value type is destructible
  177 |       static_assert(is_destructible<_Value_type>::value,
      |                                                   ^~~~~
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/bits/stl_construct.h:184:25: error: invalid use of incomplete type 'std::iterator_traits<std::future<void>*>::value_type' {aka 'class std::future<void>'}
  184 |       std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/ffmpeg-windows-build-helpers/sandbox/win64/frei0r_git/src/filter/kaleid0sc0pe/kaleid0sc0pe.cpp:28:
/root/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32/include/c++/10.2.0/future:125:11: note: declaration of 'std::iterator_traits<std::future<void>*>::value_type' {aka 'class std::future<void>'}
  125 |     class future;
      |           ^~~~~~
[ 60%] Linking C shared module test_pat_I.dll
[ 60%] Built target test_pat_C
make[2]: *** [src/filter/kaleid0sc0pe/CMakeFiles/kaleid0sc0pe.dir/build.make:92: src/filter/kaleid0sc0pe/CMakeFiles/kaleid0sc0pe.dir/kaleid0sc0pe.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:3441: src/filter/kaleid0sc0pe/CMakeFiles/kaleid0sc0pe.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 60%] Building CXX object src/mixer2/alphaatop/CMakeFiles/alphaatop.dir/alphaatop.cpp.obj
[ 60%] Built target scanline0r
[ 60%] Built target test_pat_I
[ 60%] Linking CXX shared module twolay0r.dll
[ 61%] Linking CXX shared module nois0r.dll
[ 61%] Built target ndvi
[ 62%] Linking CXX shared module sopsat.dll
[ 62%] Linking CXX shared module timeout.dll
[ 62%] Built target sobel
[ 62%] Linking CXX shared module onecol0r.dll
[ 62%] Linking CXX shared module tutorial.dll
[ 63%] Linking CXX shared module vignette.dll
[ 64%] Linking CXX shared module lissajous0r.dll
[ 64%] Linking CXX shared module plasma.dll
[ 64%] Built target threelay0r
[ 64%] Linking CXX shared module lightgraffiti.dll
[ 64%] Linking CXX shared module partik0l.dll
[ 65%] Linking C shared module test_pat_G.dll
[ 65%] Built target twolay0r
[ 65%] Built target test_pat_G
[ 65%] Built target nois0r
[ 66%] Linking C shared module test_pat_R.dll
[ 66%] Built target sopsat
[ 66%] Built target timeout
[ 66%] Built target test_pat_R
[ 66%] Linking C shared module test_pat_L.dll
[ 66%] Built target test_pat_L
[ 66%] Linking CXX shared module addition.dll
[ 66%] Linking CXX shared module addition_alpha.dll
[ 66%] Built target onecol0r
[ 66%] Built target vignette
[ 66%] Built target tutorial
[ 66%] Built target lissajous0r
[ 66%] Built target plasma
[ 66%] Built target lightgraffiti
[ 66%] Linking CXX shared module alphaatop.dll
[ 66%] Built target partik0l
[ 66%] Built target addition
[ 66%] Built target addition_alpha
[ 66%] Built target alphaatop
[ 66%] Linking C shared module test_pat_B.dll
[ 66%] Built target test_pat_B
make: *** [Makefile:136: all] Error 2
timothymowens commented 11 months ago

Another relevant issue thread: https://github.com/rdp/ffmpeg-windows-build-helpers/issues/706

Biswa96 commented 11 months ago

What is the compiler version?

Biswa96 commented 11 months ago

I have compiled this project with gcc 13.2.0 targeting x86_64 mingw.

timothymowens commented 11 months ago
# ./x86_64-w64-mingw32-gcc --version
x86_64-w64-mingw32-gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
gbendy commented 11 months ago

https://github.com/rdp/ffmpeg-windows-build-helpers is using win32 threading model in their x86_64-w64-mingw32-g++ build which apparently does not support futures correctly. https://stackoverflow.com/questions/17242516/mingw-w64-threads-posix-vs-win32

✔ ~/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin [master|…1]
09:28 $ ./x86_64-w64-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=./x86_64-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/libexec/gcc/x86_64-w64-mingw32/10.2.0/lto-wrapper
Target: x86_64-w64-mingw32
Configured with: ../source/gcc-10.2.0/configure --build=x86_64-pc-linux-gnu --target=x86_64-w64-mingw32 --disable-shared --enable-static --disable-nls --disable-multilib --prefix=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64 --with-sysroot=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64 --with-mpc=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/pkgs/mpc/mpc-1.2.1-x86_64 --with-mpfr=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/pkgs/mpfr/mpfr-4.1.0-x86_64 --with-gmp=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/pkgs/gmp/gmp-6.2.1-x86_64 --with-isl=/home/bendy/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/pkgs/isl/isl-0.23-x86_64 --enable-languages=c,c++ --enable-fully-dynamic-string --enable-lto
Thread model: win32
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)

I should fairly easily be able to add a build test step in the cmake to ensure that futures are actually supported correctly and disable threading if it isn't. That's if the build helpers people aren't able to switch to using the posix thread model.

jaromil commented 4 months ago

this should be solved now, thanks @gbendy !