On 16/07/14 17:01, Luca Barbato wrote:
> The options is useful to build position-independent executables on
> hardened systems (e.g. Android L and Gentoo Hardened).
> ---
>  Makefile          | 4 ++--
>  configure         | 9 +++++++++
>  doc/platform.texi | 3 +++
>  3 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 6302997..99d3240 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -104,7 +104,7 @@ FF_DEP_LIBS  := $(DEP_LIBS)
>  all: $(AVPROGS)
>  
>  $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
> -     $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
> +     $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS)
>  
>  tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
>  
> @@ -149,7 +149,7 @@ endef
>  $(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(EXESUF)=))))
>  
>  $(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS)
> -     $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
> +     $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
>  
>  OBJDIRS += tools
>  
> diff --git a/configure b/configure
> index ea26029..d78fd56 100755
> --- a/configure
> +++ b/configure
> @@ -244,6 +244,7 @@ Toolchain options:
>    --host-os=OS             compiler host OS [$target_os]
>    --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]
>    --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
> +  --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS]
>    --extra-libs=ELIBS       add ELIBS [$ELIBS]
>    --extra-version=STRING   version string suffix []
>    --optflags=OPTFLAGS      override optimization-related compiler flags
> @@ -679,6 +680,10 @@ add_ldflags(){
>      append LDFLAGS $($ldflags_filter "$@")
>  }
>  
> +add_ldexeflags(){
> +    append LDEXEFLAGS $($ldflags_filter "$@")
> +}
> +
>  add_stripflags(){
>      append STRIPFLAGS "$@"
>  }
> @@ -2355,6 +2360,9 @@ for opt do
>          --extra-ldflags=*)
>              add_ldflags $optval
>          ;;
> +        --extra-ldexeflags=*)
> +            add_ldexeflags $optval
> +        ;;
>          --extra-libs=*)
>              add_extralibs $optval
>          ;;
> @@ -4574,6 +4582,7 @@ LD_LIB=$LD_LIB
>  LD_PATH=$LD_PATH
>  DLLTOOL=$dlltool
>  LDFLAGS=$LDFLAGS
> +LDEXEFLAGS=$LDEXEFLAGS
>  SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
>  STRIPFLAGS=$STRIPFLAGS
>  YASMFLAGS=$YASMFLAGS
> diff --git a/doc/platform.texi b/doc/platform.texi
> index 3ada146..d4a6618 100644
> --- a/doc/platform.texi
> +++ b/doc/platform.texi
> @@ -35,6 +35,9 @@ to your project LDFLAGS:
>  -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
> 

Ping.

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to