[FFmpeg-devel] [PATCH v2] configure: add -Wl when linker is called indirectly

Kacper Michajlow kasper93 at gmail.com
Fri Jun 27 01:09:02 EEST 2025


On Fri, 20 Jun 2025 at 01:52, Kacper Michajłow <kasper93 at gmail.com> wrote:
>
> It's possible to call linker indirectly through driver like Clang. In
> which cases linker args has to be prefixed with -Wl.
>
> Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
> ---
>  configure | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index c57da316cc..0dede08356 100755
> --- a/configure
> +++ b/configure
> @@ -5950,7 +5950,11 @@ case $target_os in
>          SLIB_INSTALL_LINKS=
>          SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
>          SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
> -        SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
> +        if test $ld_type = "clang"; then
> +            SHFLAGS='-Wl,-dll -Wl,-def:$$(@:$(SLIBSUF)=.def) -Wl,-implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
> +        else
> +            SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
> +        fi
>          enabled x86_64 && objformat="win64" || objformat="win32"
>          ranlib=:
>          enable dos_paths
> --
> 2.45.1
>

Those two patches fixes those two FATE builds:

https://fate.ffmpeg.org/report.cgi?time=20250626214340&slot=amd64-clang-msvc
https://fate.ffmpeg.org/report.cgi?time=20250626214403&slot=amd64-clang-msvc-shared

SHFLAGS should really be safe as it is restricted to clang case only.
As for renaming static libs to .lib, I don't see a better way to just
rip the bandaid off. I understand it may require some small renaming
update for some users, but it keeps configure consistent with
expectations of llvm toolchain and generic Windows naming.

Thanks,
Kacper


More information about the ffmpeg-devel mailing list