Autor Thema: Problem beim Myricom mx-2g Treiber kompilieren/installieren....  (Gelesen 8450 mal)

Offline Octane_Suicide

  • Sobl Newbie
  • *
  • Beiträge: 42
Hallo Freunde der Sonne,

Hab wieder mal ein wenig Zeit gefunden um mich mit meinen Maschinen zu beschaeftigen und hab natuerlich gleich mal wieder etwas angefasst was nicht funktioniert ::) . Ich hab mir vor laengerer Zeit ein paar Myrinet-Karten bei eBucht geholt und jetzt wollte ich die benoetigten Treiber kompilieren bzw. installieren, aber das "make" nach dem "configure" scheitert an einem "unexpected end of line seen".

Folgende Konfiguration liegt vor:

  • Sun Fire V20z (2x2,4GHz, 1GB RAM, 2x146GB HDD)
  • LSI7004G2 HBA (4x2Gbit/s, PCI-X)
  • Myricom M3F-PCIXD-2 (2Gbit/s, PCI-X)
  • Solaris 10 Generic_141415-09 i86pc installiert
  • SunStudio 12 Update 1 installiert
  • Alle verfuegbaren Patches installiert (Updatemanager)

Vorgehensweise:


checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gcc... no
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
cc: Sun C 5.10 SunOS_i386 2009/06/03
usage: cc [ options] files.  Use 'cc -flags' for details
checking how to run the C preprocessor... cc -E
checking for ranlib... no
checking for ar... no
checking if thread safety is enabled... yes
checking for OS specific settings...
checking if debugging is enabled... no
checking if logging is enabled... no
checking if Lanai is emulated... no
checking if MX programs will be statically linked... no
checking if optimization is enabled... yes
checking if development code is enabled... no
checking if we need to build the mcp... no
checking if we want to enable rdma window... yes
checking if kernel library is enabled... no
checking if Ethernet mode is enabled... no
checking wordsize... 32
checking for CPU specific settings... x86_64
configure: creating ./config.status
config.status: creating Makefile
config.status: creating common.mk
config.status: creating dependencies.mk
config.status: creating libmyriexpress/userspace/Makefile
config.status: creating libmyriexpresstcp/Makefile
config.status: creating driver/solaris/Makefile
config.status: creating tools/Makefile
config.status: creating tools/Makefile.mapper-tools
config.status: creating tools/fma_start
config.status: creating tools/mapper_start
config.status: creating tools/mxoed_start
config.status: creating tools/mapper/Makefile
config.status: creating tests/Makefile
config.status: creating spmd/Makefile
config.status: creating spmd_apps/Makefile
config.status: creating driver/solaris/mx_local_install
config.status: creating driver/solaris/mx_start_stop
config.status: creating doc/Makefile
config.status: creating doc/doxygen.conf
config.status: creating common/mx_version.h
config.status: creating mx2g.spec
config.status: creating regression/Makefile
config.status: creating regression/internal/Makefile
config.status: creating regression/external/Makefile
config.status: creating common/mx_auto_config.h
config.status: common/mx_auto_config.h is unchanged
=== configuring in fma (/var/tmp/mx-1.2.9/fma)
configure: running /bin/bash ./configure '--prefix=/opt/mx'  --cache-file=/dev/null --srcdir=.
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gcc... no
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
cc: Sun C 5.10 SunOS_i386 2009/06/03
usage: cc [ options] files.  Use 'cc -flags' for details
checking for a BSD-compatible install... ./install-sh -c
checking whether make sets $(MAKE)... no
checking for ranlib... no
checking how to run the C preprocessor... cc -E
checking for ar... no
checking whether ERESTART is declared... no
configure: creating ./config.status
config.status: creating fms.spec
config.status: creating Makefile
config.status: creating common.mk
config.status: creating dependencies.mk
config.status: creating libdb/Makefile
config.status: creating libfma/Makefile
config.status: creating libmyri/gm/make.myri
config.status: creating libmyri/gm/Makefile
config.status: creating libmyri/lxgdb/make.myri
config.status: creating libmyri/lxgdb/Makefile
config.status: creating libmyri/bogus/Makefile
config.status: creating libmyri/bogus/make.myri
config.status: creating fms/Makefile
config.status: creating tools/legacy/fm_init_db/Makefile
config.status: creating tools/legacy/Makefile
config.status: creating libmyri/mx/make.myri
config.status: creating libmyri/mx/Makefile
config.status: creating libmyri/sim/Makefile
config.status: creating libmyri/sim/make.myri
config.status: creating cgi/Makefile
config.status: creating fma/Makefile
config.status: creating tools/Makefile
config.status: creating libfma/config.h
config.status: creating scripts/make_src_tar
config.status: creating tools/fm_help_pkg

