Re: Gluster 3.6.2 On Xeon Phi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tl;dr: Add a 'LEXLIB=' flag to your configure command, ie. `./configure .... LEXLIB=`

This is problem with flex-2.5.38 and above. From this version, flex generates a shared library in its default build (libfl.so). This shared object doesn't actually contain any exported symbols (AFAIK).

Automake/autoconf automatically add a LEXLIB flag to the linker options whenever flex is used. Before 2.5.38, this used to be an empty flag as there was no actual library that needed to be linked. But, for 2.5.38 and above automake sets the flag to '-lfl'. Now during linking, the linker searches this library for symbols (yyparse, yylex etc.), fails to find any, and fails the glusterfs build.

I suppose this problem can be fixed by fixing our build configuration. But till then, we can force 'LEXLIB' to be empty by passing and empty flag to configure.

I had this problem almost a year back IIRC, when Archlinux updated it's flex package to 2.5.38, and found the empty flag solution soon after. I added this to my build scripts and forgot about it. The Archlinux glusterfs package also uses the same method for its build. I didn't report it at the time because it only affected me.

~kaushal

On Thu, Jan 29, 2015 at 6:53 PM, Kaleb KEITHLEY <kkeithle@xxxxxxxxxx> wrote:
On 01/29/2015 07:43 AM, Rudra Siva wrote:
Hi,

Have been able to get Gluster running on Intel's MIC platform. The
only code change to Gluster source was an unresolved yylex (I am not
really sure why that was coming up - may be someone more familiar with
it's use in Gluster can answer).

At the step for compiling the binaries (glusterd, glusterfsd,
glusterfs, glfsheal)  build breaks with an unresolved yylex error.

Hi,

Maybe your version of bison doesn't support the -p option?

In libglusterfs the
   bison -y -p graphyy  ./graph.y

should have produced a y.tab.c file with

...
#define yylex           graphyylex
...
int graphyylex ();
...
      yychar = yylex ();
...

Which is what we get on Linux, MacOS, and *BSD.


For now have a routine yylex that simply calls graphyylex - I don't
know if this is even correct however mount functions.

That's a reasonable work-around/hack. At least your flex seems to support the -P option correctly.


GCC - 4.7 (it's an oddity, latest GCC is missing the Phi patches)

flex --version
flex 2.5.39

bison --version
bison (GNU Bison) 3.0

Those seem reasonable. Fedora21 has flex 2.5.37 and boson-3.0.2


I'm still working on testing the RDMA and Infiniband support and can
make notes, numbers available when that is complete.

That would be great. Thanks.

--

Kaleb



_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel

_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel

[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux