Skip to content

[many ports] mingw support#14556

Merged
strega-nil merged 21 commits intomicrosoft:masterfrom
longnguyen2004:mingw-ffmpeg-related
Dec 1, 2020
Merged

[many ports] mingw support#14556
strega-nil merged 21 commits intomicrosoft:masterfrom
longnguyen2004:mingw-ffmpeg-related

Conversation

@longnguyen2004
Copy link
Contributor

@longnguyen2004 longnguyen2004 commented Nov 13, 2020

Describe the pull request

  • What does your PR fix?
    Add mingw support for a bunch of ffmpeg related ports
    Currently testing ffmpeg with features [avcodec,avdevice,avfilter,avformat,avresample,bzip2,core,ffmpeg,ffprobe,gpl,lzma,mp3lame,opus,postproc,swresample,swscale,theora,vorbis,vpx,x264,x265,zlib] Works perfectly now.
  • Which triplets are supported/not supported? Have you updated the CI baseline?
    All mingw triplets
  • Does your PR follow the maintainer guide?
    Yes

longnguyen2004 and others added 2 commits November 13, 2020 23:04
Co-authored-by: Matthias C. M. Troffaes <matthias.troffaes@gmail.com>
@longnguyen2004
Copy link
Contributor Author

Seems to work fine! I think this is ready
image

@longnguyen2004 longnguyen2004 marked this pull request as ready for review November 14, 2020 03:28
@NancyLi1013 NancyLi1013 self-assigned this Nov 16, 2020
@NancyLi1013 NancyLi1013 added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Nov 16, 2020
Copy link
Contributor

@NancyLi1013 NancyLi1013 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please also update Port-Version for libogg?

@longnguyen2004
Copy link
Contributor Author

Sure I'll amend that commit tonight

@NancyLi1013
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@JackBoosY
Copy link
Contributor

gdal:x64-osx regression:

jpeg2000_vsil_io.cpp:151:5: error: cannot initialize a member subobject of type 'int (*)(jas_stream_obj_t *, const char *, unsigned int)' (aka 'int (*)(void *, const char *, unsigned int)') with an lvalue of type 'int (jas_stream_obj_t *, char *, unsigned int)' (aka 'int (void *, char *, unsigned int)'): type mismatch at 2nd parameter ('const char *' vs 'char *')
    JPEG2000_VSIL_write,
    ^~~~~~~~~~~~~~~~~~~
1 error generated.

@longnguyen2004
Copy link
Contributor Author

longnguyen2004 commented Nov 24, 2020

Every changes made to vcpkg_configure_make results in a huge conflict for whatever reason, does anyone know why?
Also, the gdal regression doesn't seem to come from me.

@JackBoosY
Copy link
Contributor

@longnguyen2004 I updated vcpkg_configure_make in my another PR some days ago.

@Neumann-A
Copy link
Contributor

huge conflict for whatever reason, does anyone know why?

I just don't like the WS changes to it.

your line endings probably are wrong and that is why your PR is updating all of the file.

@longnguyen2004
Copy link
Contributor Author

longnguyen2004 commented Nov 24, 2020

Hmm I haven't done any line ending conversions, let me check my local files. What's the current line ending?

@strega-nil
Copy link
Contributor

This LGTM, but I want a CTI to look this over; cc @JackBoosY could you look at this this week?

@longnguyen2004
Copy link
Contributor Author

longnguyen2004 commented Nov 26, 2020

Regression on mp3lame:x64-windows-static, I'll have a look.
Builds fine on my computer, seems like SourceForge was broken before.

@JackBoosY
Copy link
Contributor

Currently working on #14716, will check these regressions tommorrow.

@JackBoosY
Copy link
Contributor

