From a9785f58c670bf5bbd2d8700437f4f36c641fa88 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 1 Feb 2010 16:00:09 +0000 Subject: backport symbol versioning patch Originally committed as revision 21595 to svn://svn.ffmpeg.org/ffmpeg/branches/0.5 --- common.mak | 6 +++++- configure | 16 +++++++++++++--- libavcodec/libavcodec.v | 3 +++ libavdevice/libavdevice.v | 4 ++++ libavfilter/libavfilter.v | 4 ++++ libavformat/libavformat.v | 3 +++ libavutil/libavutil.v | 4 ++++ libpostproc/libpostproc.v | 4 ++++ libswscale/libswscale.v | 3 +++ subdir.mak | 2 +- 10 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 libavcodec/libavcodec.v create mode 100644 libavdevice/libavdevice.v create mode 100644 libavfilter/libavfilter.v create mode 100644 libavformat/libavformat.v create mode 100644 libavutil/libavutil.v create mode 100644 libpostproc/libpostproc.v create mode 100644 libswscale/libswscale.v diff --git a/common.mak b/common.mak index 4be056c876..a98ccd75e2 100644 --- a/common.mak +++ b/common.mak @@ -9,6 +9,7 @@ vpath %.c $(SRC_DIR) vpath %.h $(SRC_DIR) vpath %.S $(SRC_DIR) vpath %.asm $(SRC_DIR) +vpath %.v $(SRC_DIR) ifeq ($(SRC_DIR),$(SRC_PATH_BARE)) BUILD_ROOT_REL = . @@ -43,6 +44,9 @@ CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ %$(EXESUF): %.c +%.ver: %.v + sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ + SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES)) $(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES) @@ -77,7 +81,7 @@ checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) DEPS := $(OBJS:.o=.d) depend dep: $(DEPS) -CLEANSUFFIXES = *.o *~ *.ho +CLEANSUFFIXES = *.o *~ *.ho *.ver LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map DISTCLEANSUFFIXES = *.d *.pc diff --git a/configure b/configure index fd11501e22..229b84d21f 100755 --- a/configure +++ b/configure @@ -566,13 +566,18 @@ int x; EOF } -check_ldflags(){ - log check_ldflags "$@" - check_ld "$@" < $TMPV +test_ldflags -Wl,--version-script,$TMPV && + append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' + if enabled small; then check_cflags -Os # not all compilers support -Os optimizations="small" diff --git a/libavcodec/libavcodec.v b/libavcodec/libavcodec.v new file mode 100644 index 0000000000..561a42cd4f --- /dev/null +++ b/libavcodec/libavcodec.v @@ -0,0 +1,3 @@ +LIBAVCODEC_$MAJOR { + global: *; +}; diff --git a/libavdevice/libavdevice.v b/libavdevice/libavdevice.v new file mode 100644 index 0000000000..663af85ba8 --- /dev/null +++ b/libavdevice/libavdevice.v @@ -0,0 +1,4 @@ +LIBAVDEVICE_$MAJOR { + global: avdevice_*; + local: *; +}; diff --git a/libavfilter/libavfilter.v b/libavfilter/libavfilter.v new file mode 100644 index 0000000000..83e8887080 --- /dev/null +++ b/libavfilter/libavfilter.v @@ -0,0 +1,4 @@ +LIBAVFILTER_$MAJOR { + global: avfilter_*; av_*; + local: *; +}; diff --git a/libavformat/libavformat.v b/libavformat/libavformat.v new file mode 100644 index 0000000000..da2311eb36 --- /dev/null +++ b/libavformat/libavformat.v @@ -0,0 +1,3 @@ +LIBAVFORMAT_$MAJOR { + global: *; +}; diff --git a/libavutil/libavutil.v b/libavutil/libavutil.v new file mode 100644 index 0000000000..ec52f2be7a --- /dev/null +++ b/libavutil/libavutil.v @@ -0,0 +1,4 @@ +LIBAVUTIL_$MAJOR { + global: av_*; ff_*; avutil_*; + local: *; +}; diff --git a/libpostproc/libpostproc.v b/libpostproc/libpostproc.v new file mode 100644 index 0000000000..e65d76f4f6 --- /dev/null +++ b/libpostproc/libpostproc.v @@ -0,0 +1,4 @@ +LIBPOSTPROC_$MAJOR { + global: postproc_*; pp_*; + local: *; +}; diff --git a/libswscale/libswscale.v b/libswscale/libswscale.v new file mode 100644 index 0000000000..d6bd39a8c5 --- /dev/null +++ b/libswscale/libswscale.v @@ -0,0 +1,3 @@ +LIBSWSCALE_%MAJOR% { + global: *; +}; diff --git a/subdir.mak b/subdir.mak index df5bb8a09a..4749d4efd6 100644 --- a/subdir.mak +++ b/subdir.mak @@ -27,7 +27,7 @@ install-libs: install-lib$(NAME)-shared $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) -$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) +$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(SLIB_CREATE_DEF_CMD) $(CC) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$(filter-out $(DEP_LIBS),$$^) $(FFEXTRALIBS) $(EXTRAOBJS) $(SLIB_EXTRA_CMD) -- cgit v1.2.3