summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2008-01-15 16:49:29 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2008-01-15 16:49:29 +0100
commit07b372828b7b4b1337331ff16ebdab1482609e0a (patch)
treeb726c7715681928fa758678931fc45ed3b6104e9
parentfa109cc055ecf40ec01f82f313ed2cccf094bbaf (diff)
downloadxine-lib-07b372828b7b4b1337331ff16ebdab1482609e0a.tar.gz
xine-lib-07b372828b7b4b1337331ff16ebdab1482609e0a.tar.bz2
Check if the linker supports --gc-sections, and if so use it for the plugins.
This way the unused parts of internal copies of libraries can be get rid of by the linker.
-rw-r--r--configure.ac3
-rw-r--r--misc/Makefile.common2
2 files changed, 4 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 926620303..cdb196f79 100644
--- a/configure.ac
+++ b/configure.ac
@@ -480,6 +480,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]], [[int a; memset(&a,
[warnflags="$warnflags -Wpointer-arith"
AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
+CC_CHECK_LDFLAGS([-Wl,--gc-sections], [GCSECTIONS="-Wl,--gc-sections"])
+AC_SUBST([GCSECTIONS])
+
dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
dnl are requested, as different implementations are present; to avoid problems
dnl use -Wl,-z,defs only for those platforms not behaving this way.
diff --git a/misc/Makefile.common b/misc/Makefile.common
index edafcea4b..447b558e2 100644
--- a/misc/Makefile.common
+++ b/misc/Makefile.common
@@ -3,7 +3,7 @@ XINE_LIB = $(top_builddir)/src/xine-engine/libxine.la
xineincludedir = $(includedir)/xine
xineplugdir = $(XINE_PLUGINDIR)
-xineplug_ldflags = $(NOUNDEF) -avoid-version -module
+xineplug_ldflags = $(NOUNDEF) $(GCSECTIONS) -avoid-version -module
xinepostdir = $(XINE_PLUGINDIR)/post
vidixdir = $(XINE_PLUGINDIR)/vidix