<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>Hello gnutls-devs,<br>
<br>
I'm cross-compiling FFmpeg with GnuTLS (on Windows using Cygwin,
MinGW and GCC) for TLS 1.2 support.<br>
Without intervention FFmpeg's configure would always fail:<br>
<br>
/cygdrive/m/[...]/bin/i686-w64-mingw32-gcc
-Wl,--large-address-aware -Wl,--nxcompat,--dynamicbase
-Wl,--as-needed -Wl,--pic-executable,-e,_mainCRTStartup
-I/cygdrive/m/[...]/i686-w64-mingw32/include
-L/cygdrive/m/[...]/i686-w64-mingw32/lib -o
/cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.c6JidCYd/test.exe
/cygdrive/c/DOCUME~1/Admin/LOCALS~1/Temp/ffconf.c6JidCYd/test.o
-lgnutls -lws2_32 -lgmp -lhogweed -lgmp -lnettle<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0xe55):
undefined reference to
`_imp__CertGetCertificateContextProperty@16'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x1662):
undefined reference to `_imp__CertOpenSystemStoreA@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x169e):
undefined reference to `_imp__CertFindCertificateInStore@24'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x16ca):
undefined reference to
`_imp__CertGetCertificateContextProperty@16'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x1932):
undefined reference to `_imp__CertFreeCertificateContext@4'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x1944):
undefined reference to `_imp__CertCloseStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2167):
undefined reference to `_imp__CertOpenSystemStoreA@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x21a3):
undefined reference to `_imp__CertFindCertificateInStore@24'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x21f0):
undefined reference to `_imp__CertFreeCertificateContext@4'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x221d):
undefined reference to `_imp__CertCloseStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x23ad):
undefined reference to `_imp__CertCloseStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x249f):
undefined reference to `_imp__CertOpenSystemStoreA@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x255b):
undefined reference to `_imp__CertEnumCertificatesInStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x26db):
undefined reference to `_imp__CertOpenSystemStoreA@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x26f5):
undefined reference to `_imp__CertFindCertificateInStore@24'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2777):
undefined reference to
`_imp__CertGetCertificateContextProperty@16'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x27cc):
undefined reference to `_imp__CertCloseStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2874):
undefined reference to `_imp__CertDeleteCertificateFromStore@4'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2ab5):
undefined reference to `_imp__CertCloseStore@8'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2d70):
undefined reference to `_imp__PFXImportCertStore@12'<br>
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgnutls.a(keys-win.o):keys-win.c:(.text+0x2e7f):
undefined reference to `_imp__CertFindCertificateInStore@24'<br>
collect2: error: ld returned 1 exit status<br>
ERROR: gnutls not found using pkg-config<br>
<br>
I've always had to update 'gnutls.pc.in':<br>
<br>
prefix=@prefix@<br>
exec_prefix=@exec_prefix@<br>
libdir=@libdir@<br>
includedir=@includedir@<br>
<br>
Name: GnuTLS<br>
Description: Transport Security Layer implementation for the GNU
system<br>
URL: <a class="moz-txt-link-freetext" href="http://www.gnutls.org/">http://www.gnutls.org/</a><br>
Version: @VERSION@<br>
Libs: -L${libdir} -lgnutls<br>
Libs.private: @LIBINTL@ @LIBSOCKET@ @LIBNSL@ @LIBPTHREAD@
@LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBIDN2_LIBS@ <b>-lcrypt32</b><br>
@GNUTLS_REQUIRES_PRIVATE@<br>
Cflags: -I${includedir}<br>
<br>
or configure FFmpeg with --extra-libs=-lcrypt32 to correct this.<br>
<br>
In 'lib/Makefile.am' I did notice:<br>
<br>
if WINDOWS<br>
thirdparty_libadd += -lcrypt32<br>
endif<br>
<br>
and in 'lib/.libs/libgnutls.lai' I did notice:<br>
<br>
# Libraries that this one depends upon.<br>
dependency_libs=' -lws2_32
-L/cygdrive/m/[...]/i686-w64-mingw32/lib -lhogweed -lnettle
/cygdrive/m/[...]/i686-w64-mingw32/lib/libgmp.la -lcrypt32'<br>
<br>
but as FFmpeg only checks the pkg-config file, I believe
'gnutls.pc.in' is this case is in need of an update.<br>
<br>
-- Reino<br>
</tt>
</body>
</html>