comparison 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
comparison
equal deleted inserted replaced
12207:44d480f49053 12208:5d73c4b4cd37
607 OBJS-$(HAVE_PTHREADS) += pthread.o 607 OBJS-$(HAVE_PTHREADS) += pthread.o
608 OBJS-$(HAVE_W32THREADS) += w32thread.o 608 OBJS-$(HAVE_W32THREADS) += w32thread.o
609 609
610 OBJS-$(CONFIG_MLIB) += mlib/dsputil_mlib.o \ 610 OBJS-$(CONFIG_MLIB) += mlib/dsputil_mlib.o \
611 611
612 # inverse.o contains the ff_inverse table definition, which is used by
613 # the FASTDIV macro (from libavutil); since referencing the external
614 # table has a negative effect on performance, copy it in libavcodec as
615 # well.
616 OBJS-$(!CONFIG_SMALL) += inverse.o
617
612 -include $(SUBDIR)$(ARCH)/Makefile 618 -include $(SUBDIR)$(ARCH)/Makefile
613 619
614 SKIPHEADERS = %_tablegen.h 620 SKIPHEADERS = %_tablegen.h
615 SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h 621 SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
616 SKIPHEADERS-$(CONFIG_LIBDIRAC) += libdirac.h 622 SKIPHEADERS-$(CONFIG_LIBDIRAC) += libdirac.h