On Fri, Apr 29, 2016 at 3:31 PM, Rob Syme <rob.syme@xxxxxxxxx> wrote: > Hi all > > When compiling Gluster, make fails with: > ... > Making all in src > CC glusterfsd-mgmt.o > CC glusterfsd.o > CCLD glusterfsd > /foo/bar/lib/libfl.so: undefined reference to `yylex' > collect2: error: ld returned 1 exit status > Makefile:509: recipe for target 'glusterfsd' failed > make[3]: *** [glusterfsd] Error 1 > Makefile:456: recipe for target 'all-recursive' failed > make[2]: *** [all-recursive] Error 1 > Makefile:588: recipe for target 'all-recursive' failed > make[1]: *** [all-recursive] Error 1 > Makefile:487: recipe for target 'all' failed > make: *** [all] Error 2 > > Even though the error is coming from flex, It seems that gluster should > supply the yylex function by auto-generated code that is the result of > calling lex on a '.l' file > (https://www.mail-archive.com/tools-linking@xxxxxxxxxxxxxxxxxxxx/msg00601.html) > > I'm using: flex v2.6.0, bison v3.0.4, pkg-config v0.29, liburcu v0.9.2, > python v2.7.0, gcc v4.9.3 on linux (full dependency graph here: > http://i.imgur.com/xdn8trW.png). Any pointers are appreciated. Newer versions of flex (I don't know from which version) ship a .so, which automake tries to link with whatever it is building by adding a '-lfl' linker flag. This causes the build failure. To avoid this, pass an empty 'LEXLIB=' option to the configure script, as in `./configure <other-options> LEXLIB=` This will allow the compilation and linking to happen properly. > > -r > > _______________________________________________ > Gluster-users mailing list > Gluster-users@xxxxxxxxxxx > http://www.gluster.org/mailman/listinfo/gluster-users _______________________________________________ Gluster-users mailing list Gluster-users@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-users