Преглед на файлове

- support for intel icc
- fixed even more warnings

Andrei Pelinescu-Onciul преди 23 години
родител
ревизия
9c61e9f9e3
променени са 3 файла, в които са добавени 43 реда и са изтрити 6 реда
  1. 35 1
      Makefile.defs
  2. 7 4
      udp_server.c
  3. 1 1
      ut.h

+ 35 - 1
Makefile.defs

@@ -8,7 +8,7 @@
 VERSION = 0
 VERSION = 0
 PATCHLEVEL = 8
 PATCHLEVEL = 8
 SUBLEVEL = 7
 SUBLEVEL = 7
-EXTRAVERSION = -3-suncc
+EXTRAVERSION = -4-icc
 
 
 RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 OS = $(shell uname -s)
 OS = $(shell uname -s)
@@ -141,12 +141,25 @@ ifneq (, $(findstring Sun, $(CC_LONGVER)))
 	MKDEP=$(CC) -xM1 $(DEFS)
 	MKDEP=$(CC) -xM1 $(DEFS)
 endif
 endif
 
 
+ifneq (, $(findstring Intel(R) C++ Compiler, $(CC_LONGVER)))
+	# very nice: gcc compatible
+	CC_NAME=icc
+	CC_FULLVER=$(shell echo "$(CC_LONGVER)"|head -1| \
+					sed -e 's/.*Version \([0-9]\.[0-9]\.[0-9]*\).*/\1/g' )
+	CC_SHORTVER=$(shell echo "$(CC_FULLVER)" | cut -d. -f1,2 )
+	CC_VER=$(CC) $(CC_FULLVER)
+	MKDEP=$(CC) -MM $(DEFS)
+endif
+
+
 ifeq (,$(CC_NAME))
 ifeq (,$(CC_NAME))
 #not found
 #not found
 	CC_NAME=$(CC)
 	CC_NAME=$(CC)
 	CC_SHORTVER=unknown
 	CC_SHORTVER=unknown
 	CC_VER=unknown
 	CC_VER=unknown
 	MKDEP=gcc -MM $(DEFS)
 	MKDEP=gcc -MM $(DEFS)
+$(warning	Unknown compiler $(CC)\; supported compilers: \
+			gcc, sun cc, intel icc )
 endif
 endif
 
 
 
 
@@ -181,8 +194,17 @@ endif			# CC_SHORTVER, 2.9x
 endif			# CC_SHORTVER, 3.0
 endif			# CC_SHORTVER, 3.0
 
 
 else		# CC_NAME, gcc
 else		# CC_NAME, gcc
+ifeq		($(CC_NAME), icc)
+			CFLAGS=-O3  -ipo -ipo_obj -unroll  $(PROFILE) \
+					 -tpp6 -xK  #-openmp  #optimize for PIII 
+				# -prefetch doesn't seem to work
+				#( ty to inline acroos files, unroll loops,prefetch,
+				# optimize for PIII, use PIII instructions & vect.,
+				# mutlithread loops)
+else
 				#other compilers
 				#other compilers
 $(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
 $(error 			Unsupported compiler ($(CC):$(CC_NAME)), try gcc)
+endif		#CC_NAME, icc
 endif		#CC_NAME, gcc
 endif		#CC_NAME, gcc
 endif	#ARCH, i386
 endif	#ARCH, i386
 
 
@@ -236,6 +258,10 @@ ifeq	($(CC_NAME), gcc)
 	#gcc and maybe others
 	#gcc and maybe others
 	LDFLAGS+=-Wl,-O2 -Wl,-E $(PROFILE) 
 	LDFLAGS+=-Wl,-O2 -Wl,-E $(PROFILE) 
 endif
 endif
+ifeq	($(CC_NAME), icc)
+	#gcc and maybe others
+	LDFLAGS+=-Wl,-O2 -Wl,-E $(PROFILE) 
+endif
 ifeq	($(CC_NAME), suncc)
 ifeq	($(CC_NAME), suncc)
 	LDFLAGS+=-xO5 $(PROFILE)
 	LDFLAGS+=-xO5 $(PROFILE)
 endif
 endif
@@ -247,6 +273,10 @@ ifeq	($(CC_NAME), gcc)
 		CFLAGS=-g -Wcast-align -Winline $(PROFILE)
 		CFLAGS=-g -Wcast-align -Winline $(PROFILE)
 		LDFLAGS+=-g -Wl,-E $(PROFILE)
 		LDFLAGS+=-g -Wl,-E $(PROFILE)
 endif
 endif
+ifeq	($(CC_NAME), icc)
+		CFLAGS=-g  $(PROFILE)
+		LDFLAGS+=-g -Wl,-E $(PROFILE)
+endif
 ifeq	($(CC_NAME), suncc)
 ifeq	($(CC_NAME), suncc)
 		CFLAGS= -g $(PROFILE)
 		CFLAGS= -g $(PROFILE)
 		LDFLAGS+=-g $(PROFILE)
 		LDFLAGS+=-g $(PROFILE)
@@ -260,6 +290,10 @@ ifeq	($(CC_NAME), gcc)
 MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
 MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
 MOD_LDFLAGS=-shared $(LDFLAGS)
 MOD_LDFLAGS=-shared $(LDFLAGS)
 endif
 endif
+ifeq	($(CC_NAME), icc)
+MOD_CFLAGS=-Kpic $(CFLAGS)
+MOD_LDFLAGS=-shared $(LDFLAGS)
+endif
 ifeq	($(CC_NAME), suncc)
 ifeq	($(CC_NAME), suncc)
 MOD_CFLAGS=-Kpic  $(CFLAGS)
 MOD_CFLAGS=-Kpic  $(CFLAGS)
 MOD_LDFLAGS=-G $(LDFLAGS)
 MOD_LDFLAGS=-G $(LDFLAGS)

+ 7 - 4
udp_server.c

@@ -26,9 +26,12 @@ int udp_sock;
 int probe_max_receive_buffer( int udp_sock )
 int probe_max_receive_buffer( int udp_sock )
 {
 {
 	int optval, optvallen;
 	int optval, optvallen;
-	int ioptval, ioptvallen;
-	int foptval, foptvallen;
-	int voptval, voptvallen;
+	int ioptval;
+	unsigned int ioptvallen;
+	int foptval;
+	unsigned int foptvallen;
+	int voptval;
+	unsigned int voptvallen;
 	int i;
 	int i;
 	int phase=0;
 	int phase=0;
 
 
@@ -158,7 +161,7 @@ int udp_rcv_loop()
 #endif
 #endif
 
 
 	struct sockaddr_in* from;
 	struct sockaddr_in* from;
-	int fromlen;
+	unsigned int fromlen;
 
 
 
 
 	from=(struct sockaddr_in*) malloc(sizeof(struct sockaddr_in));
 	from=(struct sockaddr_in*) malloc(sizeof(struct sockaddr_in));

+ 1 - 1
ut.h

@@ -23,7 +23,7 @@
 	}while(0)
 	}while(0)
 
 
 #define trim_r( _mystr ) \
 #define trim_r( _mystr ) \
-	do{	static _c; \
+	do{	static char _c; \
 		while( ((_mystr).len) && ((_c=(_mystr).s[(_mystr).len-1]))==0 || _c=='\r' || _c=='\n') \
 		while( ((_mystr).len) && ((_c=(_mystr).s[(_mystr).len-1]))==0 || _c=='\r' || _c=='\n') \
 			(_mystr).len--; \
 			(_mystr).len--; \
 	}while(0)
 	}while(0)