Soweit so gut, ich seh hier keinen Fehler...

  • /usr/ccs/bin/make

make: Fatal error in reader: Makefile, line 16: Unexpected end of line seen

Und hier ist dann Ende im Gelaende....hmm..... :-[

Hier noch das Makefile (Makefile, es gibt auch noch ein Makefile.in):

SHELL = /bin/sh

bindir = ${exec_prefix}/bin
exec_prefix = ${prefix}
includedir = ${prefix}/include
libdir = ${exec_prefix}/lib
top_srcdir = .
prefix = /opt/mx
sbindir = ${exec_prefix}/sbin
srcdir = .
sysconfdir = ${prefix}/etc


FMS_SERVER=
MX_TOP_SRCDIR:=$(shell cd $(top_srcdir) && pwd)
#M_MAKE_BSD#MX_TOP_SRCDIR!=cd $(top_srcdir) && pwd
LIB32_NAME=lib
LIB64_NAME=lib/amd64

# Customized library locations

libparent = $(shell echo $(libdir) | sed -e 's@/[^/]*$$@@')
#M_MAKE_BSD#libparent != echo $(libdir) | sed -e 's@/[^/]*$$@@'
lib32dir = $(libparent)/$(LIB32_NAME)
lib64dir = $(libparent)/$(LIB64_NAME)

.SUFFIXES:
.SUFFIXES: .c .o .lo

include common.mk

all: $(lib32) $(lib64) $(mcp) $(prebuilt_mcp) $(fmsdir) lib32 lib64  prebuilt_mcp fma driver tools mapper-tools mapper tests

.PHONY: prebuild
prebuild: 
mkdir -p $(srcdir)/driver/common/std
if test -n "yes" ; then \
cp mcp/mx_mcp_array_2g.c $(srcdir)/driver/common/std/mx_mcp_array_2g_prebuilt.c ; \
fi
if test -n "" ; then \
cp mcp_10g/mx_mcp_array_10g.c $(srcdir)/driver/common/std/mx_mcp_array_10g_prebuilt.c ; \
fi

.PHONY: lib
lib: lib32

.PHONY: lib32
lib32:
true
$(MAKE) -C $(MX_LIB32) "CC=$(CC) $(CFLAGS32)"
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) "CC=$(CC) $(CFLAGS32)" ; \
fi

.PHONY: lib64
lib64:
true
$(MAKE) -C $(MX_LIB64) "CC=$(CC) $(CFLAGS64)"
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) "CC=$(CC) $(CFLAGS64)" ; \
fi

.PHONY: libmyriexpresstcp
libmyriexpresstcp:
true
$(MAKE) -C libmyriexpresstcp

.PHONY: tools
tools: lib$(MX_WORDSIZE)
$(MAKE) -C tools "CC=$(CC) $(CFLAGS32)"

.PHONY: mapper-tools
mapper-tools: lib$(MX_WORDSIZE)
$(MAKE) -C tools "CC=$(CC) $(CFLAGS32)" -f Makefile.mapper-tools

.PHONY: mapper
mapper: lib$(MX_WORDSIZE)
$(MAKE) -C tools/mapper "CC=$(CC) $(CFLAGS32)"

.PHONY: tests
tests: lib$(MX_WORDSIZE)
$(MAKE) -C tests "CC=$(CC) $(CFLAGS32)"

.PHONY: fma
fma: lib$(MX_WORDSIZE)
$(MAKE) -C fma "CC=$(CC) $(CFLAGS32)" MYRI_INC="-I/var/tmp/mx-1.2.9/common -I$(MX_TOP_SRCDIR)/common" MYRI_LIB=/var/tmp/mx-1.2.9/libmyriexpress/user$(MX_WORDSIZE)

.PHONY: spmd
spmd:
$(MAKE) -C spmd "CC=$(CC) $(CFLAGS32)"

