[Bugs] [Bug 1662178] New: Compilation fails for xlators/mgmt/glusterd/src with error "undefined reference to `dlclose'"

bugzilla at redhat.com bugzilla at redhat.com
Wed Dec 26 19:13:35 UTC 2018


https://bugzilla.redhat.com/show_bug.cgi?id=1662178

            Bug ID: 1662178
           Summary: Compilation fails for xlators/mgmt/glusterd/src with
                    error "undefined reference to `dlclose'"
           Product: GlusterFS
           Version: 5
                OS: Linux
            Status: NEW
         Component: glusterd
          Severity: high
          Assignee: bugs at gluster.org
          Reporter: vnosov at stonefly.com
                CC: bugs at gluster.org
  Target Milestone: ---
    Classification: Community



Description of problem:

During GlusterFS 5.2 installation command "make" fails to find reference to
"dlclose". Result is failure to install.

Version-Release number of selected component (if applicable):

File "glusterfs-5.2.tar.gz" was used for installation on Centos 6 virtual
system that runs kernel version 2.6.32-696 on Azure. 

How reproducible: any time


Steps to Reproduce:
1.  Run ./autogen.sh.

2.  Run ./configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu
--program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin
--sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share
--includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec
--localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man
--infodir=/usr/share/info --without-tmpfilesdir --disable-syslog --enable-gnfs

GlusterFS configure summary
===========================
FUSE client          : yes
Infiniband verbs     : yes
epoll IO multiplex   : yes
fusermount           : yes
readline             : yes
georeplication       : yes
Linux-AIO            : yes
Enable Debug         : no
Enable ASAN          : no
Block Device xlator  : yes
glupy                : yes
Use syslog           : no
XML output           : yes
Encryption xlator    : yes
Unit Tests           : no
Track priv ports     : yes
POSIX ACLs           : yes
Data Classification  : yes
SELinux features     : yes
firewalld-config     : no
Events               : yes
EC dynamic support   : x64 sse avx
Use memory pools     : yes
Nanosecond m/atimes  : yes
Server components    : yes
Legacy gNFS server   : yes
IPV6 default         : no
Use TIRPC            : missing
With Python          : 2.6
Cloudsync            : yes

3. Failure could be reproduced by doing the next:

Go to the directory:

[root at VN-SC-2 src]# pwd
./xlators/mgmt/glusterd/src

Run:

[root at VN-SC-2 src]# make clean
test -z "" || rm -f
rm -rf .libs _libs
test -z "glusterd.la" || rm -f glusterd.la
rm -f "./so_locations"
rm -f *.o
rm -f *.lo

Run "make":

Actual results:

[root at VN-SC-2 src]# make
  CC     glusterd_la-glusterd.lo
  CC     glusterd_la-glusterd-handler.lo
  CC     glusterd_la-glusterd-sm.lo
  CC     glusterd_la-glusterd-op-sm.lo
  CC     glusterd_la-glusterd-utils.lo
  CC     glusterd_la-glusterd-rpc-ops.lo
  CC     glusterd_la-glusterd-store.lo
  CC     glusterd_la-glusterd-handshake.lo
  CC     glusterd_la-glusterd-pmap.lo
  CC     glusterd_la-glusterd-volgen.lo
  CC     glusterd_la-glusterd-rebalance.lo
  CC     glusterd_la-glusterd-quota.lo
  CC     glusterd_la-glusterd-bitrot.lo
  CC     glusterd_la-glusterd-geo-rep.lo
  CC     glusterd_la-glusterd-replace-brick.lo
  CC     glusterd_la-glusterd-log-ops.lo
  CC     glusterd_la-glusterd-tier.lo
  CC     glusterd_la-glusterd-volume-ops.lo
  CC     glusterd_la-glusterd-brick-ops.lo
  CC     glusterd_la-glusterd-mountbroker.lo
  CC     glusterd_la-glusterd-syncop.lo
  CC     glusterd_la-glusterd-hooks.lo
  CC     glusterd_la-glusterd-volume-set.lo
  CC     glusterd_la-glusterd-locks.lo
  CC     glusterd_la-glusterd-snapshot.lo
  CC     glusterd_la-glusterd-mgmt-handler.lo
  CC     glusterd_la-glusterd-mgmt.lo
  CC     glusterd_la-glusterd-peer-utils.lo
  CC     glusterd_la-glusterd-statedump.lo
  CC     glusterd_la-glusterd-snapshot-utils.lo
  CC     glusterd_la-glusterd-conn-mgmt.lo
  CC     glusterd_la-glusterd-proc-mgmt.lo
  CC     glusterd_la-glusterd-svc-mgmt.lo
  CC     glusterd_la-glusterd-shd-svc.lo
  CC     glusterd_la-glusterd-nfs-svc.lo
  CC     glusterd_la-glusterd-quotad-svc.lo
  CC     glusterd_la-glusterd-svc-helper.lo
  CC     glusterd_la-glusterd-conn-helper.lo
  CC     glusterd_la-glusterd-snapd-svc.lo
  CC     glusterd_la-glusterd-snapd-svc-helper.lo
  CC     glusterd_la-glusterd-bitd-svc.lo
  CC     glusterd_la-glusterd-scrub-svc.lo
  CC     glusterd_la-glusterd-server-quorum.lo
  CC     glusterd_la-glusterd-reset-brick.lo
  CC     glusterd_la-glusterd-tierd-svc.lo
  CC     glusterd_la-glusterd-tierd-svc-helper.lo
  CC     glusterd_la-glusterd-gfproxyd-svc.lo
  CC     glusterd_la-glusterd-gfproxyd-svc-helper.lo
  CCLD   glusterd.la
