[Spread-users] First shot at NetBSD/m68k support
Marc ZYNGIER
mzyngier at freesurf.fr
Sat Jul 14 04:13:33 EDT 2001
Hi all,
I just gave a shot at porting Spread to the NetBSD/m68k
platform. Patch included is very simple...
At the moment, there's no pthread support (since NetBSD doesn't have
kernel threads support yet). It runs nicely (and slowly... :-) on my
Macintosh LC475 with NetBSD-1.5.
Any comment is welcome.
M.
diff -ruN tmp/spread_src-3.16.0/NetBSD_makefile spread_src-3.16.0/NetBSD_makefile
--- tmp/spread_src-3.16.0/NetBSD_makefile Thu Jan 1 01:00:00 1970
+++ spread_src-3.16.0/NetBSD_makefile Sat Jul 14 09:47:21 2001
@@ -0,0 +1,86 @@
+CC=gcc
+MAKEFILE=NetBSD_makefile
+YACC = bison -y
+LEX = flex
+
+#if you want more than one dir and include files will be taken auto
+#remove comments from next 3 line and comment fourth line
+#SRCDIRS= dir1 dir2
+#INCL=$(SRCDIRS:%=-I%)
+#CFLAGS = -O does not always work on BSDI pc
+CFLAGS = -ansi -c -Wall -O
+TCFLAGS = $(CFLAGS) -D_REENTRANT
+
+COBJS = lex.yy.o y.tab.o configuration.o skiplist.o acm.o
+OBJS = alarm.o events.o memory.o membership.o data_link.o network.o status.o log.o flow_control.o message.o acp-permit.o auth-null.o auth-ip.o
+BINS = spread spmonitor spuser simple_user spflooder
+
+.SUFFIXES : .o .to .lo .tlo
+
+all: $(BINS)
+
+shared : libsp.so
+
+spread : $(OBJS) $(COBJS) spread.o protocol.o session.o groups.o
+ $(CC) -o spread spread.o protocol.o session.o groups.o $(OBJS) $(COBJS)
+
+spmonitor : monitor.o alarm.o events.o memory.o data_link.o $(COBJS)
+ $(CC) -o spmonitor monitor.o alarm.o events.o memory.o data_link.o $(COBJS)
+
+spuser : user.o libsp.a
+ $(CC) -o spuser user.o libsp.a
+
+simple_user : simple_user.o libsp.a
+ $(CC) -o simple_user simple_user.o libsp.a
+
+spflooder : flooder.o libsp.a
+ $(CC) -o spflooder flooder.o libsp.a
+
+run_spread : run_spread.o
+ $(CC) -o run_spread run_spread.o
+
+s : s.o alarm.o data_link.o events.o memory.o
+ $(CC) -o s s.o alarm.o data_link.o events.o memory.o
+
+r : r.o alarm.o data_link.o
+ $(CC) -o r r.o alarm.o data_link.o
+
+libsp.so : alarm.lo events.lo memory.lo sp.lo
+ gcc -shared -o libsp.so alarm.lo events.lo memory.lo sp.lo
+
+libsp.a : alarm.o events.o memory.o sp.o
+ ar r libsp.a alarm.o events.o memory.o sp.o; ranlib libsp.a
+
+clean:
+ rm -f $(BINS) *.o *.lo libsp.a libsp.so
+
+lex.yy.c: config_gram.l conf_body.h y.tab.h arch.h
+ $(LEX) config_gram.l
+
+y.tab.c y.tab.h: config_parse.y configuration.h alarm.h skiplist.h memory.h objects.h conf_body.h
+ $(YACC) -d config_parse.y
+
+.c.lo:
+ $(CC) $(CFLAGS) -fPIC $*.c -o $*.lo
+
+.c.o:
+ $(CC) $(CFLAGS) $*.c
+
+.c.tlo:
+ $(CC) $(TCFLAGS) -fPIC -D_REENTRANT $*.c -o $*.tlo
+
+.c.to:
+ $(CC) $(TCFLAGS) -D_THREAD_SAFE -D_REENTRANT $*.c -o $*.to
+
+depend:
+ cp $(MAKEFILE) $(MAKEFILE).bak \
+ && sed -ne '1,/^# DO NOT DELETE/p' $(MAKEFILE) > $(MAKEFILE).new \
+ && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> $(MAKEFILE).new \
+ && mv $(MAKEFILE).new $(MAKEFILE)
+# if you want to get fancy with dependency directories...
+# && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' \
+# -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
+# > Makefile.tmpl \
+# && rm Makefile.new
+
+# DO NOT DELETE THIS LINE ##################
diff -ruN tmp/spread_src-3.16.0/arch.h spread_src-3.16.0/arch.h
--- tmp/spread_src-3.16.0/arch.h Fri Jun 29 01:02:07 2001
+++ spread_src-3.16.0/arch.h Sat Jul 14 09:59:07 2001
@@ -120,6 +120,14 @@
#define ARCH_SGI_IRIX
#endif
+#ifdef __m68k__
+
+#ifdef __NetBSD__
+#define ARCH_M68K_NETBSD
+#endif
+
+#endif /* __m68k */
+
#undef INTSIZE32
#undef INTSIZE64
#undef INTSIZE16
@@ -333,6 +341,21 @@
#define ERR_TIMEDOUT ETIMEDOUT
#endif /* ARCH_SGI_UNIX */
+#ifdef ARCH_M68K_NETBSD
+#define INTSIZE32
+#define ARCH_SCATTER_CONTROL
+#define ARCH_ENDIAN 0x00000000
+#define LOC_INLINE __inline__
+#include <sys/types.h>
+#include <sys/uio.h>
+#define ARCH_SCATTER_SIZE UIO_MAXIOV
+#define HAVE_GOOD_VARGS
+typedef int sockopt_len_t;
+/* Already defined
+typedef int socklen_t; */
+#define ERR_TIMEDOUT ETIMEDOUT
+#endif /* ARCH_M68K_NETBSD */
+
#ifdef ARCH_PC_WIN95
#define INTSIZE32
#define ARCH_SCATTER_NONE
--
Places change, faces change. Life is so very strange.
More information about the Spread-users
mailing list