Hi Sasha, I agree option 2 is the way to go.
EZ > -----Original Message----- > From: Sasha Khapyorsky [mailto:[EMAIL PROTECTED] > Sent: Thursday, September 06, 2007 6:51 PM > To: Eitan Zahavi; Hal Rosenstock > Cc: [EMAIL PROTECTED] > Subject: Re: [opensm] bugs in build system > > On 09:37 Wed 05 Sep , Eitan Zahavi wrote: > > > > Patch tested. Works great. > > But actually it is not so correct. OpenSM (and other management > components) uses header files from local tree, but is linked > against installed libraries. Before this patch it was not > able to find header files locally (due to broken paths) and > used (by mistake) installed header files - at least it was > consistent. > > I think there are two possible solutions for this: > > 1. To use only installed header files and libraries 2. To use > header files and libraries from local tree and if it doesn't > exist fall back to installed ones. > > Personally I like (2) more - it is more complicated, but we > will be able to build and run OpenSM without any libumad, > libibcommon installations. > > Any comments? > > Sasha > > > > > Thanks > > > > Eitan > > > > > -----Original Message----- > > > From: Sasha Khapyorsky [mailto:[EMAIL PROTECTED] > > > Sent: Tuesday, September 04, 2007 11:36 PM > > > To: Eitan Zahavi > > > Cc: [EMAIL PROTECTED] > > > Subject: Re: [opensm] bugs in build system > > > > > > Hi again, Eitan, > > > > > > On 17:02 Sun 02 Sep , Eitan Zahavi wrote: > > > > Hi Sasha, > > > > > > > > For some reason OpenSM (and the required management libs) > > > do not build > > > > correctly when I use manual autogen.sh, configure > > > --prefix=/tmp/ez/usr > > > > ; make; make install mode. > > > > > > > > It seems the build system is probably broken as it > relies on fixed > > > > paths? > > > > > > It is not, but it relies to invalid paths like > > > -I.../include/infiniband when in the code '#include > > > <infiniband/file.h>' is used. > > > > > > > OK 3. cd management/libibumad; autogen.sh; FAIL 4. ./configure > > > > --prefix=/tmp/ez/usr checking for sys_read_string in > > > -libcommon... no > > > > configure: error: sys_read_string() not found. > libibumad requires > > > > libibcommon. > > > > > > > > To overcome this I manually added the --disable-libcheck > > > ./configure > > > > --prefix=/tmp/ez/usr --disable-libcheck I do not understand > > > why after > > > > installing the common lib I still get this error? > > > > Isn't the search path should include the <prefix>/lib ??? > > > > > > Seems it is AC_CHECK_LIB() feature (ugh - I hate > autotools mess :)) > > > > > > I'm not really sure such checks should be there. > libibcommon library > > > is part of our project and not "external" library. > > > > > > > FAIL 5. make > > > > Make fails as it does not find the infiniband/common.h > > > > > > Wrong include path in Makefile.am - it uses include/infiniband. > > > > > > > To overcome this I manually added -I<prefix>/include .... > > > > make CFLAGS="-I/tmp/ez/usr/include" > > > > > > > > OK 6. make install > > > > --------------- OPENSM ------------------ OK 7. cd > > > management/opensm; > > > > autogen.sh; FAIL 8. configure --prefix=/tmp/ez/usr checking for > > > > umad_init in -libumad... no > > > > configure: error: umad_init() not found. libosmvendor of > > > type openib > > > > requires libibumad. > > > > configure: error: /bin/sh './configure' failed for libvendor > > > > > > > > To overcome this I manually added the --disable-libcheck > > > ./configure > > > > --prefix=/tmp/ez/usr --disable-libcheck This problem is same as > > > > the > > > > above: lib path for linking should use the <prefix>/lib. > > > > > > > > FAIL 9. make > > > > Here again the include path is missing the <prefix>/include: > > > > > > > > ./../include/vendor/osm_vendor_ibumad.h:44:31: > > > infiniband/common.h: No > > > > such file or directory > > > > ./../include/vendor/osm_vendor_ibumad.h:45:29: > > > infiniband/umad.h: No > > > > such file or directory > > > > > > Wrong OSMV_INCLUDES definition (it uses paths > include/infiniband ). > > > > > > > To overcome this I manually added -I<prefix>/include .... > > > > make CFLAGS="-I/tmp/ez/usr/include" > > > > > > > > But this is not enough as the linker fail: > > > > /usr/bin/ld: cannot find -libumad > > > > > > It seems to be buggy opensm_LDADD in Makefile.am > > > > > > > To overcome this I had to add -L<prefix>/lib .... > > > > make CFLAGS="-I/tmp/ez/usr/include" LDFLAGS="-L/tmp/ez/usr/lib > > > > -libumad -libcommon" > > > > > > > > OK 10. make install > > > > > > > > I hope the above issues could be fixed such that the > installation > > > > would be simpler. > > > > > > Could you test the patch please (you still need to use > > > '--disable-libcheck' with ./configure)? Thanks. > > > > > > Sasha > > > > > > > > > diff --git a/libibumad/Makefile.am b/libibumad/Makefile.am index > > > 48868e7..7e82590 100644 > > > --- a/libibumad/Makefile.am > > > +++ b/libibumad/Makefile.am > > > @@ -2,7 +2,7 @@ > > > SUBDIRS = . > > > > > > INCLUDES = -I$(srcdir)/include/infiniband \ > > > - -I$(srcdir)/../libibcommon/include/infiniband > > > + -I$(srcdir)/../libibcommon/include > > > > > > man_MANS = man/umad_debug.3 man/umad_get_ca.3 \ > > > man/umad_get_ca_portguids.3 man/umad_get_cas_names.3 \ diff > > > --git a/opensm/config/osmvsel.m4 > > > b/opensm/config/osmvsel.m4 index 47ad36f..97d5a9e 100644 > > > --- a/opensm/config/osmvsel.m4 > > > +++ b/opensm/config/osmvsel.m4 > > > @@ -61,11 +61,11 @@ with_sim="/usr") dnl based on the > with_osmv we > > > can try the vendor flag if test $with_osmv = "openib"; then > > > OSMV_CFLAGS="-DOSM_VENDOR_INTF_OPENIB" > > > - OSMV_INCLUDES="-I\$(srcdir)/../include > > > -I\$(srcdir)/../../libibcommon/include/infiniband > > > -I\$(srcdir)/../../libibumad/include/infiniband" > > > - if test "x$with_umad_libs" = "x"; then > > > - OSMV_LDADD="-libumad" > > > - else > > > - OSMV_LDADD="-L$with_umad_libs -libumad" > > > + OSMV_INCLUDES="-I\$(srcdir)/../include > > > -I\$(srcdir)/../../libibcommon/include > > > -I\$(srcdir)/../../libibumad/include" > > > + OSMV_LDADD="-L\$(libdir) -libumad -libcommon" > > > + > > > + if test "x$with_umad_libs" != "x"; then > > > + OSMV_LDADD="-L$with_umad_libs $OSMV_LDADD" > > > fi > > > > > > if test "x$with_umad_includes" != "x"; then > > > > _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
