On Wed, Sep 06, 2017 at 09:11:11PM -0700, Khem Raj wrote: > On Wed, Sep 6, 2017 at 7:40 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote: > > On Wed, Sep 06, 2017 at 07:19:00PM -0700, Khem Raj wrote: > >> When uuid is enabled then we see linking failures with gold linker e.g. > >> > >> libxfs/.libs/libxfs.so: error: undefined reference to 'uuid_compare' > >> libxfs/.libs/libxfs.so: error: undefined reference to 'uuid_copy' > >> clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation) > > > > That's libxfs, not xfs_spaceman.... > > yes its libxfs but its linking spaceman, I chopped the error logs too > much I guess. xfs_spaceman does not link against libuuid: $ ldd spaceman/xfs_spaceman linux-vdso.so.1 (0x00007ffca4f68000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa36f358000) /lib64/ld-linux-x86-64.so.2 (0x00007fa36f6f7000) Nor libxfs - if it linked against libxfs, it would have to pull in 4 other libraries, including libuuid: $ ldd repair/xfs_repair linux-vdso.so.1 (0x00007ffd96bb4000) libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f5da2d4f000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f5da2b47000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5da292a000) libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f5da26e4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5da2345000) /lib64/ld-linux-x86-64.so.2 (0x00007f5da2f54000) So whatever build error you are having has nothing to do with xfs_spaceman. Have you installed all the necessary libraries? > >> Signed-off-by: Khem Raj <raj.khem@xxxxxxxxx> > >> --- > >> spaceman/Makefile | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/spaceman/Makefile b/spaceman/Makefile > >> index 95ec3c0..060e0af 100644 > >> --- a/spaceman/Makefile > >> +++ b/spaceman/Makefile > >> @@ -9,7 +9,7 @@ LTCOMMAND = xfs_spaceman > >> HFILES = init.h space.h > >> CFILES = init.c file.c prealloc.c trim.c > >> > >> -LLDLIBS = $(LIBXCMD) > >> +LLDLIBS = $(LIBXCMD) $(LIBUUID) > > > > And spaceman doesn't link against libxfs, nor does libxcmd or > > spaceman use uuids so I don't see why this fixes a problem with > > libxfs... > > I was just following what other binaries were doing, otherwise I agree > libuuid should appear in DT_NEEDED flags in libxfs.so so linkers can > pull it in automatically. > > try using > > LDFLAGS = "-fuse-ld=gold" if you want to reproduce the problem on your end. $ gold -V GNU gold (GNU Binutils for Debian 2.29) 1.14 $ make distclean .... $ LDFLAGS="-fuse-ld=gold" make -j8 Q= .... [LD] xfs_spaceman /bin/bash ../libtool --quiet --tag=CC --mode=link gcc -o xfs_spaceman -fuse-ld=gold -fuse-ld=gold -fuse-ld=gold -fuse-ld=gold -static init.o file.o prealloc.o trim.o freesp.o ../libxcmd/libxcmd.la ..... $ ldd spaceman/xfs_spaceman linux-vdso.so.1 (0x00007ffc943e4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2def2e2000) /lib64/ld-linux-x86-64.so.2 (0x00007f2def681000) TOT builds just fine here on debian unstable using the gold linker, and again this shows that spaceman does not link against libuuid. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html