ocilib:x64-windows-static:

     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymCleanup [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymSetOptions [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymInitialize [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymGetSearchPathW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymSetSearchPathW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymGetModuleBase64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymFunctionTableAccess64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_StackWalk64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymFromAddr [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol __imp_SymGetLineFromAddr64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol SymGetModuleBase64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(stack_trace_win.obj) : error LNK2001: unresolved external symbol SymFunctionTableAccess64 [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol __imp_SetupDiGetClassDevsW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol __imp_SetupDiEnumDeviceInfo [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol __imp_CM_Get_Device_IDW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol __imp_InitPropVariantFromCLSID [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol PowerDeterminePlatformRoleEx [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(win_util.obj) : error LNK2001: unresolved external symbol __imp_IsOS [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(pe_image.obj) : error LNK2001: unresolved external symbol __HrLoadAllImportsForDll [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(wmi.obj) : error LNK2001: unresolved external symbol CLSID_WbemLocator [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(file_version_info_win.obj) : error LNK2001: unresolved external symbol VerQueryValueW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(file_version_info_win.obj) : error LNK2001: unresolved external symbol GetFileVersionInfoSizeW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(file_version_info_win.obj) : error LNK2001: unresolved external symbol GetFileVersionInfoW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>chromium_base.lib(file_enumerator_win.obj) : error LNK2001: unresolved external symbol __imp_PathMatchSpecW [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]
     2>D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\lib64\\ociliba.dll : fatal error LNK1120: 24 unresolved externals [D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\proj\dll\ocilib_dll_vs2019.vcxproj]

Command:

         C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.27.29110\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:"D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\lib64\\ociliba.dll" /INCREMENTAL:NO /NOLOGO /LIBPATH:"D:/installed/x64-windows-static\lib" /LIBPATH:"D:/installed/x64-windows-static\lib\manual-link" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "D:/installed/x64-windows-static\lib\*.lib" /NODEFAULTLIB:ocilib.lib /MANIFEST:NO /DEBUG /PDB:".\..\..\lib64\ociliba.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /LTCG /TLBID:1 /DYNAMICBASE:NO /IMPLIB:"D:\buildtrees\ocilib\x64-windows-static-rel\4fc7a69e6d-337dbe59ca.clean\lib64\\ociliba.lib" /MACHINE:X64 /DLL .\temp\main.res  .\temp\agent.obj ...

According to the document, ocilib should link to Dbghelp.lib on Windows.

gdal:x64-linx:

jpeg2000dataset.cpp: In member function ‘int JPEG2000Dataset::DecodeImage()’:
jpeg2000dataset.cpp:516:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (poBand->iDepth != jas_image_cmptprec( psImage, iBand ) ||
                                ^
jpeg2000_vsil_io.cpp:154:1: error: invalid conversion from ‘int (*)(jas_stream_obj_t*, char*, unsigned int) {aka int (*)(void*, char*, unsigned int)}’ to ‘int (*)(jas_stream_obj_t*, const char*, unsigned int) {aka int (*)(void*, const char*, unsigned int)}’ [-fpermissive]
 };
 ^

gdal:x64-osx:

jpeg2000dataset.cpp:516:32: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
            if (poBand->iDepth != jas_image_cmptprec( psImage, iBand ) ||
                ~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
jpeg2000_vsil_io.cpp:151:5: error: cannot initialize a member subobject of type 'int (*)(jas_stream_obj_t *, const char *, unsigned int)' (aka 'int (*)(void *, const char *, unsigned int)') with an lvalue of type 'int (jas_stream_obj_t *, char *, unsigned int)' (aka 'int (void *, char *, unsigned int)'): type mismatch at 2nd parameter ('const char *' vs 'char *')
    JPEG2000_VSIL_write,
    ^~~~~~~~~~~~~~~~~~~

I met these regressions before, currently don't know why it happend again.

About mpg132 and mp3lame regressions, they are download issue, will be solved by rerun the pipeline test.

@JackBoosY
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
@JackBoosY
Copy link
Contributor

Fine, the only regression is about gdal, I will take a look after the CI test finished.

@JackBoosY JackBoosY added the info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. label Dec 1, 2020
@JackBoosY
Copy link
Contributor

It seems that the GDAL regression no longer exists, and I hope it never happens again.

@strega-nil strega-nil merged commit 02f6b89 into microsoft:master Dec 1, 2020
@strega-nil
Copy link
Contributor

Awesome! Thanks @longnguyen2004 :)

@longnguyen2004 longnguyen2004 deleted the mingw-ffmpeg-related branch December 4, 2020 13:55
@longnguyen2004 longnguyen2004 restored the mingw-ffmpeg-related branch December 4, 2020 13:55
@longnguyen2004 longnguyen2004 deleted the mingw-ffmpeg-related branch December 4, 2020 13:56
@longnguyen2004 longnguyen2004 restored the mingw-ffmpeg-related branch December 4, 2020 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist category:tool-update The issue is with build tool or build script, which requires update or should be executed correctly info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants