mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-24 16:22:37 +00:00
build: Simplify postprocessing of linker version script files
Generate the files in a single postprocessing step w/o intermediate files.
This commit is contained in:
parent
535a742c26
commit
c5fd4b5061
3
Makefile
3
Makefile
@ -62,9 +62,6 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
|
|||||||
%.h.c:
|
%.h.c:
|
||||||
$(Q)echo '#include "$*.h"' >$@
|
$(Q)echo '#include "$*.h"' >$@
|
||||||
|
|
||||||
%.ver: %.v
|
|
||||||
$(M)sed 's/MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
|
|
||||||
|
|
||||||
%.c %.h %.ver: TAG = GEN
|
%.c %.h %.ver: TAG = GEN
|
||||||
|
|
||||||
AVPROGS-$(CONFIG_AVCONV) += avconv
|
AVPROGS-$(CONFIG_AVCONV) += avconv
|
||||||
|
@ -52,7 +52,7 @@ $(TOOLOBJS): | tools
|
|||||||
|
|
||||||
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS))
|
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS))
|
||||||
|
|
||||||
CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ver-sol2 *.gcno *.gcda
|
CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver
|
||||||
DISTCLEANSUFFIXES = *.pc
|
DISTCLEANSUFFIXES = *.pc
|
||||||
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
|
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
|
||||||
|
|
||||||
|
17
configure
vendored
17
configure
vendored
@ -2465,6 +2465,7 @@ objformat="elf"
|
|||||||
pkg_config_default=pkg-config
|
pkg_config_default=pkg-config
|
||||||
ranlib="ranlib"
|
ranlib="ranlib"
|
||||||
strip="strip"
|
strip="strip"
|
||||||
|
version_script='--version-script'
|
||||||
yasmexe="yasm"
|
yasmexe="yasm"
|
||||||
|
|
||||||
# machine
|
# machine
|
||||||
@ -2506,6 +2507,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
|
|||||||
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
|
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
|
||||||
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
|
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
|
||||||
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
|
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
|
||||||
|
VERSION_SCRIPT_POSTPROCESS_CMD="cat"
|
||||||
|
|
||||||
asflags_filter=echo
|
asflags_filter=echo
|
||||||
cflags_filter=echo
|
cflags_filter=echo
|
||||||
@ -3748,7 +3750,8 @@ case $target_os in
|
|||||||
echo "hwcap_1 = OVERRIDE;" > mapfile &&
|
echo "hwcap_1 = OVERRIDE;" > mapfile &&
|
||||||
add_ldflags -Wl,-M,mapfile
|
add_ldflags -Wl,-M,mapfile
|
||||||
nm_default='nm -P -g'
|
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)
|
netbsd)
|
||||||
disable symver
|
disable symver
|
||||||
@ -4829,13 +4832,9 @@ enabled xmm_clobber_test &&
|
|||||||
disable xmm_clobber_test
|
disable xmm_clobber_test
|
||||||
|
|
||||||
echo "X { local: *; };" > $TMPV
|
echo "X { local: *; };" > $TMPV
|
||||||
if test_ldflags -Wl,--version-script,$TMPV; then
|
if test_ldflags -Wl,${version_script},$TMPV; then
|
||||||
append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
|
append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
|
||||||
elif test_ldflags -Wl,-M,$TMPV; then
|
check_cc <<EOF && enable symver_asm_label
|
||||||
append SHFLAGS '-Wl,-M,\$(SUBDIR)lib\$(NAME).ver-sol2'
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_cc <<EOF && enable symver_asm_label
|
|
||||||
void ff_foo(void) __asm__ ("av_foo@VERSION");
|
void ff_foo(void) __asm__ ("av_foo@VERSION");
|
||||||
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
|
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
|
||||||
EOF
|
EOF
|
||||||
@ -4843,6 +4842,7 @@ EOF
|
|||||||
__asm__(".symver ff_foo,av_foo@VERSION");
|
__asm__(".symver ff_foo,av_foo@VERSION");
|
||||||
void ff_foo(void) {}
|
void ff_foo(void) {}
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$optflags" ]; then
|
if [ -z "$optflags" ]; then
|
||||||
if enabled small; then
|
if enabled small; then
|
||||||
@ -5243,6 +5243,7 @@ SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME}
|
|||||||
SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
|
SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
|
||||||
SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
|
SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
|
||||||
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
|
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
|
||||||
|
VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
|
||||||
SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
|
SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -35,6 +35,9 @@ $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
|
|||||||
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
|
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
|
||||||
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
|
$$(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)
|
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
|
||||||
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
|
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user