Skip to content

Enable THREADS_PREFER_PTHREAD_FLAG only on UNIX#3271

Open
wantehchang wants to merge 1 commit into
AOMediaCodec:mainfrom
wantehchang:prefer-pthread-only-on-unix
Open

Enable THREADS_PREFER_PTHREAD_FLAG only on UNIX#3271
wantehchang wants to merge 1 commit into
AOMediaCodec:mainfrom
wantehchang:prefer-pthread-only-on-unix

Conversation

@wantehchang

Copy link
Copy Markdown
Member

Call find_package(Threads) on all platforms.

Fixes #3262.

Call find_package(Threads) on all platforms.

Fixes AOMediaCodec#3262.
@wantehchang

Copy link
Copy Markdown
Member Author

@kmilos @vtorri Please review.

@vtorri

vtorri commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

problem still here. With git took 2 minutes ago:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c9a7f82d..3db794f9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -432,13 +432,14 @@ if(NOT WIN32 AND NOT APPLE)
     target_link_libraries(avif_obj PRIVATE m)
 endif()
 
-if(UNIX OR MINGW)
+if(UNIX)
     # Find out if we have threading available
     set(THREADS_PREFER_PTHREAD_FLAG ON)
-    find_package(Threads)
-    target_link_libraries(avif_obj PRIVATE Threads::Threads)
 endif()
 
+find_package(Threads)
+target_link_libraries(avif_obj PRIVATE Threads::Threads)
+
 if(NOT AVIF_LIBYUV_ENABLED)
     target_sources(
         avif_obj

compilation:

[2/26] Building C object CMakeFiles/avif_obj.dir/src/properties.c.obj
[3/26] Building C object CMakeFiles/avif_obj.dir/src/mem.c.obj
[4/26] Building C object CMakeFiles/avif_obj.dir/src/reformat_libsharpyuv.c.obj
[5/26] Building C object CMakeFiles/avif_obj.dir/src/exif.c.obj
[6/26] Building C object CMakeFiles/avif_obj.dir/src/rawdata.c.obj
[7/26] Building C object CMakeFiles/avif_obj.dir/src/io.c.obj
[8/26] Building C object CMakeFiles/avif_obj.dir/src/colrconvert.c.obj
[9/26] Building C object CMakeFiles/avif_obj.dir/src/obu.c.obj
[10/26] Building C object CMakeFiles/avif_obj.dir/src/scale.c.obj
[11/26] Building C object CMakeFiles/avif_obj.dir/src/sampletransform.c.obj
[12/26] Building C object CMakeFiles/avif_obj.dir/src/alpha.c.obj
[13/26] Building C object CMakeFiles/avif_obj.dir/src/codec_dav1d.c.obj
[14/26] Building C object CMakeFiles/avif_obj.dir/src/utils.c.obj
[15/26] Building C object CMakeFiles/avif_obj.dir/src/colr.c.obj
[16/26] Building C object CMakeFiles/avif_obj.dir/src/reformat_libyuv.c.obj
[17/26] Building C object CMakeFiles/avif_obj.dir/src/gainmap.c.obj
[18/26] Building C object CMakeFiles/avif_obj.dir/src/stream.c.obj
[19/26] Building C object CMakeFiles/avif_obj.dir/src/codec_aom.c.obj
[20/26] Building C object CMakeFiles/avif_obj.dir/src/avif.c.obj
[21/26] Building C object CMakeFiles/avif_obj.dir/src/write.c.obj
[22/26] Building C object CMakeFiles/avif_obj.dir/src/reformat.c.obj
[23/26] Building C object CMakeFiles/avif_obj.dir/src/read.c.obj
[24/26] Linking C static library libavif_internal.a
[25/26] Linking CXX shared library libavif.dll
FAILED: libavif.dll libavif.dll.a 
: && /usr/bin/x86_64-w64-mingw32-g++ -I/home/vtorri/ewpi_64/include -D__USE_MINGW_ANSI_STDIO=0 -D_WIN32_WINNT=0x0A00 -O2 -pipe -march=native  -L/home/vtorri/ewpi_64/lib -shared -o libavif.dll -Wl,--out-implib,libavif.dll.a -Wl,--major-image-version,16,--minor-image-version,4 CMakeFiles/avif_obj.dir/src/alpha.c.obj CMakeFiles/avif_obj.dir/src/avif.c.obj CMakeFiles/avif_obj.dir/src/colr.c.obj CMakeFiles/avif_obj.dir/src/colrconvert.c.obj CMakeFiles/avif_obj.dir/src/diag.c.obj CMakeFiles/avif_obj.dir/src/exif.c.obj CMakeFiles/avif_obj.dir/src/gainmap.c.obj CMakeFiles/avif_obj.dir/src/io.c.obj CMakeFiles/avif_obj.dir/src/mem.c.obj CMakeFiles/avif_obj.dir/src/obu.c.obj CMakeFiles/avif_obj.dir/src/properties.c.obj CMakeFiles/avif_obj.dir/src/rawdata.c.obj CMakeFiles/avif_obj.dir/src/read.c.obj CMakeFiles/avif_obj.dir/src/reformat.c.obj CMakeFiles/avif_obj.dir/src/reformat_libsharpyuv.c.obj CMakeFiles/avif_obj.dir/src/reformat_libyuv.c.obj CMakeFiles/avif_obj.dir/src/sampletransform.c.obj CMakeFiles/avif_obj.dir/src/scale.c.obj CMakeFiles/avif_obj.dir/src/stream.c.obj CMakeFiles/avif_obj.dir/src/utils.c.obj CMakeFiles/avif_obj.dir/src/write.c.obj CMakeFiles/avif_obj.dir/src/codec_dav1d.c.obj CMakeFiles/avif_obj.dir/src/codec_aom.c.obj  /home/vtorri/ewpi_64/lib/libyuv.dll.a  -lpthread  /home/vtorri/ewpi_64/lib/libdav1d.dll.a  /home/vtorri/ewpi_64/lib/libaom.dll.a  -l_aom_dep_lib_m-NOTFOUND  -l_aom_dep_lib_pthread-NOTFOUND  /home/vtorri/ewpi_64/lib/libvmaf.dll.a  -l_aom_dep_lib_m-NOTFOUND  -l_aom_dep_lib_pthread-NOTFOUND  /home/vtorri/ewpi_64/lib/libvmaf.dll.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
/usr/bin/x86_64-w64-mingw32-ld : ne peut pas trouver -l_aom_dep_lib_m-NOTFOUND : Aucun fichier ou dossier de ce nom
/usr/bin/x86_64-w64-mingw32-ld : ne peut pas trouver -l_aom_dep_lib_pthread-NOTFOUND : Aucun fichier ou dossier de ce nom
/usr/bin/x86_64-w64-mingw32-ld : ne peut pas trouver -l_aom_dep_lib_m-NOTFOUND : Aucun fichier ou dossier de ce nom
/usr/bin/x86_64-w64-mingw32-ld : ne peut pas trouver -l_aom_dep_lib_pthread-NOTFOUND : Aucun fichier ou dossier de ce nom
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

@kmilos

kmilos commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

This is completely unrelated to the aom overlinking problem, which needs to be addressed there.

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

Successfully merging this pull request may close these issues.

build: remove pthread detection on Windows

3 participants