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