]> git.sesse.net Git - ffmpeg/blobdiff - doc/platform.texi
lavu: extend size of the AVPixFmtDescriptor.flags field
[ffmpeg] / doc / platform.texi
index 45ec2754d9e9a380f9b578aab3bd9fe3e29dec77..07c857532f64fcc9d5b1f6e93d2efaca2fb7eaeb 100644 (file)
@@ -24,6 +24,20 @@ If not, then you should install a different compiler that has no
 hard-coded path to gas. In the worst case pass @code{--disable-asm}
 to configure.
 
+@section Advanced linking configuration
+
+If you compiled Libav libraries statically and you want to use them to
+build your own shared library, you may need to force PIC support (with
+@code{--enable-pic} during Libav configure) and add the following option
+to your project LDFLAGS:
+
+@example
+-Wl,-Bsymbolic
+@end example
+
+If your target platform requires position independent binaries, you should
+pass the correct linking flag (e.g. @code{-pie}) to @code{--extra-ldexeflags}.
+
 @section BSD
 
 BSD make will not build Libav, you need to install and use GNU Make
@@ -52,11 +66,11 @@ unacelerated code.
 
 OS X on PowerPC or ARM (iPhone) requires a preprocessor from
 @url{git://git.libav.org/gas-preprocessor.git} to build the optimized
-assembler functions. Put the Perl script somewhere
+assembly functions. Put the Perl script somewhere
 in your PATH, Libav's configure will pick it up automatically.
 
 OS X on AMD64 and x86 requires @command{yasm} to build most of the
-optimized assembler functions @url{http://mxcl.github.com/homebrew/, Homebrew},
+optimized assembly functions @url{http://mxcl.github.com/homebrew/, Homebrew},
 @url{http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-macos.xml, Gentoo Prefix}
 or @url{http://www.macports.org, MacPorts} can easily provide it.
 
@@ -77,9 +91,9 @@ For information about compiling Libav on OS/2 see
 
 @section Native Windows compilation using MinGW or MinGW-w64
 
-Libav can be built to run natively on Windows using the MinGW or MinGW-w64
-toolchains. Install the latest versions of MSYS and MinGW or MinGW-w64 from
-@url{http://www.mingw.org/} or @url{http://mingw-w64.sourceforge.net/}.
+Libav can be built to run natively on Windows using the MinGW-w64
+toolchain. Install the latest versions of MSYS2 and MinGW-w64 from
+@url{http://msys2.github.io/} and/or @url{http://mingw-w64.sourceforge.net/}.
 You can find detailed installation instructions in the download section and
 the FAQ.
 
@@ -87,7 +101,7 @@ Notes:
 
 @itemize
 
-@item Building natively using MSYS can be sped up by disabling implicit rules
+@item Building natively using MSYS2 can be sped up by disabling implicit rules
 in the Makefile by calling @code{make -r} instead of plain @code{make}. This
 speed up is close to non-existent for normal one-off builds and is only
 noticeable when running make for a second time (for example during
@@ -113,13 +127,12 @@ You will need the following prerequisites:
 (if using MSVC 2012 or earlier)
 @item @uref{http://code.google.com/p/msinttypes/, msinttypes}
 (if using MSVC 2012 or earlier)
-@item @uref{http://www.mingw.org/, MSYS}
+@item @uref{http://msys2.github.io/, MSYS2}
 @item @uref{http://yasm.tortall.net/, YASM}
-@item @uref{http://gnuwin32.sourceforge.net/packages/bc.htm, bc for Windows} if
-you want to run @uref{fate.html, FATE}.
+(Also available via MSYS2's package manager.)
 @end itemize
 
-To set up a proper environment in MSYS, you need to run @code{msys.bat} from
+To set up a proper environment in MSYS2, you need to run @code{msys_shell.bat} from
 the Visual Studio or Intel Compiler command prompt.
 
 Place @code{yasm.exe} somewhere in your @code{PATH}. If using MSVC 2012 or
@@ -155,12 +168,6 @@ Notes:
 
 @itemize
 
-@item It is possible that coreutils' @code{link.exe} conflicts with MSVC's linker.
-You can find out by running @code{which link} to see which @code{link.exe} you
-are using. If it is located at @code{/bin/link.exe}, then you have the wrong one
-in your @code{PATH}. Either move or remove that copy, or make sure MSVC's
-@code{link.exe} takes precedence in your @code{PATH} over coreutils'.
-
 @item If you wish to build with zlib support, you will have to grab a compatible
 zlib binary from somewhere, with an MSVC import lib, or if you wish to link
 statically, you can follow the instructions below to build a compatible
@@ -263,7 +270,7 @@ binutils, gcc4-core, make, git, mingw-runtime, texi2html
 
 In order to run FATE you will also need the following "Utils" packages:
 @example
-bc, diffutils
+diffutils
 @end example
 
 If you want to build Libav with additional libraries, download Cygwin