From 15904daef12e15e1d61bd295f4d8c62821f8acd8 Mon Sep 17 00:00:00 2001 From: paulc Date: Wed, 24 Mar 2010 13:46:12 +0000 Subject: [PATCH] Reorder libraries so that Yate libraries and modules can be linked using --as-needed avoiding underlinking or overlinking. Reported by Mandriva (bug report #206). git-svn-id: http://yate.null.ro/svn/yate/trunk@3143 acf43c95-373e-0410-b603-e72c3f656dc1 --- Makefile.in | 2 +- clients/Makefile.in | 5 +++-- clients/qt4/Makefile.in | 3 ++- engine/Makefile.in | 2 +- libs/yiax/Makefile.in | 3 ++- libs/yjabber/Makefile.in | 5 +++-- libs/ymgcp/Makefile.in | 5 +++-- libs/ymodem/Makefile.in | 3 ++- libs/ypbx/Makefile.in | 3 ++- libs/yrtp/Makefile.in | 3 ++- libs/ysdp/Makefile.in | 3 ++- libs/ysig/Makefile.in | 7 ++++--- libs/ysip/Makefile.in | 3 ++- libs/yxml/Makefile.in | 3 ++- modules/Makefile.in | 13 +++++++------ modules/test/Makefile.in | 5 +++-- 16 files changed, 41 insertions(+), 27 deletions(-) diff --git a/Makefile.in b/Makefile.in index e60175e5..3b28a5e4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -315,7 +315,7 @@ config.status: @srcdir@/configure Makefile: @srcdir@/Makefile.in $(MKDEPS) ./config.status -yate: libyate.so $(OBJS) $(LIBS) +yate: $(OBJS) $(LIBS) libyate.so $(LINK) -o $@ $(LIBTHR) $^ @LIBS@ libyate.so: $(YLIB) diff --git a/clients/Makefile.in b/clients/Makefile.in index 572176f1..f55bcd35 100644 --- a/clients/Makefile.in +++ b/clients/Makefile.in @@ -13,7 +13,8 @@ DEFS := LIBTHR:= @THREAD_LIB@ INCLUDES := -I.. -I@top_srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L.. -lyate @LIBS@ INCFILES := @top_srcdir@/yatengine.h @top_srcdir@/yatephone.h ../yateversn.h MKDEPS := ../config.status @@ -132,7 +133,7 @@ Makefile: @srcdir@/Makefile.in $(MKDEPS) cd .. && ./config.status yate-%: @srcdir@/main-%.cpp $(MKDEPS) ../libyate.so $(INCFILES) - $(COMPILE) -o $@ $(LOCALFLAGS) $< $(LIBTHR) $(LDFLAGS) $(LOCALLIBS) @LIBS@ + $(COMPILE) -o $@ $(LOCALFLAGS) $< $(LIBTHR) $(LDFLAGS) $(LOCALLIBS) $(YATELIBS) yate-qt4: $(QTCLIENT) yate-qt4: LDFLAGS := $(QTCLIENT) $(LDFLAGS) diff --git a/clients/qt4/Makefile.in b/clients/qt4/Makefile.in index 3fd1fc1e..44de1781 100644 --- a/clients/qt4/Makefile.in +++ b/clients/qt4/Makefile.in @@ -11,7 +11,8 @@ DEFS:= INCLUDES:=-I. -I@srcdir@ -I@top_srcdir@ @QT4_INC@ CXXFLAGS:=$(CXXFLAGS) @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @top_srcdir@/yatecbase.h @srcdir@/qt4client.h PROJECT = libqt4client.a diff --git a/engine/Makefile.in b/engine/Makefile.in index 4e96b3b6..683a09c0 100644 --- a/engine/Makefile.in +++ b/engine/Makefile.in @@ -115,4 +115,4 @@ Makefile: @srcdir@/Makefile.in $(MKDEPS) cd .. && ./config.status ../$(YLIB): $(LIBOBJS) $(LIBS) - $(LINK) -shared -o $@ -Wl,--soname=$(YLIB) $(LIBTHR) $^ $(LIBAUX) + $(LINK) -shared -o $@ -Wl,--soname=$(YLIB) $^ $(LIBTHR) $(LIBAUX) diff --git a/libs/yiax/Makefile.in b/libs/yiax/Makefile.in index ee3465cf..9b02d2a7 100644 --- a/libs/yiax/Makefile.in +++ b/libs/yiax/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yateiax.h PROGS= diff --git a/libs/yjabber/Makefile.in b/libs/yjabber/Makefile.in index f4cbfd03..7baae69a 100644 --- a/libs/yjabber/Makefile.in +++ b/libs/yjabber/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@/../yxml -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/../yxml/yatexml.h @srcdir@/xmpputils.h @srcdir@/yatejabber.h @srcdir@/yatejingle.h PROGS= @@ -57,7 +58,7 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) $(YXML) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ @LIBS@ @RESOLV_LIB@ + $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) @RESOLV_LIB@ ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) diff --git a/libs/ymgcp/Makefile.in b/libs/ymgcp/Makefile.in index 3a59f05c..6dd77d2d 100644 --- a/libs/ymgcp/Makefile.in +++ b/libs/ymgcp/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatemgcp.h PROGS= @@ -56,7 +57,7 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ @LIBS@ + $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) diff --git a/libs/ymodem/Makefile.in b/libs/ymodem/Makefile.in index 319af600..109c731e 100644 --- a/libs/ymodem/Makefile.in +++ b/libs/ymodem/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatemodem.h PROGS= diff --git a/libs/ypbx/Makefile.in b/libs/ypbx/Makefile.in index 3cbffad8..fa1e99aa 100644 --- a/libs/ypbx/Makefile.in +++ b/libs/ypbx/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatepbx.h PROGS= diff --git a/libs/yrtp/Makefile.in b/libs/yrtp/Makefile.in index 52d2deed..c142a1c0 100644 --- a/libs/yrtp/Makefile.in +++ b/libs/yrtp/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatertp.h PROGS= diff --git a/libs/ysdp/Makefile.in b/libs/ysdp/Makefile.in index 484f9cf4..4258c69b 100644 --- a/libs/ysdp/Makefile.in +++ b/libs/ysdp/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yatemime.h @top_srcdir@/yatephone.h @srcdir@/yatesdp.h PROGS= diff --git a/libs/ysig/Makefile.in b/libs/ysig/Makefile.in index e8a446ec..9627a228 100644 --- a/libs/ysig/Makefile.in +++ b/libs/ysig/Makefile.in @@ -9,7 +9,8 @@ DEFS := LIBTHR := @THREAD_LIB@ INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatesig.h PROGS= yate-ss7test @@ -64,13 +65,13 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ @LIBS@ + $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) yate-%: @srcdir@/main-%.cpp $(MKDEPS) $(LIBS) ../../libyate.so $(INCFILES) - $(COMPILE) -o $@ $(LOCALFLAGS) $< $(LIBTHR) $(LDFLAGS) $(LOCALLIBS) @LIBS@ + $(COMPILE) -o $@ $(LOCALFLAGS) $< $(LIBTHR) $(LDFLAGS) $(LOCALLIBS) $(YATELIBS) $(LIBS): $(OBJS) $(AR) rcs $@ $^ diff --git a/libs/ysip/Makefile.in b/libs/ysip/Makefile.in index 3ef8e2cf..78e6415a 100644 --- a/libs/ysip/Makefile.in +++ b/libs/ysip/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatesip.h @srcdir@/util.h PROGS= diff --git a/libs/yxml/Makefile.in b/libs/yxml/Makefile.in index 63f95f10..d676d14b 100644 --- a/libs/yxml/Makefile.in +++ b/libs/yxml/Makefile.in @@ -8,7 +8,8 @@ AR := ar DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatexml.h PROGS= diff --git a/modules/Makefile.in b/modules/Makefile.in index a5f53bef..a5d93a01 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -15,7 +15,8 @@ DEFS := INCLUDES := -I.. -I@top_srcdir@ CFLAGS := @CFLAGS@ @MODULE_CFLAGS@ @INLINE_FLAGS@ CPPFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS:= -L.. -lyate @LIBS@ MODFLAGS:= @MODULE_LDFLAGS@ MODRELAX:= @MODULE_LDRELAX@ MODSTRIP:= @MODULE_SYMBOLS@ @@ -204,22 +205,22 @@ Makefile: @srcdir@/Makefile.in $(MKDEPS) cd .. && ./config.status lib%.so: %.o - $(LINK) -shared -o $@ $^ @LIBS@ + $(LINK) -shared -o $@ $^ $(YATELIBS) server/%.yate: @srcdir@/server/%.cpp $(MKDEPS) $(INCFILES) - $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) @LIBS@ + $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) $(YATELIBS) client/%.yate: @srcdir@/client/%.cpp $(MKDEPS) $(INCFILES) - $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) @LIBS@ + $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) $(YATELIBS) qt4/%.yate: @srcdir@/qt4/%.cpp $(MKDEPS) $(INCFILES) - $(MODCOMP) -o $@ $(LOCALFLAGS) @QT4_INC@ -I@top_srcdir@/clients/qt4 $< $(LOCALLIBS) @QT4_LIB@ @LIBS@ + $(MODCOMP) -o $@ $(LOCALFLAGS) @QT4_INC@ -I@top_srcdir@/clients/qt4 $< $(LOCALLIBS) @QT4_LIB@ $(YATELIBS) qt4/%.moc: @srcdir@/qt4/%.h $(MKDEPS) $(INCFILES) mkdir -p qt4 && $(MOC) $(DEFS) $(INCLUDES) @QT4_INC@ -I@top_srcdir@/clients/qt4 -I@srcdir@/qt4 -o $@ $< %.yate: @srcdir@/%.cpp $(MKDEPS) $(INCFILES) - $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) @LIBS@ + $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) $(YATELIBS) # Take special care of the modules that depend on optional libs diff --git a/modules/test/Makefile.in b/modules/test/Makefile.in index a516aab8..8f520859 100644 --- a/modules/test/Makefile.in +++ b/modules/test/Makefile.in @@ -6,7 +6,8 @@ SED := sed DEFS := INCLUDES := -I@top_srcdir@ CFLAGS := -O0 @MODULE_CPPFLAGS@ @INLINE_FLAGS@ -LDFLAGS:= @LDFLAGS@ -L../.. -lyate +LDFLAGS:= @LDFLAGS@ +YATELIBS:= -L../.. -lyate @LIBS@ MODFLAGS:= @MODULE_LDFLAGS@ MODSTRIP:= @MODULE_SYMBOLS@ @@ -49,4 +50,4 @@ lib%.so: %.o $(LINK) -shared -o $@ $^ %.yate: @srcdir@/%.cpp $(MKDEPS) $(INCFILES) - $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) + $(MODCOMP) -o $@ $(LOCALFLAGS) $< $(LOCALLIBS) $(YATELIBS)