diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2006-07-10 22:08:12 +0000 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2006-07-10 22:08:12 +0000 |
commit | e70c5600f5653c6915931717bdd52f9a6a2f2d9d (patch) | |
tree | a0d5282f9deb660def1026701c8e68a273099ede /src/post | |
parent | 32ad3ca6265c8cbac584dd3510109b920415a8e1 (diff) | |
download | xine-lib-e70c5600f5653c6915931717bdd52f9a6a2f2d9d.tar.gz xine-lib-e70c5600f5653c6915931717bdd52f9a6a2f2d9d.tar.bz2 |
Implement visibility support, available on GCC 4.0 and later and on some 3.4 (through backports), to avoid exporting unneeded internal symbols, making plugins' loading faster and use of internal copies of libraries more solid. It should automatically fall back to the old way in GCCs that does not support -fvisibility=hidden, but has to be tested carefully. No issues were found in the months of testing in Gentoo, but this requires special attention anyway.
CVS patchset: 8101
CVS date: 2006/07/10 22:08:12
Diffstat (limited to 'src/post')
-rw-r--r-- | src/post/audio/Makefile.am | 5 | ||||
-rw-r--r-- | src/post/audio/audio_filters.c | 4 | ||||
-rw-r--r-- | src/post/deinterlace/Makefile.am | 3 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/Makefile.am | 3 | ||||
-rw-r--r-- | src/post/deinterlace/xine_plugin.c | 4 | ||||
-rw-r--r-- | src/post/goom/Makefile.am | 3 | ||||
-rw-r--r-- | src/post/goom/xine_goom.c | 4 | ||||
-rw-r--r-- | src/post/mosaico/Makefile.am | 6 | ||||
-rw-r--r-- | src/post/mosaico/mosaico.c | 4 | ||||
-rw-r--r-- | src/post/mosaico/switch.c | 4 | ||||
-rw-r--r-- | src/post/planar/Makefile.am | 3 | ||||
-rw-r--r-- | src/post/planar/planar.c | 4 | ||||
-rw-r--r-- | src/post/visualizations/Makefile.am | 5 | ||||
-rw-r--r-- | src/post/visualizations/fooviz.c | 4 | ||||
-rw-r--r-- | src/post/visualizations/visualizations.c | 4 |
15 files changed, 34 insertions, 26 deletions
diff --git a/src/post/audio/Makefile.am b/src/post/audio/Makefile.am index bacd4cf35..7ed37bc5b 100644 --- a/src/post/audio/Makefile.am +++ b/src/post/audio/Makefile.am @@ -8,6 +8,7 @@ lib_LTLIBRARIES = xineplug_post_audio_filters.la xineplug_post_audio_filters_la_SOURCES = \ upmix.c upmix_mono.c filter.c window.c stretch.c volnorm.c audio_filters.c -xineplug_post_audio_filters_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -xineplug_post_audio_filters_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ -lm +xineplug_post_audio_filters_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -lm +xineplug_post_audio_filters_la_CFLAGS = $(VISIBILITY_FLAG) +xineplug_post_audio_filters_la_LDFLAGS = -avoid-version -module diff --git a/src/post/audio/audio_filters.c b/src/post/audio/audio_filters.c index a3f3e7c1d..3d56a793b 100644 --- a/src/post/audio/audio_filters.c +++ b/src/post/audio/audio_filters.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_filters.c,v 1.6 2006/06/02 22:18:58 dsalt Exp $ + * $Id: audio_filters.c,v 1.7 2006/07/10 22:08:44 dgp85 Exp $ * * catalog for audio filter plugins */ @@ -36,7 +36,7 @@ static const post_info_t stretch_special_info = { XINE_POST_TYPE_AUDIO_FILTER static const post_info_t volnorm_special_info = { XINE_POST_TYPE_AUDIO_FILTER }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "upmix", XINE_VERSION_CODE, &upmix_special_info, &upmix_init_plugin }, { PLUGIN_POST, 9, "upmix_mono", XINE_VERSION_CODE, &upmix_mono_special_info, &upmix_mono_init_plugin }, diff --git a/src/post/deinterlace/Makefile.am b/src/post/deinterlace/Makefile.am index 29853a405..0914e114a 100644 --- a/src/post/deinterlace/Makefile.am +++ b/src/post/deinterlace/Makefile.am @@ -13,7 +13,8 @@ xineplug_post_tvtime_la_SOURCES = xine_plugin.c \ xineplug_post_tvtime_la_LIBADD = $(XINE_LIB) \ $(top_builddir)/src/post/deinterlace/plugins/libdeinterlaceplugins.la +xineplug_post_tvtime_la_CFLAGS = $(VISIBILITY_FLAG) xineplug_post_tvtime_la_LDFLAGS = -avoid-version -module \ - @XINE_PLUGIN_MIN_SYMS@ @IMPURE_TEXT_LDFLAGS@ + @IMPURE_TEXT_LDFLAGS@ noinst_HEADERS = deinterlace.h pulldown.h speedtools.h speedy.h tvtime.h diff --git a/src/post/deinterlace/plugins/Makefile.am b/src/post/deinterlace/plugins/Makefile.am index 7c5a0770c..e6e785211 100644 --- a/src/post/deinterlace/plugins/Makefile.am +++ b/src/post/deinterlace/plugins/Makefile.am @@ -48,6 +48,7 @@ libdeinterlaceplugins_la_SOURCES = \ kdetv_greedyh.c \ kdetv_tomsmocomp.c libdeinterlaceplugins_la_LIBADD = $(XINE_LIB) -libdeinterlaceplugins_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ +libdeinterlaceplugins_la_CFLAGS = $(VISIBILITY_FLAG) $(AM_CFLAGS) +libdeinterlaceplugins_la_LDFLAGS = -avoid-version -module noinst_HEADERS = plugins.h greedyhmacros.h diff --git a/src/post/deinterlace/xine_plugin.c b/src/post/deinterlace/xine_plugin.c index 07d2bd448..64b7a02cf 100644 --- a/src/post/deinterlace/xine_plugin.c +++ b/src/post/deinterlace/xine_plugin.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_plugin.c,v 1.50 2006/06/02 22:18:58 dsalt Exp $ + * $Id: xine_plugin.c,v 1.51 2006/07/10 22:08:44 dgp85 Exp $ * * advanced video deinterlacer plugin * Jun/2003 by Miguel Freitas @@ -47,7 +47,7 @@ static void *deinterlace_init_plugin(xine_t *xine, void *); /* plugin catalog information */ static const post_info_t deinterlace_special_info = { XINE_POST_TYPE_VIDEO_FILTER }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST | PLUGIN_MUST_PRELOAD, 9, "tvtime", XINE_VERSION_CODE, &deinterlace_special_info, &deinterlace_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/post/goom/Makefile.am b/src/post/goom/Makefile.am index 3fd80e8a7..5905c16cf 100644 --- a/src/post/goom/Makefile.am +++ b/src/post/goom/Makefile.am @@ -29,7 +29,8 @@ xineplug_post_goom_la_SOURCES = $(extra_files) xine_goom.c \ goomsl_lex.c goomsl_yacc.c graphic.c ifs.c lines.c \ plugin_info.c sound_tester.c surf3d.c tentacle3d.c v3d.c xineplug_post_goom_la_LIBADD = $(XINE_LIB) $(GOOM_LIBS) $(THREAD_LIBS) -xineplug_post_goom_la_LDFLAGS = -avoid-version -module $(XINE_PLUGIN_MIN_SYMS) +xineplug_post_goom_la_CFLAGS = $(VISIBILITY_FLAG) +xineplug_post_goom_la_LDFLAGS = -avoid-version -module noinst_HEADERS = cpu_info.h default_scripts.h drawmethods.h gfontlib.h goom.h \ goom_config.h goom_config_param.h goom_filters.h goom_fx.h goom_graphic.h \ diff --git a/src/post/goom/xine_goom.c b/src/post/goom/xine_goom.c index c9cfb69a0..91667c43d 100644 --- a/src/post/goom/xine_goom.c +++ b/src/post/goom/xine_goom.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_goom.c,v 1.61 2006/06/02 22:13:45 dsalt Exp $ + * $Id: xine_goom.c,v 1.62 2006/07/10 22:08:44 dgp85 Exp $ * * GOOM post plugin. * @@ -112,7 +112,7 @@ static const post_info_t goom_special_info = { XINE_POST_TYPE_AUDIO_VISUALIZATION }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST | PLUGIN_MUST_PRELOAD, 9, "goom", XINE_VERSION_CODE, &goom_special_info, &goom_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/post/mosaico/Makefile.am b/src/post/mosaico/Makefile.am index 2f3a9bc8a..aefb290c6 100644 --- a/src/post/mosaico/Makefile.am +++ b/src/post/mosaico/Makefile.am @@ -6,8 +6,10 @@ lib_LTLIBRARIES = xineplug_post_mosaico.la xineplug_post_switch.la xineplug_post_mosaico_la_SOURCES = mosaico.c xineplug_post_mosaico_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -xineplug_post_mosaico_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ +xineplug_post_mosaico_la_CFLAGS = $(VISIBILITY_FLAG) +xineplug_post_mosaico_la_LDFLAGS = -avoid-version -module xineplug_post_switch_la_SOURCES = switch.c xineplug_post_switch_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -xineplug_post_switch_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ +xineplug_post_switch_la_CFLAGS = $(VISIBILITY_FLAG) +xineplug_post_switch_la_LDFLAGS = -avoid-version -module diff --git a/src/post/mosaico/mosaico.c b/src/post/mosaico/mosaico.c index 9689e3137..40173bd5d 100644 --- a/src/post/mosaico/mosaico.c +++ b/src/post/mosaico/mosaico.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: mosaico.c,v 1.27 2006/06/02 22:18:58 dsalt Exp $ + * $Id: mosaico.c,v 1.28 2006/07/10 22:08:44 dgp85 Exp $ */ /* @@ -41,7 +41,7 @@ static void *mosaico_init_plugin(xine_t *xine, void *); /* plugin catalog information */ static const post_info_t mosaico_special_info = { XINE_POST_TYPE_VIDEO_COMPOSE }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "mosaico", XINE_VERSION_CODE, &mosaico_special_info, &mosaico_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/post/mosaico/switch.c b/src/post/mosaico/switch.c index 48a5bf561..38bd98a66 100644 --- a/src/post/mosaico/switch.c +++ b/src/post/mosaico/switch.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: switch.c,v 1.17 2006/06/02 22:18:58 dsalt Exp $ + * $Id: switch.c,v 1.18 2006/07/10 22:08:44 dgp85 Exp $ */ /* @@ -41,7 +41,7 @@ static void *switch_init_plugin(xine_t *xine, void *); /* plugin catalog information */ static const post_info_t switch_special_info = { XINE_POST_TYPE_VIDEO_COMPOSE }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "switch", XINE_VERSION_CODE, &switch_special_info, &switch_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/post/planar/Makefile.am b/src/post/planar/Makefile.am index d4f50320b..a79ed835b 100644 --- a/src/post/planar/Makefile.am +++ b/src/post/planar/Makefile.am @@ -24,7 +24,8 @@ xineplug_post_planar_la_SOURCES = planar.c invert.c expand.c fill.c boxblur.c \ xineplug_post_planar_la_DEPENDENCIES = $(postproc_dep) xineplug_post_planar_la_LIBADD = $(XINE_LIB) $(postproc_lib) -lm $(THREAD_LIBS) xineplug_post_planar_la_LDFLAGS = -avoid-version -module \ - @XINE_PLUGIN_MIN_SYMS@ @IMPURE_TEXT_LDFLAGS@ + @IMPURE_TEXT_LDFLAGS@ +xineplug_post_planar_la_CFLAGS = $(VISIBILITY_FLAG) $(POSTPROC_INT_LIB): cd $(top_builddir)/src/libffmpeg/libavcodec/libpostproc && $(MAKE) libpostprocess.la diff --git a/src/post/planar/planar.c b/src/post/planar/planar.c index 97bb06c66..5f4363e2f 100644 --- a/src/post/planar/planar.c +++ b/src/post/planar/planar.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: planar.c,v 1.12 2006/06/02 22:18:58 dsalt Exp $ + * $Id: planar.c,v 1.13 2006/07/10 22:08:44 dgp85 Exp $ * * catalog for planar post plugins */ @@ -56,7 +56,7 @@ static const post_info_t pp_special_info = { XINE_POST_TYPE_VIDEO_FILTER }; extern void *noise_init_plugin(xine_t *xine, void *); static const post_info_t noise_special_info = { XINE_POST_TYPE_VIDEO_FILTER }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "expand", XINE_VERSION_CODE, &expand_special_info, &expand_init_plugin }, { PLUGIN_POST, 9, "fill", XINE_VERSION_CODE, &fill_special_info, &fill_init_plugin }, diff --git a/src/post/visualizations/Makefile.am b/src/post/visualizations/Makefile.am index 055d0eb32..8891b1c53 100644 --- a/src/post/visualizations/Makefile.am +++ b/src/post/visualizations/Makefile.am @@ -8,7 +8,8 @@ lib_LTLIBRARIES = xineplug_post_visualizations.la xineplug_post_visualizations_la_SOURCES = \ visualizations.c fft.c fftscope.c oscope.c fftgraph.c -xineplug_post_visualizations_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -xineplug_post_visualizations_la_LDFLAGS = -avoid-version -module @XINE_PLUGIN_MIN_SYMS@ -lm +xineplug_post_visualizations_la_LIBADD = $(XINE_LIB) $(THREAD_LIBS) -lm +xineplug_post_visualizations_la_CFLAGS = $(VISIBILITY_FLAG) +xineplug_post_visualizations_la_LDFLAGS = -avoid-version -module noinst_HEADERS = fft.h visualizations.h diff --git a/src/post/visualizations/fooviz.c b/src/post/visualizations/fooviz.c index b972ac329..8d1e84150 100644 --- a/src/post/visualizations/fooviz.c +++ b/src/post/visualizations/fooviz.c @@ -23,7 +23,7 @@ * process. It simply paints the screen a solid color and rotates through * colors on each iteration. * - * $Id: fooviz.c,v 1.26 2006/06/02 22:18:58 dsalt Exp $ + * $Id: fooviz.c,v 1.27 2006/07/10 22:08:44 dgp85 Exp $ * */ @@ -315,7 +315,7 @@ static void *fooviz_init_plugin(xine_t *xine, void *data) /* plugin catalog information */ static const post_info_t fooviz_special_info = { XINE_POST_TYPE_AUDIO_VISUALIZATION }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "fooviz", XINE_VERSION_CODE, &fooviz_special_info, &fooviz_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/post/visualizations/visualizations.c b/src/post/visualizations/visualizations.c index cd1af3eff..befd8ca4c 100644 --- a/src/post/visualizations/visualizations.c +++ b/src/post/visualizations/visualizations.c @@ -19,7 +19,7 @@ * * This file contains plugin entries for several visualization post plugins. * - * $Id: visualizations.c,v 1.13 2006/06/02 22:18:58 dsalt Exp $ + * $Id: visualizations.c,v 1.14 2006/07/10 22:08:44 dgp85 Exp $ */ #ifdef HAVE_CONFIG_H @@ -46,7 +46,7 @@ static const post_info_t fftscope_special_info = { XINE_POST_TYPE_AUDIO_VISUALIZ static const post_info_t fftgraph_special_info = { XINE_POST_TYPE_AUDIO_VISUALIZATION }; -const plugin_info_t xine_plugin_info[] = { +const plugin_info_t xine_plugin_info[] EXPORTED = { /* type, API, "name", version, special_info, init_function */ { PLUGIN_POST, 9, "oscope", XINE_VERSION_CODE, &oscope_special_info, &oscope_init_plugin }, { PLUGIN_POST, 9, "fftscope", XINE_VERSION_CODE, &fftscope_special_info, &fftscope_init_plugin }, |