Merge commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 22 Jul 2014 00:45:45 +0000 (02:45 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 22 Jul 2014 00:45:45 +0000 (02:45 +0200)
* commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830':
  build: Support executable only ldflags

Conflicts:
Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
Makefile
configure
doc/platform.texi
library.mak

diff --cc Makefile
+++ b/Makefile
@@@ -63,11 -104,9 +63,11 @@@ 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)
 +tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
 +tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)
  
  config.h: .config
  .config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))
@@@ -108,16 -146,10 +108,16 @@@ $(1)$(PROGSSUF)_g$(EXESUF): FF_EXTRALIB
  -include $$(OBJS-$(1):.o=.d)
  endef
  
 -$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(EXESUF)=))))
 +$(foreach P,$(PROGS),$(eval $(call DOPROG,$(P:$(PROGSSUF)$(EXESUF)=))))
 +
 +ffprobe.o cmdutils.o : libavutil/ffversion.h
 +
 +$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)
 +      $(CP) $< $@
 +      $(STRIP) $@
  
 -$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS)
 +%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS)
-       $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
+       $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
  
  OBJDIRS += tools
  
diff --cc configure
+++ b/configure
@@@ -297,8 -243,8 +297,9 @@@ Toolchain options
    --host-libs=HLIBS        use libs HLIBS when linking for host
    --host-os=OS             compiler host OS [$target_os]
    --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]
 +  --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
    --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
@@@ -758,8 -680,12 +759,12 @@@ add_ldflags()
      append LDFLAGS $($ldflags_filter "$@")
  }
  
+ add_ldexeflags(){
+     append LDEXEFLAGS $($ldflags_filter "$@")
+ }
  add_stripflags(){
 -    append STRIPFLAGS "$@"
 +    append ASMSTRIPFLAGS "$@"
  }
  
  add_extralibs(){
@@@ -5415,15 -4582,12 +5423,16 @@@ LD_O=$LD_
  LD_LIB=$LD_LIB
  LD_PATH=$LD_PATH
  DLLTOOL=$dlltool
 +WINDRES=$windres
 +DEPWINDRES=$dep_cc
 +DOXYGEN=$doxygen
  LDFLAGS=$LDFLAGS
+ LDEXEFLAGS=$LDEXEFLAGS
  SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
 -STRIPFLAGS=$STRIPFLAGS
 +ASMSTRIPFLAGS=$ASMSTRIPFLAGS
  YASMFLAGS=$YASMFLAGS
  BUILDSUF=$build_suffix
 +PROGSSUF=$progs_suffix
  FULLNAME=$FULLNAME
  LIBPREF=$LIBPREF
  LIBSUF=$LIBSUF
@@@ -35,9 -35,12 +35,12 @@@ 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
 +BSD make will not build FFmpeg, you need to install and use GNU Make
  (@command{gmake}).
  
  @section (Open)Solaris
diff --cc library.mak
Simple merge