.PHONY: spmd_apps
spmd_apps:
$(MAKE) -C spmd_apps "CC=$(CC) $(CFLAGS32)"


.PHONY: mcp
mcp: $(MCP_LIST:%=mcp_%)

.PHONY: mcp_2g
mcp_2g:
cd mcp && $(MAKE)

.PHONY: mcp_10g
mcp_10g:
cd mcp_10g && $(MAKE)

mcp/mx_mcp_array_2g.c: $(srcdir)/driver/common/std/mx_mcp_array_2g_prebuilt.c Makefile
cp $(srcdir)/driver/common/std/mx_mcp_array_2g_prebuilt.c $@
mcp_10g/mx_mcp_array_10g.c: $(srcdir)/driver/common/std/mx_mcp_array_10g_prebuilt.c Makefile
cp $(srcdir)/driver/common/std/mx_mcp_array_10g_prebuilt.c $@

.PHONY: prebuilt_mcp_10g prebuilt_mcp_2g prebuilt_mcp
prebuilt_mcp: $(MCP_LIST:%=prebuilt_mcp_%)

prebuilt_mcp_2g: mcp/mx_mcp_array_2g.c

prebuilt_mcp_10g: mcp_10g/mx_mcp_array_10g.c


.PHONY: driver
driver:  prebuilt_mcp
$(MAKE) -C $(driverdir)

.PHONY: doc
doc:
$(MAKE) -C doc

.PHONY: clean lib_clean libtcp_clean mcp_clean driver_clean doc_clean \
tools_clean tests_clean mapper_clean spmd_clean spmd_apps_clean \
fms_clean
clean: lib_clean libtcp_clean mcp_clean driver_clean doc_clean tools_clean \
tests_clean mapper_clean spmd_clean spmd_apps_clean fms_clean

fms_clean:
if test -n "fma" ; then \
$(MAKE) -C fma clean; \
fi

lib_clean:
if test -n "lib32" ; then \
$(MAKE) -C $(MX_LIB32) clean "CC=$(CC) $(CFLAGS32)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) clean "CC=$(CC) $(CFLAGS32)"; \
fi \
fi
if test -n "lib64" ; then \
$(MAKE) -C $(MX_LIB64) clean "CC=$(CC) $(CFLAGS64)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) clean "CC=$(CC) $(CFLAGS64)"; \
fi \
fi

libtcp_clean:
$(MAKE) -C libmyriexpresstcp clean

mcp_clean:
if test -n "" -a -n "yes"  ; then \
$(MAKE) -C mcp clean; \
fi
if test -n "" -a -n "" ; then \
$(MAKE) -C mcp_10g clean; \
fi

driver_clean:
$(MAKE) -C $(driverdir) clean
rm -f mcp/mx_mcp_array_2g.c mcp/mx_mcp_array.c
if test -n "" ; then \
rm -f $(srcdir)/driver/common/mx_mcp_array_prebuilt.c;\
rm -f $(srcdir)/driver/common/mx_mcp_array.c;\
rm -f $(srcdir)/mcp/mx_mcp_array.c;\
rm -f $(srcdir)/driver/common/mx_mcp_array_prebuilt_2g.c;\
rm -f $(srcdir)/driver/common/mx_mcp_array_2g.c;\
rm -f $(srcdir)/mcp/mx_mcp_array_2g.c;\
rm -f $(srcdir)/driver/common/mx_mcp_array_prebuilt_10g.c;\
rm -f $(srcdir)/driver/common/mx_mcp_array_10g.c;\
rm -f $(srcdir)/mcp/mx_mcp_array_10g.c;\
fi

doc_clean:
$(MAKE) -C doc clean

tools_clean:
$(MAKE) -C tools clean

mapper_clean:
$(MAKE) -C tools/mapper clean

tests_clean:
$(MAKE) -C tests clean

spmd_clean:
$(MAKE) -C spmd clean

spmd_apps_clean:
$(MAKE) -C spmd_apps clean

.PHONY: distclean lib_distclean libtcp_distclean mcp_distclean \
driver_distclean tools_distclean mappertools_distclean \
mapper_distclean tests_distclean \
        spmd_distclean spmd_apps_distclean

distclean: lib_distclean libtcp_distclean mcp_distclean driver_distclean \
tools_distclean mappertools_distclean mapper_distclean tests_distclean \
        spmd_distclean spmd_apps_distclean

