build: Add an option for passing linker flags to the shared library build

Also employ this mechanism to pass $libdir to the runtime library search
path if rpath is enabled. This fixes underlinking of some test binaries
on some systems.
pull/272/head
Janne Grunau 8 years ago committed by Diego Biurrun
parent 333a34da3a
commit 857e26b655
  1. 2
      avbuild/library.mak
  2. 11
      configure

@ -48,7 +48,7 @@ $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(DEP_LIBS) $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(DEP_LIBS)
$(SLIB_CREATE_DEF_CMD) $(SLIB_CREATE_DEF_CMD)
$$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
$(SLIB_EXTRA_CMD) $(SLIB_EXTRA_CMD)
clean:: clean::

11
configure vendored

@ -283,6 +283,7 @@ Toolchain options:
--extra-objcflags=FLAGS add FLAGS to OBJCFLAGS [$CFLAGS] --extra-objcflags=FLAGS add FLAGS to OBJCFLAGS [$CFLAGS]
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
--extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS] --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS]
--extra-ldsoflags=ELDFLAGS add ELDFLAGS to LDSOFLAGS [$LDSOFLAGS]
--extra-libs=ELIBS add ELIBS [$ELIBS] --extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix [] --extra-version=STRING version string suffix []
--optflags=OPTFLAGS override optimization-related compiler flags --optflags=OPTFLAGS override optimization-related compiler flags
@ -740,6 +741,10 @@ add_ldexeflags(){
append LDEXEFLAGS $($ldflags_filter "$@") append LDEXEFLAGS $($ldflags_filter "$@")
} }
add_ldsoflags(){
append LDSOFLAGS $($ldflags_filter "$@")
}
add_stripflags(){ add_stripflags(){
append STRIPFLAGS "$@" append STRIPFLAGS "$@"
} }
@ -2802,6 +2807,9 @@ for opt do
--extra-ldexeflags=*) --extra-ldexeflags=*)
add_ldexeflags $optval add_ldexeflags $optval
;; ;;
--extra-ldsoflags=*)
add_ldsoflags $optval
;;
--extra-libs=*) --extra-libs=*)
add_extralibs $optval add_extralibs $optval
;; ;;
@ -4950,7 +4958,7 @@ EOF
# add some linker flags # add some linker flags
check_ldflags -Wl,--warn-common check_ldflags -Wl,--warn-common
check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
enabled rpath && add_ldexeflags -Wl,-rpath,$libdir enabled rpath && add_ldexeflags -Wl,-rpath,$libdir && add_ldsoflags -Wl,-rpath,$libdir
test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
# add some strip flags # add some strip flags
@ -5410,6 +5418,7 @@ LD_PATH=$LD_PATH
DLLTOOL=$dlltool DLLTOOL=$dlltool
LDFLAGS=$LDFLAGS LDFLAGS=$LDFLAGS
LDEXEFLAGS=$LDEXEFLAGS LDEXEFLAGS=$LDEXEFLAGS
LDSOFLAGS=$LDSOFLAGS
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
STRIPFLAGS=$STRIPFLAGS STRIPFLAGS=$STRIPFLAGS
X86ASMFLAGS=$X86ASMFLAGS X86ASMFLAGS=$X86ASMFLAGS

Loading…
Cancel
Save