The options is useful to build position-independent executables on
hardened systems (e.g. Android L and Gentoo Hardened).
all: $(AVPROGS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
all: $(AVPROGS)
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
- $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
+ $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(EXESUF)=))))
$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS)
$(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)
--host-os=OS compiler host OS [$target_os]
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
--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
--extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix []
--optflags=OPTFLAGS override optimization-related compiler flags
append LDFLAGS $($ldflags_filter "$@")
}
append LDFLAGS $($ldflags_filter "$@")
}
+add_ldexeflags(){
+ append LDEXEFLAGS $($ldflags_filter "$@")
+}
+
add_stripflags(){
append STRIPFLAGS "$@"
}
add_stripflags(){
append STRIPFLAGS "$@"
}
--extra-ldflags=*)
add_ldflags $optval
;;
--extra-ldflags=*)
add_ldflags $optval
;;
+ --extra-ldexeflags=*)
+ add_ldexeflags $optval
+ ;;
--extra-libs=*)
add_extralibs $optval
;;
--extra-libs=*)
add_extralibs $optval
;;
LD_PATH=$LD_PATH
DLLTOOL=$dlltool
LDFLAGS=$LDFLAGS
LD_PATH=$LD_PATH
DLLTOOL=$dlltool
LDFLAGS=$LDFLAGS
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
STRIPFLAGS=$STRIPFLAGS
YASMFLAGS=$YASMFLAGS
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
STRIPFLAGS=$STRIPFLAGS
YASMFLAGS=$YASMFLAGS
-Wl,-Bsymbolic
@end 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
@section BSD
BSD make will not build Libav, you need to install and use GNU Make
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
- $$(LD) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
+ $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)