lib_distclean:
if test -n "lib32" ; then \
$(MAKE) -C $(MX_LIB32) distclean "CC=$(CC) $(CFLAGS32)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) distclean "CC=$(CC) $(CFLAGS32)"; \
fi \
fi
if test -n "lib64" ; then \
$(MAKE) -C $(MX_LIB64) distclean "CC=$(CC) $(CFLAGS64)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) distclean "CC=$(CC) $(CFLAGS64)"; \
fi \
fi

libtcp_distclean:
$(MAKE) -C libmyriexpresstcp distclean

mcp_distclean:
if test -n "" -a -n "yes"  ; then \
$(MAKE) -C mcp distclean; \
fi
if test -n "" -a -n "" ; then \
$(MAKE) -C mcp_10g distclean; \
fi

driver_distclean:
$(MAKE) -C $(driverdir) distclean

tools_distclean:
$(MAKE) -C tools distclean

mappertools_distclean:
$(MAKE) -C tools -f Makefile.mapper-tools distclean

mapper_distclean:
$(MAKE) -C tools/mapper distclean

tests_distclean:
$(MAKE) -C tests distclean

spmd_distclean:
$(MAKE) -C spmd distclean

spmd_apps_distclean:
$(MAKE) -C spmd_apps distclean

.PHONY: depend lib_depend libtcp_depend mcp_depend driver_depend tools_depend tests_depend  mapper_depend
depend: lib_depend libtcp_depend mcp_depend driver_depend tools_depend tests_depend mapper_depend

lib_depend:
if test -n "lib32" ; then \
$(MAKE) -C $(MX_LIB32) depend "CC=$(CC) $(CFLAGS32)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) depend "CC=$(CC) $(CFLAGS32)"; \
fi \
fi
if test -n "lib64" ; then \
$(MAKE) -C $(MX_LIB64) depend "CC=$(CC) $(CFLAGS64)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) depend "CC=$(CC) $(CFLAGS64)"; \
fi \
fi

libtcp_depend:
$(MAKE) -C libmyriexpresstcp depend

mcp_depend:
if test -n "" -a -n "yes" ; then \
$(MAKE) -C mcp depend; \
fi
if test -n "" -a -n "" ; then \
$(MAKE) -C mcp_10g depend; \
fi

driver_depend:
$(MAKE) -C $(driverdir) depend

tools_depend:
$(MAKE) -C tools depend

mapper_depend:
$(MAKE) -C tools/mapper depend

tests_depend:
$(MAKE) -C tests depend

.PHONY: TAGS lib_TAGS libtcp_TAGS mcp_TAGS driver_TAGS tools_TAGS tests_TAGS
TAGS: lib_TAGS libtcp_TAGS mcp_TAGS driver_TAGS mapper_TAGS tools_TAGS tests_TAGS

lib_TAGS:
if test -n "lib32" ; then \
$(MAKE) -C $(MX_LIB32) TAGS "CC=$(CC) $(CFLAGS32)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) TAGS "CC=$(CC) $(CFLAGS32)"; \
fi \
fi
if test -n "lib64" ; then \
$(MAKE) -C $(MX_LIB64) TAGS "CC=$(CC) $(CFLAGS64)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) TAGS "CC=$(CC) $(CFLAGS64)"; \
fi \
fi

libtcp_TAGS:
$(MAKE) -C libmyriexpresstcp TAGS

mcp_TAGS:
if test -n "" -a -n "yes" ; then \
$(MAKE) -C mcp TAGS; \
fi
if test -n "" -a -n "" ; then \
$(MAKE) -C mcp_10g TAGS; \
fi

driver_TAGS:
$(MAKE) -C $(driverdir) TAGS

tools_TAGS:
$(MAKE) -C tools TAGS

mapper_TAGS:
$(MAKE) -C tools/mapper TAGS

tests_TAGS:
$(MAKE) -C tests TAGS

.PHONY: install install-only

install: all install-only

