[prev in list] [next in list] [prev in thread] [next in thread] 

List:       net-snmp-users
Subject:    fixes for net-snmp-5.6 when using m68k-uclinux-gcc
From:       David Wu <davidwu () arcturusnetworks ! com>
Date:       2010-10-29 15:52:49
Message-ID: 4CCAEDD1.3000500 () arcturusnetworks ! com
[Download RAW message or body]

Hi - I had spent a few hours to check out the net-snmp-5.6 release and
tried to build using m68k-uclinux-gcc. (gcc 4.3.2)
I had some build errors and then fixed them. I am posting the makefile 
and fixes here, hoping it helpful to others.

The changes in hr_system.c might not be the best fix but it works for me.
The adding of "SUBDIRS="  avoids a recursive call to "make subdirs"
The vfork fix is for mmuless system
The configure fix is for the NETSNMP_SYSTEM_INCLUDE_FILE since "uclinux"
is  "linux"  in this case.

Someone may find the better fix than this.

The makefile:
=============
LIBS="-lpthread"

CONFOPTS = --host=m68k-uclinux \
     --target=m68k-uclinux \
     --enable-static \
     --with-endianness=big \
     --with-default-snmp-version=2 \
     --with-logfile="/var/log/snmpd.log" \
     --with-persistent-directory="/var/conf/net-snmp"

all: build/build
        (cd build ; make)

build/build: makefile
        rm -rf build
        mkdir build
        (cd build; LIBS="$(LIBS)" sh ../configure $(CONFIGURE_OPTS))
        touch build/build

clean:
        - rm -rf build

The following are the fixes I made.
============================
diff -urNa net-snmp-5.6/agent/helpers/Makefile.in
net-snmp-5.6-fix/agent/helpers/Makefile.in
--- net-snmp-5.6/agent/helpers/Makefile.in    2010-05-30
16:19:04.000000000 -0400
+++ net-snmp-5.6-fix/agent/helpers/Makefile.in    2010-10-28
18:38:19.454717089 -0400
@@ -18,7 +18,7 @@
 
 INSTALLLIBS=libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
 INCLUDESUBDIR=agent
-
+SUBDIRS=
 #
 # Build info
 #
diff -urNa net-snmp-5.6/agent/mibgroup/host/hr_system.c
net-snmp-5.6-fix/agent/mibgroup/host/hr_system.c
--- net-snmp-5.6/agent/mibgroup/host/hr_system.c    2008-10-21
17:10:43.000000000 -0400
+++ net-snmp-5.6-fix/agent/mibgroup/host/hr_system.c    2010-10-28
18:38:19.692716901 -0400
@@ -659,7 +659,7 @@
     return total;
 }
 
-#if defined(UTMP_FILE) && !HAVE_UTMPX_H
+#if !defined(UTMP_FILE) && !HAVE_UTMPX_H
 
 static FILE    *utmp_file;
 static struct utmp utmp_rec;
diff -urNa net-snmp-5.6/agent/mibgroup/Makefile.in
net-snmp-5.6-fix/agent/mibgroup/Makefile.in
--- net-snmp-5.6/agent/mibgroup/Makefile.in    2006-12-05
18:30:28.000000000 -0500
+++ net-snmp-5.6-fix/agent/mibgroup/Makefile.in    2010-10-28
18:38:19.470716873 -0400
@@ -29,6 +29,7 @@
 OBJS  = $(mib_module_list_o)
 LOBJS = $(mib_module_list_lo)
 SRCS  = $(mib_module_list_c)
+SUBDIRS=
 
 all: standardall $(LOBJS)
 
diff -urNa net-snmp-5.6/agent/mibgroup/utilities/execute.c
net-snmp-5.6-fix/agent/mibgroup/utilities/execute.c
--- net-snmp-5.6/agent/mibgroup/utilities/execute.c    2010-06-22
14:57:45.000000000 -0400
+++ net-snmp-5.6-fix/agent/mibgroup/utilities/execute.c    2010-10-28
18:38:19.831716694 -0400
@@ -188,8 +188,12 @@
     DEBUGMSGTL(("run:exec", "running '%s'\n", command));
     pipe(ipipe);
     pipe(opipe);
+#ifdef __uClinux__ /* HAVE uClinux */
+    if ((pid = vfork()) == 0) {
+#else
     if ((pid = fork()) == 0) {
-        /*
+#endif
+            /*
          * Child process
          */
 
diff -urNa net-snmp-5.6/apps/snmpnetstat/Makefile.in
net-snmp-5.6-fix/apps/snmpnetstat/Makefile.in
--- net-snmp-5.6/apps/snmpnetstat/Makefile.in    2007-05-14
17:48:53.000000000 -0400
+++ net-snmp-5.6-fix/apps/snmpnetstat/Makefile.in    2010-10-28
18:38:19.840716857 -0400
@@ -20,6 +20,7 @@
 OBJS=    inet.o inet6.o if.o main.o route.o winstub.o ffs.o
 LOBJS=    inet.lo inet6.lo if.lo main.lo route.lo winstub.lo ffs.lo
 TARG= snmpnetstat$(EXEEXT)
+SUBDIRS=
 
 CPPFLAGS= $(TOP_INCLUDES)  @CPPFLAGS@
 
diff -urNa net-snmp-5.6/apps/snmptrapd.c net-snmp-5.6-fix/apps/snmptrapd.c
--- net-snmp-5.6/apps/snmptrapd.c    2010-08-13 14:50:07.000000000 -0400
+++ net-snmp-5.6-fix/apps/snmptrapd.c    2010-10-28 18:38:19.845716801 -0400
@@ -1142,8 +1142,12 @@
     if (dofork && netsnmp_running) {
         int             fd;
 
-        switch (fork()) {
-        case -1:
+#ifdef __uClinux__ /* HAVE uClinux */
+        switch (vfork()) {
+#else
+    switch (fork()) {
+#endif
+    case -1:
             fprintf(stderr, "bad fork - %s\n", strerror(errno));
             _exit(1);
 
diff -urNa net-snmp-5.6/configure net-snmp-5.6-fix/configure
--- net-snmp-5.6/configure    2010-10-07 18:23:32.000000000 -0400
+++ net-snmp-5.6-fix/configure    2010-10-28 18:38:19.858716722 -0400
@@ -14989,6 +14989,9 @@
 $as_echo_n "checking for system include file... " >&6; }
 
 filebase=$target_os
+if test "x$target_os" = "xuclinux"; then
+    filebase=linux
+fi    
 # ignore binary format indication
 filebase=`echo $filebase | $SED 's/elf//'`
 filebase=`echo $filebase | $SED 's/aout//'`
diff -urNa net-snmp-5.6/local/Makefile.in net-snmp-5.6-fix/local/Makefile.in
--- net-snmp-5.6/local/Makefile.in    2010-04-21 18:31:46.000000000 -0400
+++ net-snmp-5.6-fix/local/Makefile.in    2010-10-28 18:45:43.544821150
-0400
@@ -10,6 +10,7 @@
 #
 OTHERINSTALL=localinstall
 OTHERUNINSTALL=localuninstall
+SUBDIRS=
 
 #
 # local info
diff -urNa net-snmp-5.6/man/Makefile.in net-snmp-5.6-fix/man/Makefile.in
--- net-snmp-5.6/man/Makefile.in    2010-08-16 06:16:55.000000000 -0400
+++ net-snmp-5.6-fix/man/Makefile.in    2010-10-28 18:45:43.545821049 -0400
@@ -67,7 +67,7 @@
     snmp_set_var_typed_value.3 snmp_set_var_value.3   \
     snmp_varlist_add_variable.3 snprint_value.3 snprint_variable.3
 PDU_ALIASES     = snmp_clone_pdu.3 snmp_fix_pdu.3 snmp_free_pdu.3
snmp_pdu_create.3
-
+SUBDIRS=
 
 
 MANALIASES=$(MIB_ALIASES) $(CONFIG_ALIASES) $(ALARM_ALIASES)
$(SESSION_ALIASES) \
diff -urNa net-snmp-5.6/mibs/Makefile.in net-snmp-5.6-fix/mibs/Makefile.in
--- net-snmp-5.6/mibs/Makefile.in    2010-03-31 11:34:24.000000000 -0400
+++ net-snmp-5.6-fix/mibs/Makefile.in    2010-10-28 18:45:43.545821049 -0400
@@ -11,6 +11,7 @@
 #
 OTHERINSTALL=mibsinstall
 OTHERUNINSTALL=mibsuninstall
+SUBDIRS=
 
 
 V1MIBS    = RFC1155-SMI.txt RFC1213-MIB.txt RFC-1215.txt
diff -urNa net-snmp-5.6/snmplib/Makefile.in
net-snmp-5.6-fix/snmplib/Makefile.in
--- net-snmp-5.6/snmplib/Makefile.in    2010-05-27 00:06:32.000000000 -0400
+++ net-snmp-5.6-fix/snmplib/Makefile.in    2010-10-28
18:45:43.547820951 -0400
@@ -132,6 +132,8 @@
     tools.h        \
     transform_oids.h
 
+SUBDIRS    =
+
 # libraries
 INSTALLLIBS=libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
 INSTALLUCDLIBS=libsnmp.$(LIB_EXTENSION)$(LIB_VERSION)


Regards,
David

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic