diff Makefile @ 12208:5d73c4b4cd37 libavcodec

Make ff_inverse stay with libavutil, and optional copy it to libavcodec. The ff_inverse table is used by FASTDIV macro, defined in libavutil, but up to now the table was defined only in libavcodec. After this change, the main copy of ff_inverse is part of libavutil (just like FASTDIV), but if CONFIG_SMALL is unset, then a different copy is made available to libavcodec, to avoid the performance penalty of using an external look up table. Dynamic linking works, because the libraries are linked with -Bsymbolic, so the local copy of the symbol has priority over the external; static linking works because the table is on a standalone object file in both libraries, so the linker is able to discard one of the two. Tested on Linux/x86-64 and Mac OS X/x86-64.
author flameeyes
date Wed, 21 Jul 2010 12:37:37 +0000
parents fb2f04f70afe
children fbc6fc80e6c6
line wrap: on
line diff
--- a/Makefile	Wed Jul 21 10:02:07 2010 +0000
+++ b/Makefile	Wed Jul 21 12:37:37 2010 +0000
@@ -609,6 +609,12 @@
 
 OBJS-$(CONFIG_MLIB)                    += mlib/dsputil_mlib.o           \
 
+# inverse.o contains the ff_inverse table definition, which is used by
+# the FASTDIV macro (from libavutil); since referencing the external
+# table has a negative effect on performance, copy it in libavcodec as
+# well.
+OBJS-$(!CONFIG_SMALL)                  += inverse.o
+
 -include $(SUBDIR)$(ARCH)/Makefile
 
 SKIPHEADERS                             = %_tablegen.h