Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
On Sun, 2006-10-01 at 20:32 -0400, Theodore Tso wrote: > On Sat, Sep 30, 2006 at 12:10:33PM +0100, Ben Hutchings wrote: > > I can see Steve's point. I'm attaching another version of the patch > > that appears to remove the spurious direct dependencies. I intend to > > NMU this with the trivial short-term fix, though. > > This doesn't fix the problem, though, I think. It looks like it > doesn't include -lpthread: > > [EMAIL PROTECTED]:~/e2fsprogs/e2fsprogs-1.39$ pkg-config --libs devmapper > -L/lib -ldevmapper > [EMAIL PROTECTED]:~/e2fsprogs/e2fsprogs-1.39$ pkg-config --libs --static > devmapper > -L/lib -ldevmapper -lselinux -lsepol > > Am I missing something? You need to rebuild devmapper with the patch from #390243 first. Ben. -- Ben Hutchings -- [EMAIL PROTECTED] shortened to [EMAIL PROTECTED] If you've signed my GPG key, please send a signature on and to the new uid. Editing code like this is akin to sticking plasters on the bleeding stump of a severed limb. - me, 29 June 1999 signature.asc Description: This is a digitally signed message part
Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
On Sat, Sep 30, 2006 at 12:10:33PM +0100, Ben Hutchings wrote: > I can see Steve's point. I'm attaching another version of the patch > that appears to remove the spurious direct dependencies. I intend to > NMU this with the trivial short-term fix, though. This doesn't fix the problem, though, I think. It looks like it doesn't include -lpthread: [EMAIL PROTECTED]:~/e2fsprogs/e2fsprogs-1.39$ pkg-config --libs devmapper -L/lib -ldevmapper [EMAIL PROTECTED]:~/e2fsprogs/e2fsprogs-1.39$ pkg-config --libs --static devmapper -L/lib -ldevmapper -lselinux -lsepol Am I missing something? - Ted -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
I can see Steve's point. I'm attaching another version of the patch that appears to remove the spurious direct dependencies. I intend to NMU this with the trivial short-term fix, though. Ben. --- e2fsprogs-1.39.orig/debugfs/Makefile.in +++ e2fsprogs-1.39/debugfs/Makefile.in @@ -27,7 +27,7 @@ LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \ $(LIBUUID) $(DLOPEN_LIB) -DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(DEPLIBBLKID) $(DEPLIBUUID) .c.o: @echo " CC $<" --- e2fsprogs-1.39.orig/e2fsck/Makefile.in +++ e2fsprogs-1.39/e2fsck/Makefile.in @@ -18,17 +18,17 @@ XTRA_CFLAGS= -DRESOURCE_TRACK -I. LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(LIBUUID) $(LIBINTL) -DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(DEPLIBBLKID) $(DEPLIBUUID) STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \ $(STATIC_LIBUUID) $(LIBINTL) -STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \ +STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(DEPSTATIC_LIBBLKID) \ $(DEPSTATIC_LIBUUID) PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR) \ $(PROFILED_LIBBLKID) $(PROFILED_LIBUUID) $(LIBINTL) PROFILED_DEPLIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR) \ - $(PROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) + $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) COMPILE_ET=$(top_builddir)/lib/et/compile_et --build-tree --- e2fsprogs-1.39.orig/misc/Makefile.in +++ e2fsprogs-1.39/misc/Makefile.in @@ -55,7 +55,7 @@ STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) LIBS_BLKID= $(LIBBLKID) $(LIBUUID) -DEPLIBS_BLKID= $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS_BLKID= $(DEPLIBBLKID) $(DEPLIBUUID) LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) DEPLIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) --- e2fsprogs-1.39.orig/debian/control +++ e2fsprogs-1.39/debian/control @@ -2,7 +2,7 @@ Section: admin Priority: required Maintainer: Theodore Y. Ts'o <[EMAIL PROTECTED]> -Build-Depends: texi2html, gettext, texinfo, dc, libsepol1-dev, libdevmapper-dev, libselinux1-dev, debhelper (>= 4) +Build-Depends: texi2html, gettext, texinfo, dc, libdevmapper-dev, debhelper (>= 4), pkg-config Standards-Version: 3.7.2 Package: e2fsck-static --- e2fsprogs-1.39.orig/lib/blkid/blkid.pc.in +++ e2fsprogs-1.39/lib/blkid/blkid.pc.in @@ -8,4 +8,4 @@ Version: @E2FSPROGS_VERSION@ -Requires: uuid @DEVMAPPER_REQ@ +Requires.private: uuid @DEVMAPPER_REQ@ Cflags: -I${includedir} -Libs: -L${libdir} -lblkid @DEVMAPPER_PC_LIBS@ +Libs: -L${libdir} -lblkid --- e2fsprogs-1.39.orig/MCONFIG.in +++ e2fsprogs-1.39/MCONFIG.in @@ -75,10 +75,11 @@ LIBCOM_ERR = $(LIB)/[EMAIL PROTECTED]@ LIBE2P = $(LIB)/[EMAIL PROTECTED]@ LIBEXT2FS = $(LIB)/[EMAIL PROTECTED]@ -LIBUUID = $(LIB)/[EMAIL PROTECTED]@ @SOCKET_LIB@ -LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ $(DEVMAPPER_LIBS) +LIBUUID = $(LIB)/[EMAIL PROTECTED]@ +LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ LIBINTL = @LIBINTL@ DEPLIBUUID = $(LIB)/[EMAIL PROTECTED]@ +DEPLIBBLKID = $(LIB)/[EMAIL PROTECTED]@ STATIC_LIBSS = $(LIB)/[EMAIL PROTECTED]@ STATIC_LIBCOM_ERR = $(LIB)/[EMAIL PROTECTED]@ @@ -87,14 +88,16 @@ STATIC_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ @SOCKET_LIB@ STATIC_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ $(STATIC_DEVMAPPER_LIBS) DEPSTATIC_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ +DEPSTATIC_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBSS = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBCOM_ERR = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBE2P = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBEXT2FS = $(LIB)/[EMAIL PROTECTED]@ -PROFILED_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ @SOCKET_LIB@ +PROFILED_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ DEPPROFILED_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ +DEPPROFILED_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ # An include directive pointing to a directory holding enough linux-like # include files to satisfy some programs here --- e2fsprogs-1.39.orig/configure.in +++ e2fsprogs-1.39/configure.in @@ -494,17 +494,15 @@ AC_DEFINE(HAVE_DEVMAPPER) echo "Enabling device-mapper support" - DEVMAPPER_REQ='libselinux libsepol' - DEVMAPPER_PC_LIBS='-ldevmapper' - DEVMAPPER_LIBS='-ldevmapper -lselinux -lsepol' - STATIC_DEVMAPPER_LIBS='/usr/lib/libdevmapper.a /usr/lib/libselinux.a /usr/lib/libsepol.a' + DEVMAPPER_REQ='devmapper' + DEVMAPPER_LIBS="$(pkg-config --libs devmapper)" + STATIC_DEVMAPPER_LIBS="$(pkg-config --libs --static devmapper)" fi] , echo "Disabling device-mapper support by default" ) AC_SUBST(DEVMAPPER_REQ) -AC_SUBST(DEVMAPPER_PC_LIBS) AC_SUBST(DEVMAPPER_LIBS) AC_SUBST(STATIC_DEVMAPPER_LIBS) dnl -- END -- -- Ben Hutchings -- [EMAIL PROTECTED] shortened to [EMAIL PROTECTED] If you've signed my GPG key, please send a signature on and to the new uid.
Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
unblock 388718 by 390243 thanks While this patch is *a* solution to the problem, it is not the only solution and certainly not the fastest one to implement. It also isn't even a self-consistent solution, as even after devmapper implements Requires.private in its .pc file, the binaries that are dynamically linked are still going to end up with spurious lib dependencies because they'll be linking to dependencies of libblkid, libext2fs, and libuuid that they shouldn't need to reference directly. So given that this patch is a partial solution, I think the better short-term approach is to just go ahead with adding -pthread to the hard-coded list, and rip out all the hard-coding at a later date when devmapper is fixed. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
Using devmapper's pkg-config information should fix the problem, though that needs to be fixed first (bug #390243). --- e2fsprogs-1.39.orig/debugfs/Makefile.in +++ e2fsprogs-1.39/debugfs/Makefile.in @@ -27,7 +27,7 @@ LIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) \ $(LIBUUID) $(DLOPEN_LIB) -DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS= $(LIBEXT2FS) $(LIBE2P) $(LIBSS) $(LIBCOM_ERR) $(DEPLIBBLKID) $(DEPLIBUUID) .c.o: @echo " CC $<" --- e2fsprogs-1.39.orig/e2fsck/Makefile.in +++ e2fsprogs-1.39/e2fsck/Makefile.in @@ -18,11 +18,11 @@ XTRA_CFLAGS= -DRESOURCE_TRACK -I. LIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(LIBUUID) $(LIBINTL) -DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS= $(LIBEXT2FS) $(LIBCOM_ERR) $(DEPLIBBLKID) $(DEPLIBUUID) STATIC_LIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \ $(STATIC_LIBUUID) $(LIBINTL) -STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(STATIC_LIBBLKID) \ +STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) $(DEPSTATIC_LIBBLKID) \ $(DEPSTATIC_LIBUUID) PROFILED_LIBS= $(PROFILED_LIBEXT2FS) $(PROFILED_LIBCOM_ERR) \ --- e2fsprogs-1.39.orig/misc/Makefile.in +++ e2fsprogs-1.39/misc/Makefile.in @@ -55,7 +55,7 @@ STATIC_DEPLIBS= $(STATIC_LIBEXT2FS) $(STATIC_LIBCOM_ERR) LIBS_BLKID= $(LIBBLKID) $(LIBUUID) -DEPLIBS_BLKID= $(LIBBLKID) $(DEPLIBUUID) +DEPLIBS_BLKID= $(DEPLIBBLKID) $(DEPLIBUUID) LIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) DEPLIBS_E2P= $(LIBE2P) $(LIBCOM_ERR) --- e2fsprogs-1.39.orig/debian/control +++ e2fsprogs-1.39/debian/control @@ -2,7 +2,7 @@ Section: admin Priority: required Maintainer: Theodore Y. Ts'o <[EMAIL PROTECTED]> -Build-Depends: texi2html, gettext, texinfo, dc, libsepol1-dev, libdevmapper-dev, libselinux1-dev, debhelper (>= 4) +Build-Depends: texi2html, gettext, texinfo, dc, libsepol1-dev, libdevmapper-dev, debhelper (>= 4), pkg-config Standards-Version: 3.7.2 Package: e2fsck-static --- e2fsprogs-1.39.orig/lib/blkid/blkid.pc.in +++ e2fsprogs-1.39/lib/blkid/blkid.pc.in @@ -8,4 +8,4 @@ Version: @E2FSPROGS_VERSION@ Requires: uuid @DEVMAPPER_REQ@ Cflags: -I${includedir} -Libs: -L${libdir} -lblkid @DEVMAPPER_PC_LIBS@ +Libs: -L${libdir} -lblkid --- e2fsprogs-1.39.orig/MCONFIG.in +++ e2fsprogs-1.39/MCONFIG.in @@ -79,6 +79,7 @@ LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ $(DEVMAPPER_LIBS) LIBINTL = @LIBINTL@ DEPLIBUUID = $(LIB)/[EMAIL PROTECTED]@ +DEPLIBBLKID = $(LIB)/[EMAIL PROTECTED]@ STATIC_LIBSS = $(LIB)/[EMAIL PROTECTED]@ STATIC_LIBCOM_ERR = $(LIB)/[EMAIL PROTECTED]@ @@ -87,6 +88,7 @@ STATIC_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ @SOCKET_LIB@ STATIC_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ $(STATIC_DEVMAPPER_LIBS) DEPSTATIC_LIBUUID = $(LIB)/[EMAIL PROTECTED]@ +DEPSTATIC_LIBBLKID = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBSS = $(LIB)/[EMAIL PROTECTED]@ PROFILED_LIBCOM_ERR = $(LIB)/[EMAIL PROTECTED]@ --- e2fsprogs-1.39.orig/configure.in +++ e2fsprogs-1.39/configure.in @@ -494,17 +494,15 @@ AC_DEFINE(HAVE_DEVMAPPER) echo "Enabling device-mapper support" - DEVMAPPER_REQ='libselinux libsepol' - DEVMAPPER_PC_LIBS='-ldevmapper' - DEVMAPPER_LIBS='-ldevmapper -lselinux -lsepol' - STATIC_DEVMAPPER_LIBS='/usr/lib/libdevmapper.a /usr/lib/libselinux.a /usr/lib/libsepol.a' + DEVMAPPER_REQ='devmapper' + DEVMAPPER_LIBS="$(pkg-config --libs devmapper)" + STATIC_DEVMAPPER_LIBS="$(pkg-config --libs --static devmapper)" fi] , echo "Disabling device-mapper support by default" ) AC_SUBST(DEVMAPPER_REQ) -AC_SUBST(DEVMAPPER_PC_LIBS) AC_SUBST(DEVMAPPER_LIBS) AC_SUBST(STATIC_DEVMAPPER_LIBS) dnl -- END -- -- Ben Hutchings -- [EMAIL PROTECTED] shortened to [EMAIL PROTECTED] If you've signed my GPG key, please send a signature on and to the new uid. Tomorrow will be cancelled due to lack of interest. signature.asc Description: This is a digitally signed message part
Bug#388718: e2fsprogs: FTBFS: Link error in e2fsck.static
Package: e2fsprogs Version: 1.39-1 Severity: serious From my pbuilder build log: ... CC prof_err.c LD e2fsck.shared CP e2fsck LD e2fsck.static /usr/lib/libselinux.a(setrans_client.o): In function `fini_context_translations': /tmp/buildd/libselinux-1.30.28/src/setrans_client.c:210: undefined reference to `pthread_mutex_lock' /tmp/buildd/libselinux-1.30.28/src/setrans_client.c:211: undefined reference to `pthread_mutex_lock' /tmp/buildd/libselinux-1.30.28/src/setrans_client.c:216: undefined reference to `pthread_mutex_unlock' ... /tmp/buildd/libselinux-1.30.28/src/setrans_client.c:306: undefined reference to `pthread_mutex_lock' /tmp/buildd/libselinux-1.30.28/src/setrans_client.c:327: undefined reference to `pthread_mutex_unlock' collect2: ld returned 1 exit status make[3]: *** [e2fsck.static] Error 1 make[3]: Leaving directory `/tmp/buildd/e2fsprogs-1.39/debian/BUILD-STD/e2fsck' make[2]: *** [all-progs-recursive] Error 1 make[2]: Leaving directory `/tmp/buildd/e2fsprogs-1.39/debian/BUILD-STD' make[1]: *** [all] Error 2 make[1]: Leaving directory `/tmp/buildd/e2fsprogs-1.39/debian/BUILD-STD' make: *** [debian/stampdir/build-std-stamp] Error 2 Since this was fixed on the libselinux side (#388375), you need to either use pkg-config to get the proper dependencies, or else insert -lpthread manually. -- Daniel Schepler