libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit b55ea0faa3675111971957e6ecea8181f4625607
parent 64c63da758619d3a1896c4dcaafd4bf689ab830f
Author: Heikki Lindholm <holin@iki.fi>
Date:   Mon, 17 Nov 2008 08:36:09 +0000

sanitize regex linker flags


Diffstat:
Mconfigure.ac | 21++++++++++++++++++++-
Msrc/common/Makefile.am | 7++-----
Msrc/main/Makefile.am | 7++-----
Msrc/plugins/Makefile-plugins.am | 6+-----
Msrc/plugins/Makefile.am | 78+++++++++++++++++++++++++++++++++++++++---------------------------------------
5 files changed, 64 insertions(+), 55 deletions(-)

diff --git a/configure.ac b/configure.ac @@ -515,6 +515,26 @@ AC_ARG_WITH(ffmpeg-arch, [set FFmpeg --arch setting for cross-compiling.]), [ffmpegarch=$withval]) + +LE_LIB_LDFLAGS="-export-dynamic -no-undefined" +LE_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined" +dnl TODO insert a proper check here +AC_CACHE_CHECK([whether -export-symbols-regex works], + gn_cv_export_symbols_regex_works, + [ + case "$host_os" in + mingw*) gn_cv_export_symbols_regex_works=no;; + *) gn_cv_export_symbols_regex_works=yes;; + esac + ]) +if test "x$gn_cv_export_symbols_regex_works" = "xyes" +then + LE_LIB_LDFLAGS="$LE_LIB_LDFLAGS -export-symbols-regex \"EXTRACTOR_@<:@a-zA-Z0-9_@:>@*\"" + LE_PLUGIN_LDFLAGS="$LE_PLUGIN_LDFLAGS -export-symbols-regex \"libextractor_@<:@a-zA-Z0-9_@:>@*_extract\"" +fi +AC_SUBST(LE_LIB_LDFLAGS) +AC_SUBST(LE_PLUGIN_LDFLAGS) + AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(XTRA_CPPLIBS) @@ -542,7 +562,6 @@ src/plugins/exiv2/Makefile src/test/Makefile ]) -LIBEXTRACTOR_VERSION="0.5.18a" AX_CREATE_PKGCONFIG_INFO([libextractor.pc],,[-lextractor],[Metadata extraction library],,) if test "x$ffmpeg_enabled" = "x1" diff --git a/src/common/Makefile.am b/src/common/Makefile.am @@ -7,19 +7,16 @@ lib_LTLIBRARIES = \ libextractor_common.la if !MINGW - exportflag=-export-symbols-regex "EXTRACTOR_.*" if !SOMEBSD dlflag=-ldl endif -else - winexportflag=-export-dynamic endif libextractor_common_la_LDFLAGS = \ - $(exportflag) $(winexportflag) -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@ $(LIBICONV) + $(LE_LIB_LDFLAGS) libextractor_common_la_LIBADD = \ - $(LIBLTDL) $(dlflag) -lz + $(LIBLTDL) $(dlflag) $(LIBICONV) -lz libextractor_common_la_SOURCES = \ unzip.c \ diff --git a/src/main/Makefile.am b/src/main/Makefile.am @@ -17,12 +17,9 @@ extract_LDADD = \ $(top_builddir)/src/main/libextractor.la if !MINGW - exportflag=-export-symbols-regex "EXTRACTOR_[a-zA-Z0-9_]*" if !SOMEBSD dlflag=-ldl endif -else - winexportflag=-export-dynamic endif if HAVE_ZLIB @@ -39,9 +36,9 @@ endif endif libextractor_la_LDFLAGS = \ - $(exportflag) $(winexportflag) -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@ $(LIBICONV) + $(LE_LIB_LDFLAGS) -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@ libextractor_la_LIBADD = \ - $(LIBLTDL) $(dlflag) $(zlib) $(bz2lib) $(GSF_LIBS_X) -lpthread + $(LIBLTDL) $(dlflag) $(zlib) $(bz2lib) $(GSF_LIBS_X) $(LIBICONV) -lpthread EXTRA_DIST = \ diff --git a/src/plugins/Makefile-plugins.am b/src/plugins/Makefile-plugins.am @@ -6,14 +6,10 @@ plugindir = $(libdir)/@RPLUGINDIR@ LIBS = \ @LTLIBINTL@ @LIBS@ -if !MINGW - retaincommand=-export-symbols-regex "libextractor_[a-zA-Z0-9_]*_extract" -endif - if HAVE_GNU_LD makesymbolic=-Wl,-Bsymbolic endif -PLUGINFLAGS = $(makesymbolic) -avoid-version -module -no-undefined +PLUGINFLAGS = $(makesymbolic) $(LE_PLUGIN_LDFLAGS) diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am @@ -129,7 +129,7 @@ if HAVE_VORBISFILE libextractor_ogg_la_SOURCES = \ oggextractor.c libextractor_ogg_la_LDFLAGS = \ - -lvorbisfile $(vorbisflag) -logg $(PLUGINFLAGS) $(retaincommand) + -lvorbisfile $(vorbisflag) -logg $(PLUGINFLAGS) endif @@ -139,12 +139,12 @@ libextractor_flac_la_SOURCES = \ libextractor_flac_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_flac_la_LDFLAGS = \ - -lFLAC $(flacoggflag) $(PLUGINFLAGS) $(retaincommand) + -lFLAC $(flacoggflag) $(PLUGINFLAGS) endif if HAVE_ZLIB libextractor_qt_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_qt_la_LIBADD = \ -lz libextractor_qt_la_SOURCES = \ @@ -155,70 +155,70 @@ libextractor_ps_la_SOURCES = \ psextractor.c libextractor_ps_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_wav_la_SOURCES = \ wavextractor.c libextractor_wav_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_pdf_la_SOURCES = \ pdfextractor.c libextractor_pdf_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_pdf_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_mp3_la_SOURCES = \ mp3extractor.c libextractor_mp3_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_mp3_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_id3v2_la_SOURCES = \ id3v2extractor.c libextractor_id3v2_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_id3v2_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_id3v23_la_SOURCES = \ id3v23extractor.c libextractor_id3v23_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_id3v23_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_id3v24_la_SOURCES = \ id3v24extractor.c libextractor_id3v24_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_id3v24_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_it_la_SOURCES = \ itextractor.c libextractor_it_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_it_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_dvi_la_SOURCES = \ dviextractor.c libextractor_dvi_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_asf_la_SOURCES = \ asfextractor.c libextractor_asf_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) if HAVE_ZLIB libextractor_tar_la_SOURCES = \ tarextractor.c libextractor_tar_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_tar_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la -lz endif @@ -226,33 +226,33 @@ endif libextractor_lower_la_SOURCES = \ lowerextractor.c libextractor_lower_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_gif_la_SOURCES = \ gifextractor.c libextractor_gif_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_gif_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_tiff_la_SOURCES = \ tiffextractor.c libextractor_tiff_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_tiff_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_applefile_la_SOURCES = \ applefileextractor.c libextractor_applefile_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_applefile_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_elf_la_SOURCES = \ elfextractor.c libextractor_elf_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_elf_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la @@ -260,17 +260,17 @@ libextractor_zip_la_SOURCES = \ zipextractor.c libextractor_zip_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_jpeg_la_SOURCES = \ jpegextractor.c libextractor_jpeg_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_html_la_SOURCES = \ htmlextractor.c libextractor_html_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_html_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la \ $(top_builddir)/src/common/libextractor_common.la @@ -278,27 +278,27 @@ libextractor_html_la_LIBADD = \ libextractor_flv_la_SOURCES = \ flvextractor.c libextractor_flv_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_flv_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la libextractor_real_la_SOURCES = \ realextractor.c libextractor_real_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_mime_la_SOURCES = \ mimeextractor.c libextractor_mime_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) if HAVE_MPEG2 libextractor_mpeg_la_SOURCES = \ mpegextractor.c libextractor_mpeg_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_mpeg_la_LIBADD = \ -lmpeg2 endif @@ -307,14 +307,14 @@ libextractor_man_la_SOURCES = \ manextractor.c libextractor_man_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) if HAVE_ZLIB libextractor_deb_la_SOURCES = \ debextractor.c libextractor_deb_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_deb_la_LIBADD = \ -lz endif @@ -323,7 +323,7 @@ libextractor_riff_la_SOURCES = \ riffextractor.c libextractor_riff_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_riff_la_LIBADD = \ -lm @@ -332,7 +332,7 @@ libextractor_png_la_SOURCES = \ pngextractor.c libextractor_png_la_LDFLAGS = \ $(top_builddir)/src/main/libextractor.la \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_png_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la -lz endif @@ -340,7 +340,7 @@ endif libextractor_filename_la_SOURCES = \ filenameextractor.c libextractor_filename_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_filename_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la \ $(top_builddir)/src/common/libextractor_common.la @@ -348,54 +348,54 @@ libextractor_filename_la_LIBADD = \ libextractor_sid_la_SOURCES = \ sidextractor.c libextractor_sid_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_sid_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_nsf_la_SOURCES = \ nsfextractor.c libextractor_nsf_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_nsf_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_nsfe_la_SOURCES = \ nsfeextractor.c libextractor_nsfe_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_nsfe_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_xm_la_SOURCES = \ xmextractor.c libextractor_xm_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_xm_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_s3m_la_SOURCES = \ s3mextractor.c libextractor_s3m_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_s3m_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_split_la_SOURCES = \ splitextractor.c libextractor_split_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_translit_la_SOURCES = \ translitextractor.c libextractor_translit_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) + $(PLUGINFLAGS) libextractor_thumbnailqt_la_SOURCES = \ thumbnailextractorqt.cc libextractor_thumbnailqt_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la libextractor_thumbnailqt_la_LDFLAGS = \ - $(PLUGINFLAGS) $(retaincommand) $(qtflags) $(svgflags) + $(PLUGINFLAGS) $(qtflags) $(svgflags) libextractor_thumbnailqt_la_CPPFLAGS = \ -I$(top_scrdir)/include \ $(QT_CFLAGS) $(QT_SVG_CFLAGS)