Jelajahi Sumber

- added support form arm (armv4l)
- fixed an arm warning in shm_mem and re-enabled semaphore signal checks

Andrei Pelinescu-Onciul 23 tahun lalu
induk
melakukan
8c141481cd
3 mengubah file dengan 41 tambahan dan 8 penghapusan
  1. 33 0
      Makefile.defs
  2. 5 6
      mem/shm_mem.h
  3. 3 2
      test/stateless.cfg

+ 33 - 0
Makefile.defs

@@ -252,6 +252,39 @@ endif		#CC_NAME, suncc
 endif		#CC_NAME, gcc
 endif	#ARCH, sparc64
 
+	#if ipaq/netwinder
+ifeq	($(ARCH), armv4l)
+		# if gcc 
+ifeq		($(CC_NAME), gcc)
+				#common stuff
+				CFLAGS=-O9 -funroll-loops  -Wcast-align $(PROFILE) -Winline\
+					-Wall   \
+			#if gcc 3.0
+ifeq			($(CC_SHORTVER), 3.0)
+					CFLAGS+= -mcpu=strongarm1100
+							#-mcpu=athlon
+else
+ifeq			($(CC_SHORTVER), 2.9x) #older gcc version (2.9[1-5])
+$(warning 			Old gcc detected ($(CC_SHORTVER)), use  gcc 3.0.x \
+					for better results)
+					
+					CFLAGS+=
+else
+				#really old version
+$(warning			You are using an old and unsupported gcc \
+					 version ($(CC_SHORTVER)), compile at your own risk!)
+
+endif			# CC_SHORTVER, 2.9x
+endif			# CC_SHORTVER, 3.0
+
+else		# CC_NAME, gcc
+				#other compilers
+$(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
+endif		#CC_NAME, gcc
+endif	#ARCH, i386
+
+
+	
 
 
 # setting LDFLAGS

+ 5 - 6
mem/shm_mem.h

@@ -71,13 +71,14 @@ static inline void shm_lock()
 {
 
 	struct sembuf sop;
+	int ret;
 	
 	sop.sem_num=0;
 	sop.sem_op=-1; /*down*/
 	sop.sem_flg=0 /*SEM_UNDO*/;
 again:
-	semop(shm_semid, &sop, 1);
-#if 0
+	ret=semop(shm_semid, &sop, 1);
+
 	switch(ret){
 		case 0: /*ok*/
 			break;
@@ -88,7 +89,6 @@ again:
 			LOG(L_ERR, "ERROR: sh_lock: error waiting on semaphore: %s\n",
 					strerror(errno));
 	}
-#endif
 }
 
 
@@ -96,13 +96,13 @@ again:
 static inline void shm_unlock()
 {
 	struct sembuf sop;
+	int ret;
 	
 	sop.sem_num=0;
 	sop.sem_op=1; /*up*/
 	sop.sem_flg=0 /*SEM_UNDO*/;
 again:
-	semop(shm_semid, &sop, 1);
-#if 0
+	ret=semop(shm_semid, &sop, 1);
 	/*should ret immediately*/
 	switch(ret){
 		case 0: /*ok*/
@@ -114,7 +114,6 @@ again:
 			LOG(L_ERR, "ERROR: sh_lock: error waiting on semaphore: %s\n",
 					strerror(errno));
 	}
-#endif
 }
 
 /* ret -1 on erro*/

+ 3 - 2
test/stateless.cfg

@@ -8,7 +8,7 @@
 debug=3          # debug level (cmd line: -dddddddddd)
 #fork=yes          # (cmd. line: -D)
 fork=yes
-#fork=no
+fork=no
 log_stderror=yes # (cmd line: -E)
 #log_stderror=no	# (cmd line: -E)
 
@@ -18,9 +18,10 @@ check_via=no     # (cmd. line: -v)
 dns=off           # (cmd. line: -r)
 rev_dns=off      # (cmd. line: -R)
 #port=5070
-listen=10.0.0.179
+#listen=10.0.0.179
 #listen=127.0.0.1
 #listen=192.168.57.33
+listen=192.168.57.72
 loop_checks=0
 # for more info: sip_router -h