mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-21 06:59:59 -05:00
Add linker version script to hide non-ABI stable symbols in the client
libraries. While this helps defining a more streamlined ABI, this also requires linking a lot of additional symbols into some PA client utilities which until now made use of the non-ABI stable symbols in libpulse. To minimize the effect on there size a bit, strip unused symbols by linking with -ffunction-sections -fdata-sections -Wl,--gc-sections git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2018 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
bc161b4b4a
commit
95af1e616b
2 changed files with 240 additions and 10 deletions
|
|
@ -64,7 +64,7 @@ AM_LIBADD = $(PTHREAD_LIBS)
|
|||
AM_LDADD = $(PTHREAD_LIBS)
|
||||
|
||||
# Only required on some platforms but defined for all to avoid errors
|
||||
AM_LDFLAGS = -Wl,-no-undefined
|
||||
AM_LDFLAGS = -Wl,-no-undefined -ffunction-sections -fdata-sections -Wl,--gc-sections
|
||||
|
||||
if STATIC_BINS
|
||||
BINLDFLAGS = -static
|
||||
|
|
@ -101,7 +101,8 @@ EXTRA_DIST = \
|
|||
daemon/esdcompat.in \
|
||||
utils/padsp \
|
||||
modules/module-defs.h.m4 \
|
||||
daemon/pulseaudio-module-xsmp.desktop
|
||||
daemon/pulseaudio-module-xsmp.desktop \
|
||||
map-file
|
||||
|
||||
pulseconf_DATA = \
|
||||
default.pa \
|
||||
|
|
@ -194,12 +195,12 @@ pasuspender_LDADD = $(AM_LDADD) libpulse.la $(LIBSNDFILE_LIBS)
|
|||
pasuspender_CFLAGS = $(AM_CFLAGS) $(LIBSNDFILE_CFLAGS)
|
||||
pasuspender_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||
|
||||
pacmd_SOURCES = utils/pacmd.c pulsecore/pid.c pulsecore/pid.h
|
||||
pacmd_SOURCES = utils/pacmd.c pulsecore/pid.c pulsecore/pid.h pulsecore/core-util.c pulsecore/core-util.h pulsecore/core-error.c pulsecore/core-error.h pulsecore/log.c pulsecore/log.h pulsecore/once.c pulsecore/once.h $(PA_THREAD_OBJS)
|
||||
pacmd_CFLAGS = $(AM_CFLAGS)
|
||||
pacmd_LDADD = $(AM_LDADD) libpulse.la
|
||||
pacmd_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||
|
||||
pax11publish_SOURCES = utils/pax11publish.c
|
||||
pax11publish_SOURCES = utils/pax11publish.c pulsecore/x11prop.c pulsecore/x11prop.h pulse/client-conf.c pulse/client-conf.h pulsecore/authkey.h pulsecore/authkey.c pulsecore/random.h pulsecore/random.c pulsecore/conf-parser.c pulsecore/conf-parser.h pulsecore/core-util.c pulsecore/core-util.h pulsecore/core-error.c pulsecore/core-error.h pulsecore/log.c pulsecore/log.h pulsecore/once.c pulsecore/once.h $(PA_THREAD_OBJS)
|
||||
pax11publish_CFLAGS = $(AM_CFLAGS) $(X_CFLAGS)
|
||||
pax11publish_LDADD = $(AM_LDADD) libpulse.la $(X_PRE_LIBS) -lX11 $(X_LIBS) $(X_EXTRA_LIBS)
|
||||
pax11publish_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||
|
|
@ -374,7 +375,7 @@ sync_playback_CFLAGS = $(AM_CFLAGS)
|
|||
sync_playback_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||
|
||||
interpol_test_SOURCES = tests/interpol-test.c
|
||||
interpol_test_LDADD = $(AM_LDADD) libpulse.la
|
||||
interpol_test_LDADD = $(AM_LDADD) libpulse.la libpulsecore.la
|
||||
interpol_test_CFLAGS = $(AM_CFLAGS)
|
||||
interpol_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS)
|
||||
|
||||
|
|
@ -525,7 +526,7 @@ libpulse_la_SOURCES += \
|
|||
endif
|
||||
|
||||
libpulse_la_CFLAGS = $(AM_CFLAGS)
|
||||
libpulse_la_LDFLAGS = -version-info $(LIBPULSE_VERSION_INFO)
|
||||
libpulse_la_LDFLAGS = -version-info $(LIBPULSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
|
||||
libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LIBICONV)
|
||||
|
||||
if HAVE_X11
|
||||
|
|
@ -541,17 +542,17 @@ endif
|
|||
libpulse_simple_la_SOURCES = pulse/simple.c pulse/simple.h
|
||||
libpulse_simple_la_CFLAGS = $(AM_CFLAGS)
|
||||
libpulse_simple_la_LIBADD = $(AM_LIBADD) libpulse.la
|
||||
libpulse_simple_la_LDFLAGS = -version-info $(LIBPULSE_SIMPLE_VERSION_INFO)
|
||||
libpulse_simple_la_LDFLAGS = -version-info $(LIBPULSE_SIMPLE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
|
||||
|
||||
libpulse_browse_la_SOURCES = pulse/browser.c pulse/browser.h pulsecore/avahi-wrap.c pulsecore/avahi-wrap.h
|
||||
libpulse_browse_la_SOURCES = pulse/browser.c pulse/browser.h pulsecore/avahi-wrap.c pulsecore/avahi-wrap.h pulsecore/core-util.c pulsecore/core-util.h pulsecore/core-error.c pulsecore/core-error.h pulsecore/log.c pulsecore/log.h pulsecore/once.c pulsecore/once.h $(PA_THREAD_OBJS)
|
||||
libpulse_browse_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
|
||||
libpulse_browse_la_LIBADD = $(AM_LIBADD) libpulse.la $(AVAHI_LIBS)
|
||||
libpulse_browse_la_LDFLAGS = -version-info $(LIBPULSE_BROWSE_VERSION_INFO)
|
||||
libpulse_browse_la_LDFLAGS = -version-info $(LIBPULSE_BROWSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
|
||||
|
||||
libpulse_mainloop_glib_la_SOURCES = pulse/glib-mainloop.h pulse/glib-mainloop.c
|
||||
libpulse_mainloop_glib_la_CFLAGS = $(AM_CFLAGS) $(GLIB20_CFLAGS)
|
||||
libpulse_mainloop_glib_la_LIBADD = $(AM_LIBADD) libpulse.la $(GLIB20_LIBS)
|
||||
libpulse_mainloop_glib_la_LDFLAGS = -version-info $(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO)
|
||||
libpulse_mainloop_glib_la_LDFLAGS = -version-info $(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
|
||||
|
||||
###################################
|
||||
# OSS emulation #
|
||||
|
|
@ -1459,4 +1460,13 @@ update-speex:
|
|||
update-ffmpeg:
|
||||
wget -O pulsecore/ffmpeg/resample2.c http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/resample2.c?view=co
|
||||
|
||||
# Automatically generate linker version script. We use the same one for all public .sos
|
||||
update-map-file:
|
||||
( echo "PULSE_0 {" ; \
|
||||
echo "global:" ; \
|
||||
ctags -I PA_GCC_PURE,PA_GCC_CONST -f - --c-kinds=p $(pulseinclude_HEADERS) | awk '/^pa_/ { print $$1 ";" }' | sort ; \
|
||||
echo "local:" ; \
|
||||
echo "*;" ; \
|
||||
echo "};" ) > $(srcdir)/map-file
|
||||
|
||||
.PHONY: utils/padsp
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue