diff options
author | Clément Bœsch <u@pkh.me> | 2016-06-27 19:39:46 +0200 |
---|---|---|
committer | Clément Bœsch <u@pkh.me> | 2016-06-27 19:39:46 +0200 |
commit | da7c918e80ed3aa48bfbdb05fc0d554df40c64d3 (patch) | |
tree | ccf828e66f49087d00a1a4a44b73f2be57c445da | |
parent | c5566f0a944e376b39c8f994659060ca036c441d (diff) | |
parent | c5fd4b50610f62cbb3baa4f4108139363128dea1 (diff) | |
download | ffmpeg-da7c918e80ed3aa48bfbdb05fc0d554df40c64d3.tar.gz |
Merge commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1'
* commit 'c5fd4b50610f62cbb3baa4f4108139363128dea1':
build: Simplify postprocessing of linker version script files
Merged-by: Clément Bœsch <u@pkh.me>
-rw-r--r-- | common.mak | 5 | ||||
-rwxr-xr-x | configure | 17 | ||||
-rw-r--r-- | library.mak | 3 |
3 files changed, 13 insertions, 12 deletions
diff --git a/common.mak b/common.mak index fbe57d5c4a..7815c3f359 100644 --- a/common.mak +++ b/common.mak @@ -83,9 +83,6 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC) %.h.c: $(Q)echo '#include "$*.h"' >$@ -%.ver: %.v - $(M)sed 's/MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ - %.c %.h %.ver: TAG = GEN # Dummy rule to stop make trying to rebuild removed or renamed headers @@ -150,7 +147,7 @@ $(TOOLOBJS): | tools OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS)) -CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ver-sol2 *.ho *.gcno *.gcda *$(DEFAULT_YASMD).asm +CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.ho *$(DEFAULT_YASMD).asm DISTCLEANSUFFIXES = *.pc LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a @@ -3148,6 +3148,7 @@ objformat="elf" pkg_config_default=pkg-config ranlib_default="ranlib" strip_default="strip" +version_script='--version-script' yasmexe_default="yasm" windres_default="windres" @@ -3209,6 +3210,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)' +VERSION_SCRIPT_POSTPROCESS_CMD="cat" asflags_filter=echo cflags_filter=echo @@ -4627,7 +4629,8 @@ case $target_os in echo "hwcap_1 = OVERRIDE;" > mapfile && add_ldflags -Wl,-M,mapfile nm_default='nm -P -g' - SLIB_CREATE_DEF_CMD='$(Q)perl $(SRC_PATH)/compat/solaris/make_sunver.pl $$(filter %.ver,$$^) $(OBJS) | grep -v @ > $(SUBDIR)lib$(NAME).ver-sol2' + version_script='-M' + VERSION_SCRIPT_POSTPROCESS_CMD='perl $(SRC_PATH)/compat/solaris/make_sunver.pl - $(OBJS)' ;; netbsd) disable symver @@ -6043,13 +6046,9 @@ enabled xmm_clobber_test && disable xmm_clobber_test echo "X { local: *; };" > $TMPV -if test_ldflags -Wl,--version-script,$TMPV; then - append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' -elif test_ldflags -Wl,-M,$TMPV; then - append SHFLAGS '-Wl,-M,\$(SUBDIR)lib\$(NAME).ver-sol2' -fi - -check_cc <<EOF && enable symver_asm_label +if test_ldflags -Wl,${version_script},$TMPV; then + append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' + check_cc <<EOF && enable symver_asm_label void ff_foo(void) __asm__ ("av_foo@VERSION"); void ff_foo(void) { ${inline_asm+__asm__($quotes);} } EOF @@ -6057,6 +6056,7 @@ EOF __asm__(".symver ff_foo,av_foo@VERSION"); void ff_foo(void) {} EOF +fi if [ -z "$optflags" ]; then if enabled small; then @@ -6588,6 +6588,7 @@ SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME} SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS} SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB} SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB} +VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD} SAMPLES:=${samples:-\$(FATE_SAMPLES)} NOREDZONE_FLAGS=$noredzone_flags EOF diff --git a/library.mak b/library.mak index ae2d3f22ab..d8c2b63234 100644 --- a/library.mak +++ b/library.mak @@ -40,6 +40,9 @@ $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) +$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS) + $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@ + $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |