Re: Installing OpenNMS on Debian ARMEL architectures
Ben Whorwood <[email protected]>
| Newsgroups | gmane.network.opennms.install |
|---|---|
| Message-ID | <[email protected]> |
Hi Benjamin, Thank you for your prompt reply. I haven't yet queried this with any SheevaPlug / ARM specific communities but definitely will do. I know NewIT (whom I bought the SheevaPlug from) do provide support via a forum but I'm not sure whether this would cover specific software issues. I'll try and provide some more technical information from trying to build JICMP in case you may be able to offer some advice... /Please note that whilst trying to get JICMP to build I have made some quick hacks to the configure scripts in order to progress past some initial problems (please be gentle). / The initial problem during build was caused by an unrecognised command option (around line 24928 in configure): $CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5 cc1: error: unrecognized command line option "-m32" Or actually... gcc -c -Wall -g -O2 -m32 -Wall -Werror -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux -I. conftest.c cc1: error: unrecognized command line option "-m32" To get past this problem I modified configure to explicitly remove "-m32" (also added some Sparc fixes which I thought might help other issues). I also made some other slight changes to try and get to the actual compilation stage (which fails), here's a diff of all the changes: 24902,24905d24901 < < /* Explictly added */ < #define HAVE_SYS_TIME_H 1 < 24929,24933d24924 < < echo -e "\n$CFLAGS " < CFLAGS=$(echo $CFLAGS | sed 's/-m32 /-DHAVE_NETINET_IP_H -DHAVE_NETINET_IP_ICMP_H /g') < echo -e "\nCorrected CFLAGS: $CFLAGS\n" < 24940d24930 < cat conftest.err With these modifications in place JICMP does try and compile, here's the full output... $ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk $ dpkg-buildpackage -us -uc dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): dpkg-buildpackage: source package jicmp dpkg-buildpackage: source version 1.0.8-1 dpkg-buildpackage: source changed by Benjamin Reed <[email protected]> dpkg-buildpackage: host architecture armel dpkg-source --before-build jicmp-1.0.8 debian/rules clean /usr/share/cdbs/1/rules/buildcore.mk:58: parsing jicmp-1.0.8.tar.gz ... /usr/share/cdbs/1/rules/tarball.mk:33: WARNING: tarball.mk is deprecated - please use source format 3.0 instead test -x debian/rules dh_testroot rm -rf build-tree rm -f debian/stamp-jicmp-1.0.8.tar.gz rm -f debian/stamp-patch-* rm -rf debian/patched rm -f debian/stamp-makefile-build debian/stamp-makefile-install /usr/bin/make -C build-tree/jicmp-1.0.8 -k distclean make: *** build-tree/jicmp-1.0.8: No such file or directory. Stop. make: [makefile-clean] Error 2 (ignored) rm -f debian/stamp-autotools rmdir --ignore-fail-on-non-empty build-tree/jicmp-1.0.8 rmdir: failed to remove `build-tree/jicmp-1.0.8': No such file or directory make: [makefile-clean] Error 1 (ignored) for i in ./build-tree/jicmp-1.0.8/config.guess ./jicmp-1.0.8/config.guess ./build-tree/jicmp-1.0.8/config.sub ./jicmp-1.0.8/config.sub ; do \ if test -e $i.cdbs-orig ; then \ mv $i.cdbs-orig $i ; \ fi ; \ done rm -f debian/stamp-autotools-files dh_clean dh_clean: Compatibility levels before 5 are deprecated. dpkg-source -b jicmp-1.0.8 dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1) dpkg-source: info: using source format `1.0' dpkg-source: info: building jicmp in jicmp_1.0.8-1.tar.gz dpkg-source: info: building jicmp in jicmp_1.0.8-1.dsc debian/rules build /usr/share/cdbs/1/rules/buildcore.mk:58: parsing jicmp-1.0.8.tar.gz ... /usr/share/cdbs/1/rules/tarball.mk:33: WARNING: tarball.mk is deprecated - please use source format 3.0 instead test -x debian/rules mkdir -p "build-tree/jicmp-1.0.8" tar -C build-tree -x -z -f jicmp-1.0.8.tar.gz touch debian/stamp-jicmp-1.0.8.tar.gz if test -e /usr/share/misc/config.guess ; then \ for i in jicmp-1.0.8/config.guess ; do \ cp --remove-destination /usr/share/misc/config.guess \ build-tree/$i ; \ done ; \ fi if test -e /usr/share/misc/config.sub ; then \ for i in jicmp-1.0.8/config.sub ; do \ cp --remove-destination /usr/share/misc/config.sub \ build-tree/$i ; \ done ; \ fi if test -e /usr/share/misc/config.guess ; then \ for i in ./jicmp-1.0.8/config.guess ; do \ if ! test -e $i.cdbs-orig ; then \ mv $i $i.cdbs-orig ; \ cp --remove-destination /usr/share/misc/config.guess $i ; \ fi ; \ done ; \ fi if test -e /usr/share/misc/config.sub ; then \ for i in ./jicmp-1.0.8/config.sub ; do \ if ! test -e $i.cdbs-orig ; then \ mv $i $i.cdbs-orig ; \ cp --remove-destination /usr/share/misc/config.sub $i ; \ fi ; \ done ; \ fi touch debian/stamp-autotools-files chmod a+x /root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8/configure mkdir -p build-tree/jicmp-1.0.8 cd build-tree/jicmp-1.0.8 && CFLAGS="-Wall -g -O2" CXXFLAGS="-g -O2 -g -Wall -O2" CPPFLAGS="" LDFLAGS="" /root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8/configure --build=arm-linux-gnueabi --prefix=/usr --includedir="\${prefix}/include" --mandir="\${prefix}/share/man" --infodir="\${prefix}/share/info" --sysconfdir=/etc --localstatedir=/var --libexecdir="\${prefix}/lib/jicmp" --disable-maintainer-mode --disable-dependency-tracking --disable-silent-rules --srcdir=. --libdir=/usr/lib/jni --with-java=/usr/lib/jvm/java-6-openjdk checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes 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 ANSI C... none needed checking for style of include used by make... GNU checking dependency style of gcc... none checking whether ln -s works... yes checking build system type... arm-unknown-linux-gnueabi checking host system type... arm-unknown-linux-gnueabi checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... none checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for epcf90... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for gfortran... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for a BSD-compatible install... /usr/bin/install -c checking whether byte ordering is bigendian... no configure: checking if "/usr/lib/jvm/java-6-openjdk" is home for a valid 1.5 jdk checking if "/usr/lib/jvm/java-6-openjdk" has java... yes checking if "/usr/lib/jvm/java-6-openjdk" has javac... yes checking if "/usr/lib/jvm/java-6-openjdk" has jar... yes checking if "/usr/lib/jvm/java-6-openjdk" has javah... yes checking if java version meets requirements for 1.5... yes, version is 1.6 checking if java architecture meets requirements... yes, 32-bit checking for jni headers... yes configure: found a valid jdk. setting JAVA_HOME to "/usr/lib/jvm/java-6-openjdk" configure: using jdk at /usr/lib/jvm/java-6-openjdk checking if gcc is Sun CC... no /root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8/configure: line 21808: rpm: command not found checking for rpmbuild... no CMakeLists.txt ChangeLog IcmpSocket.c IcmpSocket.h Makefile.am Makefile.in aclocal.m4 byteswap.h confdefs.h config.guess config.h.cmake config.h.in config.log config.sub configure configure.ac debian depcomp install-sh jicmp.spec jicmp.spec.in libtool ltmain.sh m4 missing org pom.xml.in solaris win32 RPM Configuration Failed CMakeLists.txt ChangeLog IcmpSocket.c IcmpSocket.h Makefile.am Makefile.in aclocal.m4 byteswap.h confdefs.h config.guess config.h.cmake config.h.in config.log config.sub configure configure.ac debian depcomp install-sh jicmp.spec jicmp.spec.in libtool ltmain.sh m4 missing org pom.xml.in solaris win32 Failed to find the rpmbuild program. If you want to build rpm packages CMakeLists.txt ChangeLog IcmpSocket.c IcmpSocket.h Makefile.am Makefile.in aclocal.m4 byteswap.h confdefs.h config.guess config.h.cmake config.h.in config.log config.sub configure configure.ac debian depcomp install-sh jicmp.spec jicmp.spec.in libtool ltmain.sh m4 missing org pom.xml.in solaris win32 indicate the path to the rpmbuild program using --with-rpmbuild-prog=PROG JAVA_HOME=/usr/lib/jvm/java-6-openjdk JAVA=/usr/lib/jvm/java-6-openjdk/bin/java JAVAC=/usr/lib/jvm/java-6-openjdk/bin/javac JAVAH=/usr/lib/jvm/java-6-openjdk/bin/javah JAR=/usr/lib/jvm/java-6-openjdk/bin/jar JNI_INCLUDES=-I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux checking for ANSI C header files... (cached) yes checking jni.h usability... no checking jni.h presence... yes configure: WARNING: jni.h: present but cannot be compiled configure: WARNING: jni.h: check for missing prerequisite headers? configure: WARNING: jni.h: see the Autoconf documentation configure: WARNING: jni.h: section "Present But Cannot Be Compiled" configure: WARNING: jni.h: proceeding with the preprocessor's result configure: WARNING: jni.h: in the future, the compiler will take precedence configure: WARNING: ## ------------------------------------- ## configure: WARNING: ## Report this to http://www.opennms.org ## configure: WARNING: ## ------------------------------------- ## checking for jni.h... yes checking for sys/types.h... (cached) yes checking for AvailabilityMacros.h... no checking for architecture/byte_order.h... no checking for byteswap.h... no checking for errno.h... no checking for malloc.h... no checking for netdb.h... no checking for stdlib.h... (cached) yes checking for sys/byteorder.h... no checking for sys/time.h... no checking for sys/types.h... (cached) yes checking sys/socket.h usability... no checking sys/socket.h presence... yes configure: WARNING: sys/socket.h: present but cannot be compiled configure: WARNING: sys/socket.h: check for missing prerequisite headers? configure: WARNING: sys/socket.h: see the Autoconf documentation configure: WARNING: sys/socket.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/socket.h: proceeding with the preprocessor's result configure: WARNING: sys/socket.h: in the future, the compiler will take precedence configure: WARNING: ## ------------------------------------- ## configure: WARNING: ## Report this to http://www.opennms.org ## configure: WARNING: ## ------------------------------------- ## checking for sys/socket.h... yes checking winsock2.h usability... no checking winsock2.h presence... no checking for winsock2.h... no checking ws2tcpip.h usability... no checking ws2tcpip.h presence... no checking for ws2tcpip.h... no checking for socklen_t... no checking for socklen_t equivalent for socket functions... int checking for an ANSI C-conforming const... no checking for sys/types.h... (cached) yes checking for netinet/in.h... no checking for netinet/in_systm.h... no checking for netinet/ip.h... no checking for netinet/ip_icmp.h... no checking for winsock2.h... (cached) no checking for ws2tcpip.h... (cached) no checking for win32/icmp.h... no checking for struct ip... no checking for struct iphdr... no checking for struct icmp... no checking for struct icmphdr... no checking for ip->ip_hl... no checking for ip->ihl... no checking for icmp->icmp_type... no checking for icmp->type... no checking for icmp->icmp_cksum... no checking for icmp->checksum... no checking for struct timeval... Corrected CFLAGS: -Wall -g -O2 -DHAVE_NETINET_IP_H -DHAVE_NETINET_IP_ICMP_H -Wall -Werror yes checking for byteswap.h... (cached) no configure: creating ./config.status config.status: creating Makefile config.status: creating jicmp.spec config.status: creating pom.xml config.status: creating solaris/pkginfo config.status: creating config.h config.status: executing depfiles commands touch debian/stamp-autotools /usr/bin/make -C build-tree/jicmp-1.0.8 make[1]: Entering directory `/root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8' /usr/bin/make all-am make[2]: Entering directory `/root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8' mkdir -p classes /usr/lib/jvm/java-6-openjdk/bin/javac -source 1.5 -target 1.5 -d classes org/opennms/protocols/icmp/AddressMaskReply.java org/opennms/protocols/icmp/AddressMaskRequest.java org/opennms/protocols/icmp/ErrorMessage.java org/opennms/protocols/icmp/ICMPEchoPacket.java org/opennms/protocols/icmp/ICMPHeader.java org/opennms/protocols/icmp/IcmpSocket.java org/opennms/protocols/icmp/TimestampReply.java org/opennms/protocols/icmp/TimestampRequest.java org/opennms/protocols/ip/IPHeader.java org/opennms/protocols/ip/IPv4Address.java org/opennms/protocols/ip/OC16ChecksumProducer.java org/opennms/protocols/ip/UnknownIPVersionException.java && touch java.built /usr/lib/jvm/java-6-openjdk/bin/javah -classpath classes org.opennms.protocols.icmp.IcmpSocket /bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux -I. -I. -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux -I. -Wall -g -O2 -DHAVE_NETINET_IP_H -DHAVE_NETINET_IP_ICMP_H -Wall -Werror -c -o IcmpSocket.lo IcmpSocket.c mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux -I. -I. -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java-6-openjdk/include/linux -I. -Wall -g -O2 -DHAVE_NETINET_IP_H -DHAVE_NETINET_IP_ICMP_H -Wall -Werror -c IcmpSocket.c -fPIC -DPIC -o .libs/IcmpSocket.o In file included from IcmpSocket.c:55: IcmpSocket.h:169:3: error: #error "not sure how to get an IP header struct on this platform!" IcmpSocket.h:177:3: error: #error "not sure how to get an ICMP header struct on this platform!" cc1: warnings being treated as errors IcmpSocket.c: In function 'Java_org_opennms_protocols_icmp_IcmpSocket_initSocket': IcmpSocket.c:402: error: implicit declaration of function 'getprotobyname' IcmpSocket.c:402: error: assignment makes pointer from integer without a cast IcmpSocket.c:414: error: dereferencing pointer to incomplete type IcmpSocket.c:420: error: 'errno' undeclared (first use in this function) IcmpSocket.c:420: error: (Each undeclared identifier is reported only once IcmpSocket.c:420: error: for each function it appears in.) IcmpSocket.c: In function 'Java_org_opennms_protocols_icmp_IcmpSocket_receive': IcmpSocket.c:447: error: 'iphdr_t' undeclared (first use in this function) IcmpSocket.c:447: error: 'ipHdr' undeclared (first use in this function) IcmpSocket.c:448: error: 'icmphdr_t' undeclared (first use in this function) IcmpSocket.c:448: error: 'icmpHdr' undeclared (first use in this function) IcmpSocket.c:505: error: pointer targets in passing argument 6 of 'recvfrom' differ in signedness /usr/include/sys/socket.h:166: note: expected 'socklen_t * __restrict__' but argument is of type 'int *' IcmpSocket.c:512: error: 'errno' undeclared (first use in this function) IcmpSocket.c:538: error: expected expression before ')' token IcmpSocket.c:546: error: expected expression before ')' token IcmpSocket.c:567: error: implicit declaration of function 'gettimeofday' IcmpSocket.c: In function 'Java_org_opennms_protocols_icmp_IcmpSocket_send': IcmpSocket.c:773: error: 'errno' undeclared (first use in this function) IcmpSocket.c:805: error: 'icmphdr_t' undeclared (first use in this function) IcmpSocket.c:805: error: expected expression before ')' token IcmpSocket.c:818: error: expected expression before ')' token IcmpSocket.c:819: error: expected expression before ')' token IcmpSocket.c:837: error: 'EACCES' undeclared (first use in this function) make[2]: *** [IcmpSocket.lo] Error 1 make[2]: Leaving directory `/root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8' make[1]: *** [all] Error 2 make[1]: Leaving directory `/root/src/jicmp-1.0.8/build-tree/jicmp-1.0.8' make: *** [debian/stamp-makefile-build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 The inclusion of the "-m32" compiler option in CFLAGS and the missing structs in IcmpSocket.h led me to believe that the process type wasn't being properly detected but obviously I could be way off the mark. If you can give any further advice that would be great. Many thanks, Ben On 19/11/10 15:36, Benjamin Reed wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 11/19/10 8:55 AM, Ben Whorwood wrote: > > However I encountered > problems when trying to build JICMP from > > > source which is where I am currently stuck. > > Sorry, if there are ARM-specific build issues, I'm not sure where to > start, personally, as I've never done any ARM development. Are there > any SheevaPlug communities you could ask for help? > > - -- > Benjamin Reed > The OpenNMS Group > http://www.opennms.org/ > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG/MacGPG2 v2.0.14 (Darwin) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iD8DBQFM5pmWUu+jZtP2Zf4RAqdtAJ0ZkJ8DKMbXQCl5EsPGVbCoyeIGaACff+C/ > 5jXt9t9Vy+Y1dxCY6qg8fzg= > =WfSC > -----END PGP SIGNATURE----- > > > ------------------------------------------------------------------------------ > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2& L3. > Spend less time writing and rewriting code and more time creating great > experiences on the web. Be a part of the beta today > http://p.sf.net/sfu/msIE9-sfdev2dev > > > _______________________________________________ > Please read the OpenNMS Mailing List FAQ: > http://www.opennms.org/index.php/Mailing_List_FAQ > > opennms-install mailing list > > To *unsubscribe* or change your subscription options, see the bottom of this page: > https://lists.sourceforge.net/lists/listinfo/opennms-install ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev _______________________________________________ Please read the OpenNMS Mailing List FAQ: http://www.opennms.org/index.php/Mailing_List_FAQ opennms-install mailing list To *unsubscribe* or change your subscription options, see the bottom of this page: https://lists.sourceforge.net/lists/listinfo/opennms-install