install-only:
@echo "Installing to $(DESTDIR)$(prefix)"
@if test ! -d $(DESTDIR)$(prefix); then \
echo "'$(DESTDIR)$(prefix) didn't exist, creating it" ; \
mkdir -p $(DESTDIR)$(prefix) ; \
fi
@if test ! -d $(DESTDIR)$(includedir); then \
echo "$(DESTDIR)$(includedir) didn't exist, creating it" ; \
mkdir -p $(DESTDIR)$(includedir) ; \
fi
@mkdir -p $(DESTDIR)$(includedir)/mx_internals
@if test ! -d $(DESTDIR)$(sysconfdir); then \
echo "$(DESTDIR)$(sysconfdir) didn't exist, creating it" ; \
mkdir -p $(DESTDIR)$(sysconfdir) ; \
fi
cp $(srcdir)/common/mx_autodetect.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/mx_constants.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/mx_int.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/myriexpress.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/mx_extensions.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/mx_raw.h $(DESTDIR)$(includedir)
cp $(srcdir)/common/mx_io.h $(DESTDIR)$(includedir)
if test "0" -eq 1 ; then \
cp ${srcdir}/common/mx_kernel_api.h $(DESTDIR)$(includedir) ; \
cp ${srcdir}/common/mx_pin.h $(DESTDIR)$(includedir) ; \
fi
cp $(srcdir)/libmyriexpress/mx__fops.h $(DESTDIR)$(includedir)/mx_internals/.
cp $(srcdir)/libmyriexpress/mx__driver_interface.h $(DESTDIR)$(includedir)/mx_internals/.

if test -n "lib32" ; then \
$(MAKE) -C $(MX_LIB32) install libdir=$(lib32dir) "CC=$(CC) $(CFLAGS32)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB32_DBG) install libdir=$(lib32dir)/debug "CC=$(CC) $(CFLAGS32)"; \
fi \
fi
if test -n "lib64" ; then \
$(MAKE) -C $(MX_LIB64) install libdir=$(lib64dir) "CC=$(CC) $(CFLAGS64)"; \
if test "0" = "0" ; then \
  $(MAKE) -C $(MX_LIB64_DBG) install libdir=$(lib64dir)/debug "CC=$(CC) $(CFLAGS64)"; \
fi \
fi
if test -n "fma" ; then \
$(MAKE) -C fma install "CC=$(CC)" MYRI_LIB=/var/tmp/mx-1.2.9/libmyriexpress/user$(MX_WORDSIZE) ; \
fi
@if test ! -L $(DESTDIR)$(libdir) -a  ! -d $(DESTDIR)$(libdir); then \
echo "Symlinking lib$(MX_WORDSIZE) as $(libdir)" ; \
ln -s lib$(MX_WORDSIZE) $(DESTDIR)$(libdir) ; \
fi
$(MAKE) -C $(driverdir) install-only
$(MAKE) -C tools/mapper install
$(MAKE) -C tools install
$(MAKE) -C tools -f Makefile.mapper-tools install bindir=$(bindir)/mapper-tools
$(MAKE) -C tests install bindir=$(bindir)/tests
@for s in tools/mx_start_mapper tools/mx_stop_mapper; do \
d=`basename $$s` ; \
sed -e 's|@mx_prefix@|$(prefix)|' \
    -e 's|@fms_server@|$(FMS_SERVER)|' $$s \
    > $(DESTDIR)$(sbindir)/$$d ; \
chmod +x $(DESTDIR)$(sbindir)/$$d ; \
done

RPM= mx2g-1.2.9-1..rpm

$(RPM) :
$(MAKE) rpm

rpm : all
rm -rf "`pwd`/rpm-buildroot"
$(MAKE) install DESTDIR="`pwd`/rpm-buildroot"
rpmbuild -bb mx2g.spec

deb : $(RPM)
fakeroot alien $(RPM)

.PHONY: zip
zip: all
rm -rf mx
rm -f mx.zip
mkdir -p mx
mkdir -p mx/bin
mkdir -p mx/bin/mapper-tools
mkdir -p mx/bin/tests
mkdir -p mx/etc
mkdir -p mx/include
mkdir -p mx/include/mx_internals
mkdir -p mx/lib
mkdir -p mx/sbin
cp $(driverdir)/mx.inf mx/mx.inf
cp $(driverdir)/mx_mapper.inf mx/mx_mapper.inf
if test -n "" ; then \
cp $(driverdir)/mxoed.inf mx/mxoed.inf ; \
fi
cp ${srcdir}/README mx/bin
$(MAKE) -C tools zip
$(MAKE) -C tools -f Makefile.mapper-tools zip
cp tests/*.exe mx/bin/tests
cp ${srcdir}/common/mx_autodetect.h mx/include
cp ${srcdir}/common/mx_constants.h mx/include
cp ${srcdir}/common/mx_int.h mx/include
cp ${srcdir}/common/mx_io.h mx/include
cp ${srcdir}/common/mx_raw.h mx/include
cp ${srcdir}/common/myriexpress.h mx/include
cp ${srcdir}/common/mx_extensions.h mx/include
if test "0" -eq 1 ; then \
cp ${srcdir}/common/mx_kernel_api.h mx/include ; \
cp ${srcdir}/common/mx_pin.h mx/include ; \
fi
cp ${srcdir}/libmyriexpress/mx__driver_interface.h mx/include/mx_internals
cp ${srcdir}/libmyriexpress/mx__fops.h mx/include/mx_internals
cp libmyriexpress/user32/myriexpress.dll mx/lib
cp libmyriexpress/user32/myriexpress.lib mx/lib
cp $(driverdir)/mx.sys mx/sbin
cp tools/mapper/mx_mapper.exe mx/sbin
zip -r mx mx

reconf :
${srcdir}/prep
./config.status --recheck
./config.status
if test -n "fma" ; then \
cd fma && ./config.status --recheck && ./config.status ; \
fi


Hoffe jemand weiss was!
Hab keine Ahnung worans liegt...

Danke gleich schon mal..

MfG Michael

sonnenblen.de - Das unabhängige Sun User Forum


Offline Tschokko

  • Sobl Guru
  • *****
  • Beiträge: 711
    • tschokko.de
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #1 am: 23. August 2009, 09:46:00 »
Versuchs mal mit gmake (GNU make).

Gruß
Tschokko
Join MUCOSUG

RISC = Really Invented by Seymour Cray?
tschokko.de - Server, Storage, Netzwerk und weiße Katzen!

Offline Octane_Suicide

  • Sobl Newbie
  • *
  • Beiträge: 42
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #2 am: 23. August 2009, 13:31:36 »
Hallo Tschokko,

Bin grad am Probieren, passen natuerlich wieder alle Pfade nicht :( .
Findet z.b. "ar" nicht, muss ich noch einiges hinbiegen.
Aber danke fuer den Tip, gmake regt sich zumindest nicht mehr ueber das makefile auf.

[OT]
Hab deinen Blog grad bewundert, find ich Klasse!
Hab da grad gesehen das du bei deinen M5214 auch Controller dabei hast.
Was machen die? Braucht man die, oder kann man die M5214 auch direkt an einen HBA oder ueber einen FC-Switch an den HBA haengen?
[/OT]

Gruesse Michael

Offline Octane_Suicide

  • Sobl Newbie
  • *
  • Beiträge: 42
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #3 am: 23. August 2009, 13:49:02 »
So nachdem ich die Pfade passend gesetzt habe, nimmt er jetzt den gcc und ich gmake.

./configure sieht so aus:

checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for ar... ar
checking if thread safety is enabled... yes
checking for OS specific settings...
checking if debugging is enabled... no
checking if logging is enabled... no
checking if Lanai is emulated... no
checking if MX programs will be statically linked... no
checking if optimization is enabled... yes
checking if development code is enabled... no
checking if we need to build the mcp... no
checking if we want to enable rdma window... yes
checking if kernel library is enabled... no
checking if Ethernet mode is enabled... no
checking wordsize... 32
checking for CPU specific settings... x86_64
configure: creating ./config.status
config.status: creating Makefile
config.status: creating common.mk
config.status: creating dependencies.mk
config.status: creating libmyriexpress/userspace/Makefile
config.status: creating libmyriexpresstcp/Makefile
config.status: creating driver/solaris/Makefile
config.status: creating tools/Makefile
config.status: creating tools/Makefile.mapper-tools
config.status: creating tools/fma_start
config.status: creating tools/mapper_start
config.status: creating tools/mxoed_start
config.status: creating tools/mapper/Makefile
config.status: creating tests/Makefile
config.status: creating spmd/Makefile
config.status: creating spmd_apps/Makefile
config.status: creating driver/solaris/mx_local_install
config.status: creating driver/solaris/mx_start_stop
config.status: creating doc/Makefile
config.status: creating doc/doxygen.conf
config.status: creating common/mx_version.h
config.status: creating mx2g.spec
config.status: creating regression/Makefile
config.status: creating regression/internal/Makefile
config.status: creating regression/external/Makefile
config.status: creating common/mx_auto_config.h
config.status: common/mx_auto_config.h is unchanged
=== configuring in fma (/var/tmp/mx-1.2.9/fma)
configure: running /bin/bash ./configure '--prefix=/opt/mx'  --cache-file=/dev/null --srcdir=.
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... ./install-sh -c
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking how to run the C preprocessor... gcc -E
checking for ar... ar
checking whether ERESTART is declared... yes
configure: creating ./config.status
config.status: creating fms.spec
config.status: creating Makefile
config.status: creating common.mk
config.status: creating dependencies.mk
config.status: creating libdb/Makefile
config.status: creating libfma/Makefile
config.status: creating libmyri/gm/make.myri
config.status: creating libmyri/gm/Makefile
config.status: creating libmyri/lxgdb/make.myri
config.status: creating libmyri/lxgdb/Makefile
config.status: creating libmyri/bogus/Makefile
config.status: creating libmyri/bogus/make.myri
config.status: creating fms/Makefile
config.status: creating tools/legacy/fm_init_db/Makefile
config.status: creating tools/legacy/Makefile
config.status: creating libmyri/mx/make.myri
config.status: creating libmyri/mx/Makefile
config.status: creating libmyri/sim/Makefile
config.status: creating libmyri/sim/make.myri
config.status: creating cgi/Makefile
config.status: creating fma/Makefile
config.status: creating tools/Makefile
config.status: creating libfma/config.h
config.status: creating scripts/make_src_tar
config.status: creating tools/fm_help_pkg

Dann laeuft auch das gmake viel weiter und compiliert auch, aber irgendwie regt sich der linker auf:

...
...
gcc -m32 -o fma fma.o fma_dfs_route.o fma_error.o fma_fabric.o fma_fms.o fma_log.o fma_map.o fma_map_fabric.o fma_mom_moe.o fma_myri.o fma_myrioe.o fma_nic_cache.o fma_preset_routes.o fma_probe.o fma_proxy.o fma_raw_proxy.o fma_route.o fma_settings.o fma_standalone.o fma_sync_timer.o fma_tunnel.o fma_verify.o fma_resolve.o   \
        -DWHICHFMA=fma \
         -lpthread ../libmyri/mx/libmyrimx.a ../libfma/libfma.a ../libdb/libdb.a /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a \
        -lsocket -lnsl  -lrt
Undefined                       first referenced
 symbol                             in file
mx__writebar                        /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__shmem.o)
mx__stbar                           /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__lib.o)
mx__readbar                         /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__lib.o)
ld: fatal: Symbol referencing errors. No output written to fma
collect2: ld returned 1 exit status
gmake[2]: *** [fma] Error 1
gmake[2]: Leaving directory `/var/tmp/mx-1.2.9/fma/fma'
gmake[1]: *** [subdirs-all] Error 2
gmake[1]: Leaving directory `/var/tmp/mx-1.2.9/fma'
gmake: *** [fma] Error 2

Naja, wieder mal mit dem Latein am Ende. (7 millionste kompilation die nicht einfach geht... :-\ )

Regards
Michael

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #4 am: 23. August 2009, 15:28:23 »
Undefined                       first referenced
 symbol                             in file
mx__writebar                        /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__shmem.o)
mx__stbar                           /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__lib.o)
mx__readbar                         /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a(mx__lib.o)

In libmyriexpress.a wird auf die Symbole (Funktionen oder Variablen) mx__writebar, mx__stbar und mx__readbar zugegriffen, der Linker kann diese aber nirgendwo finden.

Die erste Frage wäre also "wo befindet sich mx__writebar überhaupt?" Hat man die mögliche Quelle lokalisiert geht es darum festzustellen warum der Linker das entsprechende Modul nicht gefunden hat. (Wurde die Datei überhaupt übersetzt? Ist sie Teil einer Bibliothek libXYZ.a? Wird die Datei bzw. Bibliothek auch in der Linker-Kommandozeile genannt?)

Zitat von: Octane_Suicide
...
...
gcc -m32 -o fma fma.o fma_dfs_route.o fma_error.o fma_fabric.o fma_fms.o fma_log.o fma_map.o fma_map_fabric.o fma_mom_moe.o fma_myri.o fma_myrioe.o fma_nic_cache.o fma_preset_routes.o fma_probe.o fma_proxy.o fma_raw_proxy.o fma_route.o fma_settings.o fma_standalone.o fma_sync_timer.o fma_tunnel.o fma_verify.o fma_resolve.o   \
        -DWHICHFMA=fma \
         -lpthread ../libmyri/mx/libmyrimx.a ../libfma/libfma.a ../libdb/libdb.a /var/tmp/mx-1.2.9/libmyriexpress/user32/libmyriexpress.a \
        -lsocket -lnsl  -lrt

Von den Namen her könnte ich mir vorstellen das die gesuchten Symbole sich in libmyrimx.a verstecken. Da tut sich beim GNU Linker folgende fiese Falle auf:

Zitat von: ld(1)
           The linker will search an archive only once, at the location  where
           it  is  specified  on  the  command line.  If the archive defines a
           symbol which was undefined in some object which appeared before the
           archive   on   the  command  line,  the  linker  will  include  the
           appropriate file(s) from the archive.  However, an undefined symbol
           in an object appearing later on the command line will not cause the
           linker to search the archive again
.

libmyriexpress.a taucht erst nach libmyrimx.a auf. Als der Linker libmyrimx.a verarbeitet hat wusste er noch gar nicht das diese Symbole gebraucht werden.

Falls mx__writebar tatsächlich in libmyrimx.a vorhanden ist kannst Du mal versuchen es so hinzubiegen das libmyrimx.a nach libmyriexpress.a auf der Kommandozeile erwähnt wird. (Mehrfachnennungen sind kein Problem, manchmal sogar nötig um alle Abhängigkeiten aufzulösen)

Offline Tschokko

  • Sobl Guru
  • *****
  • Beiträge: 711
    • tschokko.de
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #5 am: 23. August 2009, 15:37:39 »


Zitat
[OT]
Hab da grad gesehen das du bei deinen M5214 auch Controller dabei hast.
Was machen die? Braucht man die, oder kann man die M5214 auch direkt an einen HBA oder ueber einen FC-Switch an den HBA haengen?
[/OT]
Wie was welche Controller? Meinst die beiden HSV110 Controller? Öhm ja, die sind notwendig damit diese in Verbindung mit den zwei M5214 Diskshelve ein HP EVA 5000 Storage System bilden. ;)
Ob man die Diskshelves auch als JBODs missbrauchen kann, kann ich dir nicht sagen. Hab ich bisher nie gemacht.

Gruß
Tschokko
 
Join MUCOSUG

RISC = Really Invented by Seymour Cray?
tschokko.de - Server, Storage, Netzwerk und weiße Katzen!

Offline Octane_Suicide

  • Sobl Newbie
  • *
  • Beiträge: 42
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #6 am: 23. August 2009, 15:51:41 »
Hmm...

@Tschokko:
Achso is das...dachte die M5214 kann man direkt als JBOD verwenden, na wenn das so is wart ich noch bevor ich mir eins besorge. Dachte das waer wie so ein scsi shelf, nur halt fc.

@Ten Little Indians
Tja, nachdem ich ziemlich IDE verseucht bin, bin ich beim kompilieren auf der Komandozeile ziemlich hilflos.
Ich werd mal versuchen die Reihenfolge im Makefile (??) anzupassen. (Irgendwie is das alles ziemlich demotivierend :( )

Demprimiert,
Michael

Offline Octane_Suicide

  • Sobl Newbie
  • *
  • Beiträge: 42
Re: Problem beim Myricom mx-2g Treiber kompilieren/installieren....
« Antwort #7 am: 23. August 2009, 16:27:07 »
Huijee...  :-[

Ich werd das wohl ein bischen ruhen lassen muessen, ich hab keinen Tau was in dem makefile passiert.
Muss mich da wohl erst ein bischen einlesen, dass wird dauern.
Also ersmal wohl keine 2Gbit/s Verbindung...

Naja, jedenfalls tausend Dank an euch alle...hoffe ich kann wirklich auch bald mal was produktives zum Forum beitragen.

Michael