[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