[FFmpeg-devel] [libav-devel] [PATCH] checkasm: Always link statically

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Wed Jul 22 00:01:09 CEST 2015


On 21.07.2015 23:23, Luca Barbato wrote:
> Checkasm needs to use internal symbols that should not be made public.
> ---
>  Makefile                | 1 +
>  common.mak              | 5 +++--
>  tests/checkasm/Makefile | 4 ++--
>  3 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 5807acd..e9a95aa 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -100,6 +100,7 @@ include $(SRC_PATH)/common.mak
>  
>  FF_EXTRALIBS := $(FFEXTRALIBS)
>  FF_DEP_LIBS  := $(DEP_LIBS)
> +FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS)
>  
>  all: $(AVPROGS)
>  
> diff --git a/common.mak b/common.mak
> index 9244fd3..adab9d1 100644
> --- a/common.mak
> +++ b/common.mak
> @@ -24,8 +24,9 @@ TOOLOBJS  := $(TOOLS:%=tools/%.o)
>  TOOLS     := $(TOOLS:%=tools/%$(EXESUF))
>  HEADERS   += $(HEADERS-yes)
>  
> -PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(CONFIG_SHARED:yes=S)LIBNAME))
> -DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
> +PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))
> +DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))
> +STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
>  
>  SRC_DIR    := $(SRC_PATH)/lib$(NAME)
>  ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
> diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
> index 483ad13..9498ebf 100644
> --- a/tests/checkasm/Makefile
> +++ b/tests/checkasm/Makefile
> @@ -22,8 +22,8 @@ tests/checkasm/%.o: CFLAGS := $(CFLAGS:-Wstrict-prototypes=-Wno-strict-prototype
>  
>  CHECKASM := tests/checkasm/checkasm$(EXESUF)
>  
> -$(CHECKASM): $(EXEOBJS) $(CHECKASMOBJS) $(FF_DEP_LIBS)
> -	$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(CHECKASMOBJS) $(FF_EXTRALIBS)
> +$(CHECKASM): $(EXEOBJS) $(CHECKASMOBJS) $(FF_STATIC_DEP_LIBS)
> +	$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(CHECKASMOBJS) $(FF_STATIC_DEP_LIBS) $(EXTRALIBS)
>  
>  checkasm: $(CHECKASM)
>  
> 

This works basically fine and avoids the problems of making
more internal symbols public.
Consider my patch drop in favor of this.

The only problem I see with this is that it ignores --disable-static.

Best regards,
Andreas



More information about the ffmpeg-devel mailing list