From bug 1330604 > Note 2. Why is/was libgfxdr.so (.../rpc/xdr/src/...) linked with > libglusterfs? A cut-and-paste mistake? It has no references to > symbols in libglusterfs. You was wrong with it. There are GF_FREE calls (__gf_free function from libglusterfs really).. So I get /usr/lib64/libgfxdr.so.0.0.1: undefined symbol: __gf_free after build. If it is true that libgfxdr does not use libglusterfs, why it use its headers?
Related mail discussion: http://lists.gluster.org/pipermail/gluster-devel/2016-September/050911.html
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#2) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#3) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#4) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#5) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#6) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#7) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#8) for review on master by Kaleb KEITHLEY (kkeithle)
REVIEW: https://review.gluster.org/16873 (build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs) posted (#9) for review on master by Kaleb KEITHLEY (kkeithle)
COMMIT: https://review.gluster.org/16873 committed in master by Niels de Vos (ndevos) ------ commit f21fd308fcfab6151e7c8f60642d8dfcbec0cc48 Author: Kaleb S. KEITHLEY <kkeithle> Date: Wed Mar 8 14:44:50 2017 -0500 build: libgfxdr.so calls GF_FREE(), needs to link with -lglusterfs The previous change to remove the xdrgen script exposed (or created) a recursive build dependency: libglusterfs needs the generated headers, and libgfxdr should be linked with libglusterfs for GF_FREE/__gf_free. (Much grumbling about libglusterfs being the kitchen sink of gluster elided. This would not be necessary if there were two or more libs, a gluster "runtime" library with common gluster code shared by the xlators and daemons, and a utility library with things like the rbtree, memory allocation, and whatnot.) So. Link at build time or link at runtime? For truth-and-beauty, link with libglusterfs.so at build time. Without truth-and-beauty, don't link with libglusterfs and rely on the other things that link with libglusterfs to provide resolution of __gf_free(). Truth-and-beauty it is. But how to generate the headers first, then build libglusterfs, then come back and build libgfxdr? Autotools is a maze of twisty passages, all different. Things that work with gnu make on linux don't work with the BSD make. Finally I hit on this solution. Add a shadow directory where make only generates the headers, then build libglusterfs using the generated headers, and finally build libgfxdr and link with libglusterfs. See original BZ 1330604 change http://review.gluster.org/14085 Change-Id: Iede8a30e3103176cb8f0b054885f30fcb352492b BUG: 1429696 Signed-off-by: Kaleb S. KEITHLEY <kkeithle> Reviewed-on: https://review.gluster.org/16873 NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Smoke: Gluster Build System <jenkins.org> Reviewed-by: Niels de Vos <ndevos>
REVIEW: https://review.gluster.org/16941 (build: errors generating xdr stubs+headers with `make -j`) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle)
COMMIT: https://review.gluster.org/16941 committed in master by Niels de Vos (ndevos) ------ commit b96da537f60d75f896973c9f61007baec42fcf17 Author: Kaleb S. KEITHLEY <kkeithle> Date: Fri Mar 24 08:32:39 2017 -0400 build: errors generating xdr stubs+headers with `make -j` Using a makebomb, on f23 at least, blows up when generating the xdr headers and stubs. (Works reliably on f25 though, go figure.) This change appears to mitigate the race on f23. Change-Id: I006066f0e7c3f8b65189f97c70089f3422e3e08b BUG: 1429696 Signed-off-by: Kaleb S. KEITHLEY <kkeithle> Reviewed-on: https://review.gluster.org/16941 Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Niels de Vos <ndevos> Tested-by: Anoop C S <anoopcs>
REVIEW: https://review.gluster.org/16954 (build: errors generating xdr stubs+headers with `make -j`) posted (#1) for review on master by Kaleb KEITHLEY (kkeithle)
COMMIT: https://review.gluster.org/16954 committed in master by Kaleb KEITHLEY (kkeithle) ------ commit 57341d25db8b16e8a1fc7d40f6f56b5200f3547d Author: Kaleb S. KEITHLEY <kkeithle> Date: Mon Mar 27 08:35:51 2017 -0400 build: errors generating xdr stubs+headers with `make -j` Using a makebomb, on f23 at least, blows up when generating the xdr headers and stubs. (Works reliably on f25 though, go figure.) This change appears to mitigate the race on f23. BUG: 1429696 Change-Id: Icca2de035255a7759563bf06d853950dddc5724d Signed-off-by: Kaleb S. KEITHLEY <kkeithle> Reviewed-on: https://review.gluster.org/16954 Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Niels de Vos <ndevos>
REVIEW: https://review.gluster.org/16969 (build: add copied .x files to .gitignore) posted (#1) for review on master by Niels de Vos (ndevos)
COMMIT: https://review.gluster.org/16969 committed in master by Niels de Vos (ndevos) ------ commit ed89f3ef064b6100bb0731f2493d915f6fb141c3 Author: Niels de Vos <ndevos> Date: Thu Mar 30 11:45:43 2017 +0200 build: add copied .x files to .gitignore The new rpc/xdr/gen/ directiry contains copies of the .x files from rpc/xdr/src/. This is needed to generate the headers for the cyclic dependency for libglusterfs <-> rpc. These files should never be included in the git repository, so adding them to .gitignore. BUG: 1429696 Change-Id: Ia9dd104853e2dbde49b368169dc15c465dff0323 Signed-off-by: Niels de Vos <ndevos> Reviewed-on: https://review.gluster.org/16969 Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Kaleb KEITHLEY <kkeithle>
Unfortunately this needs and other follow-up.
REVIEW: https://review.gluster.org/16994 (build: place generated XDR .h and .c files under $(top_builddir)) posted (#1) for review on master by Niels de Vos (ndevos)
REVIEW: https://review.gluster.org/16994 (build: place generated XDR .h and .c files under $(top_builddir)) posted (#2) for review on master by Niels de Vos (ndevos)
COMMIT: https://review.gluster.org/16994 committed in master by Kaleb KEITHLEY (kkeithle) ------ commit 7a49a4a6e3e2224afea7a961fbee9a460b9d58a0 Author: Niels de Vos <ndevos> Date: Tue Apr 4 12:55:27 2017 +0200 build: place generated XDR .h and .c files under $(top_builddir) Change-Id: I0487337223a54a52e73088cb6dd812ce6d47178d BUG: 1429696 Signed-off-by: Niels de Vos <ndevos> Reviewed-on: https://review.gluster.org/16994 Smoke: Gluster Build System <jenkins.org> NetBSD-regression: NetBSD Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> Reviewed-by: Zhou Zhengping <johnzzpcrystal> Tested-by: Zhou Zhengping <johnzzpcrystal> Reviewed-by: Kaleb KEITHLEY <kkeithle>
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.11.0, please open a new bug report. glusterfs-3.11.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://lists.gluster.org/pipermail/announce/2017-May/000073.html [2] https://www.gluster.org/pipermail/gluster-users/