On Fri, Jul 03, 2009 at 11:29:41AM +0200, Kay Sievers wrote: > On Thu, 2009-07-02 at 22:32 +0200, Kay Sievers wrote: > > On Thu, Jul 2, 2009 at 20:10, Karel Zak<kzak@xxxxxxxxxx> wrote: > > > > > > The second util-linux-ng 2.16 release candidate is available at > > > > > > ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.16/ > > > > > > Feedback and bug reports, as always, are welcomed. > > > > It builds fine on the host, but fails to build in a clean chroot: > > > > The hack with moving the devel files around to /usr with an install > > hook breaks the values stored in the libblkid.la file and relinking > > fails, because the lib devel files are now no longer in /lib but > > (silently) moved to /usr/lib: > > > > libtool: relink: gcc -std=gnu99 -shared .libs/cache.o .libs/dev.o > > .libs/devname.o .libs/devno.o .libs/getsize.o .libs/llseek.o > > .libs/probe.o .libs/read.o .libs/resolve.o .libs/save.o .libs/tag.o > > .libs/version.o .libs/verify.o .libs/encode.o .libs/config.o > > .libs/evaluate.o .libs/blkdev.o .libs/linux_version.o > > .libs/canonicalize.o .libs/md5.o -Wl,--whole-archive > > probers/.libs/libblkid_probers.a -Wl,--no-whole-archive > > -L/var/tmp/util-linux-2.16-build/lib64 -L/lib64 -luuid > > -Wl,--version-script=../../../shlibs/blkid/src/blkid.sym -Wl,-soname > > -Wl,libblkid.so.1 -o .libs/libblkid.so.1.0.0 > > /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld: > > cannot find -luuid > > collect2: ld returned 1 exit status > > > > That the .so is installed in the root is really the implementation > > detail that should be hidden from anything but the ld loader on the > > system. I guess, we want to keep the original --libdir value, and use > > a --rootlibdir as it's own parameter, or something similar, and just > > move the .so image to the root with the install hook (or the spec > > file), instead of moving the devel stuff, faking the .pc files and > > patching the .la files. :) > > This seems to make it work in the chroot. > Almost, you forgot to remove the mv $(DESTDIR)$(libdir)/libblkid.a $(DESTDIR)$(usrlibexecdir)/; \ mv $(DESTDIR)$(libdir)/libuuid.a $(DESTDIR)$(usrlibexecdir)/; \ lines. Patch below works for me. Another issue with 2.16 is that parallel builds with 'make -jN' are broken for N>1, vaild for the install target too. Thanks and regards Juergen diff -Nru util-linux-ng-2.16-rc2.orig/shlibs/blkid/src/Makefile.am util-linux-ng-2.16-rc2/shlibs/blkid/src/Makefile.am --- util-linux-ng-2.16-rc2.orig/shlibs/blkid/src/Makefile.am 2009-07-03 11:36:15.607275083 +0200 +++ util-linux-ng-2.16-rc2/shlibs/blkid/src/Makefile.am 2009-07-03 12:25:42.217275068 +0200 @@ -21,7 +21,7 @@ blkidincdir = $(includedir)/blkid blkidinc_HEADERS = blkid.h -lib_LTLIBRARIES = libblkid.la +usrlibexec_LTLIBRARIES = libblkid.la libblkid_la_SOURCES = cache.c dev.c devname.c devno.c getsize.c llseek.c \ probe.c read.c resolve.c save.c tag.c version.c verify.c \ encode.c blkid.h list.h blkidP.h probers/probers.h \ @@ -49,17 +49,14 @@ $(COMPILE) -DTEST_PROGRAM $< .libs/libblkid.a -o $@ $(common_ldadd) -# move devel files from $(libdir) to $(usrlibexecdir) if needed +# move lib from $(usrlibexecdir) to $(libdir) if needed install-data-hook: - rm $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES) if test "$(usrlibexecdir)" != "$(libdir)"; then \ - mkdir -p $(DESTDIR)$(usrlibexecdir); \ - mv $(DESTDIR)$(libdir)/libblkid.a $(DESTDIR)$(usrlibexecdir)/; \ - so_img_name=$$(readlink $(DESTDIR)$(libdir)/libblkid.so); \ - rm $(DESTDIR)$(libdir)/libblkid.so; \ + mkdir -p $(DESTDIR)$(libdir); \ + so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libblkid.so); \ so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ - ln -sf $$so_img_rel_target$(libdir)/$$so_img_name \ - $(DESTDIR)$(usrlibexecdir)/libblkid.so; \ + ln -sf $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libblkid.so; \ + mv $(DESTDIR)$(usrlibexecdir)/libblkid.so.* $(DESTDIR)$(libdir); \ fi uninstall-hook: diff -Nru util-linux-ng-2.16-rc2.orig/shlibs/uuid/src/Makefile.am util-linux-ng-2.16-rc2/shlibs/uuid/src/Makefile.am --- util-linux-ng-2.16-rc2.orig/shlibs/uuid/src/Makefile.am 2009-07-03 11:36:15.627274837 +0200 +++ util-linux-ng-2.16-rc2/shlibs/uuid/src/Makefile.am 2009-07-03 12:25:54.977275086 +0200 @@ -10,7 +10,7 @@ uuidincdir = $(includedir)/uuid uuidinc_HEADERS = uuid.h -lib_LTLIBRARIES = libuuid.la +usrlibexec_LTLIBRARIES = libuuid.la libuuid_la_SOURCES = clear.c compare.c copy.c gen_uuid.c \ isnull.c pack.c parse.c unpack.c unparse.c uuidd.h \ uuidd.h uuidP.h uuid_time.c $(uuidinc_HEADERS) @@ -30,17 +30,14 @@ $(COMPILE) -DTEST_PROGRAM $< .libs/libuuid.a -o $@ -# move devel files from $(libdir) to $(usrlibexecdir) if needed +# move lib from $(usrlibexecdir) to $(libdir) if needed install-data-hook: - rm $(DESTDIR)$(libdir)/$(lib_LTLIBRARIES) if test "$(usrlibexecdir)" != "$(libdir)"; then \ - mkdir -p $(DESTDIR)$(usrlibexecdir); \ - mv $(DESTDIR)$(libdir)/libuuid.a $(DESTDIR)$(usrlibexecdir)/; \ - so_img_name=$$(readlink $(DESTDIR)$(libdir)/libuuid.so); \ - rm $(DESTDIR)$(libdir)/libuuid.so; \ + mkdir -p $(DESTDIR)$(libdir); \ + so_img_name=$$(readlink $(DESTDIR)$(usrlibexecdir)/libuuid.so); \ so_img_rel_target=$$(echo $(usrlibexecdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \ - ln -sf $$so_img_rel_target$(libdir)/$$so_img_name \ - $(DESTDIR)$(usrlibexecdir)/libuuid.so; \ + ln -sf $$so_img_rel_target$(libdir)/$$so_img_name $(DESTDIR)$(usrlibexecdir)/libuuid.so; \ + mv $(DESTDIR)$(usrlibexecdir)/libuuid.so.* $(DESTDIR)$(libdir); \ fi uninstall-hook: -- Juergen Daubert | mailto:jue@xxxxxx Korb, Germany | http://jue.li/crux -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html