.libs/glusterd_la-glusterd-utils.o: In function `glusterd_get_volopt_content':
/home/col/glusterfs-5.2/xlators/mgmt/glusterd/src/glusterd-utils.c:13417:
undefined reference to `dlclose'
.libs/glusterd_la-glusterd-utils.o: In function
`glusterd_get_value_for_vme_entry':
/home/col/glusterfs-5.2/xlators/mgmt/glusterd/src/glusterd-utils.c:12984:
undefined reference to `dlclose'
.libs/glusterd_la-glusterd-volgen.o: In function `_gd_get_option_type':
/home/col/glusterfs-5.2/xlators/mgmt/glusterd/src/glusterd-volgen.c:7009:
undefined reference to `dlclose'
.libs/glusterd_la-glusterd-quota.o: In function
`_glusterd_validate_quota_opts':
/home/col/glusterfs-5.2/xlators/mgmt/glusterd/src/glusterd-quota.c:1943:
undefined reference to `dlclose'
collect2: ld returned 1 exit status
make: *** [glusterd.la] Error 1


Expected results:  should be no failures.


Additional info:

It seems linker flag "-ldl" is not used by make. We put flag "-ldl" into
command that is called by "make" and result was success:

[root at VN-SC-2 src]# /bin/sh ../../../../libtool --silent --tag=CC   --mode=link
gcc -Wall -g -O2 -g -rdynamic -Wformat -Werror=format-security
-Werror=implicit-function-declaration -I/usr/include/libxml2   -g -O2 -g
-rdynamic -Wformat -Werror=format-security
-Werror=implicit-function-declaration -module -avoid-version -export-symbols
../../../../xlators/xlator.sym -luuid   -Wl,--no-undefined  -o glusterd.la
-rpath /usr/lib64/glusterfs/5.2/xlator/mgmt glusterd_la-glusterd.lo
glusterd_la-glusterd-handler.lo glusterd_la-glusterd-sm.lo
glusterd_la-glusterd-op-sm.lo glusterd_la-glusterd-utils.lo
glusterd_la-glusterd-rpc-ops.lo glusterd_la-glusterd-store.lo
glusterd_la-glusterd-handshake.lo glusterd_la-glusterd-pmap.lo
glusterd_la-glusterd-volgen.lo glusterd_la-glusterd-rebalance.lo
glusterd_la-glusterd-quota.lo glusterd_la-glusterd-bitrot.lo
glusterd_la-glusterd-geo-rep.lo glusterd_la-glusterd-replace-brick.lo
glusterd_la-glusterd-log-ops.lo glusterd_la-glusterd-tier.lo
glusterd_la-glusterd-volume-ops.lo glusterd_la-glusterd-brick-ops.lo
glusterd_la-glusterd-mountbroker.lo glusterd_la-glusterd-syncop.lo
glusterd_la-glusterd-hooks.lo glusterd_la-glusterd-volume-set.lo
glusterd_la-glusterd-locks.lo glusterd_la-glusterd-snapshot.lo
glusterd_la-glusterd-mgmt-handler.lo glusterd_la-glusterd-mgmt.lo
glusterd_la-glusterd-peer-utils.lo glusterd_la-glusterd-statedump.lo
glusterd_la-glusterd-snapshot-utils.lo glusterd_la-glusterd-conn-mgmt.lo
glusterd_la-glusterd-proc-mgmt.lo glusterd_la-glusterd-svc-mgmt.lo
glusterd_la-glusterd-shd-svc.lo glusterd_la-glusterd-nfs-svc.lo
glusterd_la-glusterd-quotad-svc.lo glusterd_la-glusterd-svc-helper.lo
glusterd_la-glusterd-conn-helper.lo glusterd_la-glusterd-snapd-svc.lo
glusterd_la-glusterd-snapd-svc-helper.lo glusterd_la-glusterd-bitd-svc.lo
glusterd_la-glusterd-scrub-svc.lo glusterd_la-glusterd-server-quorum.lo
glusterd_la-glusterd-reset-brick.lo glusterd_la-glusterd-tierd-svc.lo
glusterd_la-glusterd-tierd-svc-helper.lo glusterd_la-glusterd-gfproxyd-svc.lo
glusterd_la-glusterd-gfproxyd-svc-helper.lo
../../../../libglusterfs/src/libglusterfs.la
../../../../rpc/xdr/src/libgfxdr.la ../../../../rpc/rpc-lib/src/libgfrpc.la
-lxml2   -lcrypto -lurcu-bp   -lurcu-cds -llvm2app -lrt -lpthread -lcrypto -ldl


[root at VN-SC-2 src]# make
make: Nothing to be done for `all'.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list