Bug#558847: Resolve unresolved symbols in shared libraries

Jaromír Mikeš mira.mikes at seznam.cz
Wed Dec 2 17:49:58 UTC 2009


> Od: Peter Fritzsche <peter.fritzsche at gmx.de>

> ----------------------------------------
> Source: clxclient
> Version: 3.6.1-1
> Severity: wishlist
> User: peter.fritzsche at gmx.de
> Usertags: unresolved-symbols-so
> 
> I build all packages some time ago with binutils-gold and your package build
> without an hard failure, but I noticed that you seems to provide a library in
> a specific library package so other packages can link against it without
> problems.... but your shared object has still some unresolved symbols which
> the program which links agaomst it must resolve. This isnt a good idea because
> when you introduce new dependencies the package previously linked against the
> old version will break because it doesnt know about the new dependency.
> Maybe you could link against all needed libraries so programs must not link
> against libraries which it doesnt need to use.
> 
> Maybe it is related to following bugs which hard failed due to unresolved
> symbols in programs
> 
> http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=peter.fritzsche@gmx.de;tag=no-add-needed
> 
> More informations can be found at
> 
> http://wiki.debian.org/qa.debian.org/FTBFS#A2009-11-02Packagesfailingbecausebinutils-gold.2BAC8-indirectlinking
> dpkg-shlibdeps already showed you the related warnings:
> 
> dpkg-shlibdeps: warning: symbol _ZN8P_threadC2Ev used by
> debian/libclxclient3/usr/lib/libclxclient.so.3.6.1 found in none of the
> libraries.
> dpkg-shlibdeps: warning: symbol _ZN8P_threadD2Ev used by
> debian/libclxclient3/usr/lib/libclxclient.so.3.6.1 found in none of the
> libraries.
> dpkg-shlibdeps: warning: symbol _ZTI8P_thread used by
> debian/libclxclient3/usr/lib/libclxclient.so.3.6.1 found in none of the
> libraries.
> dpkg-shlibdeps: warning: symbol _ZN8ITC_ip1q9get_eventEj used by
> debian/libclxclient3/usr/lib/libclxclient.so.3.6.1 found in none of the
> libraries.
> dpkg-shlibdeps: warning: symbol _ZN8P_thread9thr_startEiim used by
> debian/libclxclient3/usr/lib/libclxclient.so.3.6.1 found in none of the
> libraries.

Hi,

If I understand well I should add "-ldl" to the linking command in the Makefile.
Can you please do it for me in attached makefile?
This help me understand what I should do in other packages.

Is there something more I should care about?

regards

mira
-------------- next part --------------
#  Copyright (C) 2003-2008 Fons Adriaensen <fons at kokkinizita.net>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU Lesser General Public License as published
#  by the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this program; if not, write to the Free Software
#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


# Modify as required.
#
PREFIX = /usr/local
SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/')
LIBDIR = lib$(SUFFIX)


MAJVERS = 3
MINVERS = 6.1
VERSION = $(MAJVERS).$(MINVERS)
DISTDIR = clxclient-$(VERSION)


CPPFLAGS += -Wall -I. -I/usr/X11R6/include `freetype-config --cflags` -fpic -DVERSION=\"$(VERSION)\" -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -O2 
LDFLAGS += -L$(PREFIX)/$(LIBDIR) -L/usr/X11R6/$(LIBDIR) `freetype-config --libs`
LDLIBS +=


CLXCLIENT_SO = libclxclient.so
CLXCLIENT_MAJ = $(CLXCLIENT_SO).$(MAJVERS)
CLXCLIENT_MIN = $(CLXCLIENT_MAJ).$(MINVERS)
CLXCLIENT_DEP = -lpthread -lXft -lX11
CLXCLIENT_O = xdisplay.o xresman.o xhandler.o xwindow.o xdraw.o \
	button.o textip.o enumip.o menuwin.o scale.o slider.o scroll.o mclist.o meter.o
CLXCLIENT_H = clxclient.h


$(CLXCLIENT_MIN): $(CLXCLIENT_O)
	g++ -shared $(LDFLAGS) -Wl,-soname,$(CLXCLIENT_MAJ) -o $(CLXCLIENT_MIN) $(CLXCLIENT_O) $(CLXCLIENT_DEP)


install:	$(CLXCLIENT_MIN)
	/usr/bin/install -d $(PREFIX)/$(LIBDIR)
	/usr/bin/install -m 644 $(CLXCLIENT_H) $(PREFIX)/include
	/usr/bin/install -m 755 $(CLXCLIENT_MIN) $(PREFIX)/$(LIBDIR)
	/sbin/ldconfig -n $(PREFIX)/$(LIBDIR)
	ln -sf $(CLXCLIENT_MIN) $(PREFIX)/$(LIBDIR)/$(CLXCLIENT_SO)


clean:
	/bin/rm -f *~ *.o *.a *.d *.so.*


tarball:
	cd ..; \
	/bin/rm -f -r $(DISTDIR)*; \
	svn export clxclient $(DISTDIR); \
	tar cvf $(DISTDIR).tar $(DISTDIR); \
	bzip2 $(DISTDIR).tar; \
	/bin/rm -f -r $(DISTDIR);



More information about the pkg-multimedia-maintainers mailing list