[uClibc-cvs] uClibc/extra/gcc-uClibc gcc-uClibc.c,1.63,1.64

Erik Andersen andersen at uclibc.org
Thu Oct 23 07:10:54 UTC 2003


Update of /var/cvs/uClibc/extra/gcc-uClibc
In directory winder:/tmp/cvs-serv29886/extra/gcc-uClibc

Modified Files:
	gcc-uClibc.c 
Log Message:
Peter Kjellerstedt writes:

The attached patch performs a clean up of
extra/gcc-uClibc/gcc-uClibc.c:

* Use NULL for pointers and '\0' for characters;
  not the opposite...
* Fixed an (assumed) segv if --uclibc-cc was used.
* Skip the argument to -x so it isn't considered
  to be a source file.
* Simplified the loop in xstrcat().
* A little white space clean up.

//Peter



Index: gcc-uClibc.c
===================================================================
RCS file: /var/cvs/uClibc/extra/gcc-uClibc/gcc-uClibc.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- gcc-uClibc.c	15 Oct 2003 09:24:35 -0000	1.63
+++ gcc-uClibc.c	23 Oct 2003 07:10:50 -0000	1.64
@@ -133,11 +133,11 @@
 			if (*last != '/') {
 				goto DOT;
 			}
-			if ((*++last == '/') && (last[1] == 0)) {
+			if ((*++last == '/') && (last[1] == '\0')) {
 				++last;
 			}
 		}
-		*last = 0;
+		*last = '\0';
 		return path;
 	}
 DOT:
@@ -165,9 +165,7 @@
 	va_start(p, string);
 	*string = xmalloc(BUFSIZ);
 	**string = '\0';
-	while(1) {
-		if (!(c = va_arg(p, const char *)))
-			break;
+	while ((c = va_arg(p, const char *))) {
 		strcat(*string, c); 
 	}
 	va_end(p);
@@ -189,7 +187,7 @@
 	char *devprefix;
 	char *builddir;
 	char *libstr;
-	char *build_dlstr = 0;
+	char *build_dlstr = NULL;
 	char *cc;
 	char *ep;
 	char *rpath_link[2];
@@ -213,8 +211,8 @@
 	char *gcrt1_path[2];
 #endif
 
-	cc     = getenv("UCLIBC_CC");
-	if (cc==NULL) {
+	cc = getenv("UCLIBC_CC");
+	if (cc == NULL) {
 		cc = GCC_BIN;
 #ifdef __UCLIBC_CTOR_DTOR__
 		findlibgcc = 0;
@@ -232,13 +230,13 @@
 	 * like /opt/c++/gcc-3.1/bin/arm-linux-g++ or some similar 
 	 * perversion...  */
 	len = strlen(application_name);
-	if ((strcmp(application_name+len-3, "g++")==0) ||
-			(strcmp(application_name+len-3, "c++")==0)) {
+	if ((strcmp(application_name+len-3, "g++") == 0) ||
+	    (strcmp(application_name+len-3, "c++") == 0)) {
 		len = strlen(cc);
-		if (strcmp(cc+len-3, "gcc")==0) {
+		if (strcmp(cc+len-3, "gcc") == 0) {
 			cpp = strdup(cc);
-			cpp[len-1]='+';
-			cpp[len-2]='+';
+			cpp[len-1] = '+';
+			cpp[len-2] = '+';
 		}
 		cplusplus = 1;
 		use_nostdinc_plus = 1;
@@ -263,11 +261,11 @@
 		ep = "";
 	}
 
-	if (strstr(ep,"build") != 0) {
+	if (strstr(ep,"build") != NULL) {
 		use_build_dir = 1;
 	}
 
-	if (strstr(ep,"rpath") != 0) {
+	if (strstr(ep,"rpath") != NULL) {
 		use_rpath = 1;
 	}
 
@@ -310,14 +308,14 @@
 
 	m = 0;
 	libraries = __builtin_alloca(sizeof(char*) * (argc));
-	libraries[m] = '\0';
+	libraries[m] = NULL;
 
 	n = 0;
 	libpath = __builtin_alloca(sizeof(char*) * (argc));
-	libpath[n] = '\0';
+	libpath[n] = NULL;
 
 	for ( i = 1 ; i < argc ; i++ ) {
-		if (argv[i][0] == '-' && argv[i][1] != 0) { /* option */
+		if (argv[i][0] == '-' && argv[i][1] != '\0') { /* option */
 			switch (argv[i][1]) {
 				case 'c':		/* compile or assemble */
 				case 'S':		/* generate assembler code */
@@ -327,38 +325,39 @@
 					break;
 				case 'L': 		/* library */
 					libpath[n++] = argv[i];
-					libpath[n] = '\0';
-					if (argv[i][2] == 0) {
-						argv[i] = '\0';
+					libpath[n] = NULL;
+					if (argv[i][2] == '\0') {
+						argv[i] = NULL;
 						libpath[n++] = argv[++i];
-						libpath[n] = '\0';
+						libpath[n] = NULL;
 					}
-					argv[i] = '\0';
+					argv[i] = NULL;
 					break;
 				case 'l': 		/* library */
 					libraries[m++] = argv[i];
-					libraries[m] = '\0';
-					argv[i] = '\0';
+					libraries[m] = NULL;
+					argv[i] = NULL;
 					break;
 				case 'x': 		/* Set target language */
 					minusx = 1;
+					i++;
 					break;
 				case 'v':		/* verbose */
-					if (argv[i][2] == 0) verbose = 1;
+					if (argv[i][2] == '\0') verbose = 1;
 					printf("Invoked as %s\n", argv[0]);
 					break;
 				case 'n':
-					if (strcmp(nostdinc,argv[i]) == 0) {
+					if (strcmp(nostdinc, argv[i]) == 0) {
 						use_stdinc = 0;
-					} else if (strcmp(nostartfiles,argv[i]) == 0) {
+					} else if (strcmp(nostartfiles, argv[i]) == 0) {
 #ifdef __UCLIBC_CTOR_DTOR__
 						ctor_dtor = 0;
 #endif
 						use_start = 0;
-					} else if (strcmp(nodefaultlibs,argv[i]) == 0) {
+					} else if (strcmp(nodefaultlibs, argv[i]) == 0) {
 						use_stdlib = 0;
-						argv[i] = '\0';
-					} else if (strcmp(nostdlib,argv[i]) == 0) {
+						argv[i] = NULL;
+					} else if (strcmp(nostdlib, argv[i]) == 0) {
 #ifdef __UCLIBC_CTOR_DTOR__
 						ctor_dtor = 0;
 #endif
@@ -366,80 +365,80 @@
 						use_stdlib = 0;
 					} 
 #ifdef __UCLIBC_CTOR_DTOR__
-					else if (strcmp(nostdinc_plus,argv[i]) == 0) {
-						if (cplusplus==1) {
+					else if (strcmp(nostdinc_plus, argv[i]) == 0) {
+						if (cplusplus) {
 							use_nostdinc_plus = 0;
 						}
 					}
 #endif
 					break;
 				case 's':
-					if (strstr(argv[i],static_linking) != NULL) {
+					if (strstr(argv[i], static_linking) != NULL) {
 						use_static_linking = 1;
 					}
-					if (strcmp("-shared",argv[i]) == 0) {
+					if (strcmp("-shared", argv[i]) == 0) {
 						use_start = 0;
 						use_pic = 1;
 					}
 					break;
 				case 'W':		/* -static could be passed directly to ld */
-					if (strncmp("-Wl,",argv[i],4) == 0) {
-						if (strstr(argv[i],static_linking) != 0) {
+					if (strncmp("-Wl,", argv[i], 4) == 0) {
+						if (strstr(argv[i], static_linking) != NULL) {
 							use_static_linking = 1;
 						}
-						if (strstr(argv[i],"--dynamic-linker") != 0) {
-							dlstr = 0;
+						if (strstr(argv[i], "--dynamic-linker") != NULL) {
+							dlstr = NULL;
 						}
 					}
 					break;
 #ifdef __UCLIBC_PROFILING__
 				case 'p':
-					if (strcmp("-pg",argv[i]) == 0) {
+					if (strcmp("-pg", argv[i]) == 0) {
 						profile = 1;
 					}
 					break;
 #endif
 				case 'f':
 					/* Check if we are doing PIC */
-					if (strcmp("-fPIC",argv[i]) == 0) {
+					if (strcmp("-fPIC", argv[i]) == 0) {
 						use_pic = 1;
-					} else if (strcmp("-fpic",argv[i]) == 0) {
+					} else if (strcmp("-fpic", argv[i]) == 0) {
 						use_pic = 1;
 					} 
 #ifdef __UCLIBC_PROFILING__
-					else if (strcmp("-fprofile-arcs",argv[i]) == 0) {
+					else if (strcmp("-fprofile-arcs", argv[i]) == 0) {
 						profile = 1;
 					}
 #endif
 					break;
 
 				case '-':
-					if (strstr(argv[i]+1,static_linking) != NULL) {
+					if (strstr(argv[i]+1, static_linking) != NULL) {
 						use_static_linking = 1;
-						argv[i]='\0';
-					} else if (strcmp("--uclibc-use-build-dir",argv[i]) == 0) {
+						argv[i] = NULL;
+					} else if (strcmp("--uclibc-use-build-dir", argv[i]) == 0) {
 						use_build_dir = 1;
-						argv[i]='\0';
-					} else if (strcmp("--uclibc-use-rpath",argv[i]) == 0) {
+						argv[i] = NULL;
+					} else if (strcmp("--uclibc-use-rpath", argv[i]) == 0) {
 						use_rpath = 1;
-						argv[i]='\0';
+						argv[i] = NULL;
 					} else if (strcmp ("--uclibc-cc", argv[i]) == 0 && argv[i + 1]) {
 						cc = argv[i + 1];
-						argv[i] = 0;
-						argv[i + 1] = 0;
+						argv[i++] = NULL;
+						argv[i] = NULL;
 					} else if (strncmp ("--uclibc-cc=", argv[i], 12) == 0) {
 						cc = argv[i] + 12;
-						argv[i] = 0;
+						argv[i] = NULL;
 					}
 #ifdef __UCLIBC_CTOR_DTOR__
 					else if (strcmp("--uclibc-no-ctors",argv[i]) == 0) {
 						ctor_dtor = 0;
-						argv[i]='\0';
+						argv[i] = NULL;
 					}
 #endif
 					break;
 			}
-		} else if (argv[i][0] == '-' && argv[i][1] == 0){
+		} else if (argv[i][0] == '-' && argv[i][1] == '\0') {
 			/* Reading code from stdin - crazy eh? */
 			++source_count;
 		} else {				/* assume it is an existing source file */
@@ -454,8 +453,8 @@
 #ifdef __UCLIBC_CTOR_DTOR__
 	if (ctor_dtor) {
 		struct stat statbuf;
-		if (findlibgcc==1 || stat(LIBGCC_DIR, &statbuf)!=0 || 
-				!S_ISDIR(statbuf.st_mode))
+		if (findlibgcc || stat(LIBGCC_DIR, &statbuf) < 0 ||
+		    !S_ISDIR(statbuf.st_mode))
 		{
 			/* Bummer, gcc is hiding from us. This is going
 			 * to really slow things down... bummer.  */
@@ -477,7 +476,7 @@
 				close(gcc_pipe[1]);
 				_exit(EXIT_FAILURE);
 			}
-			wpid=0;
+			wpid = 0;
 			while (wpid != pid) {
 				wpid = wait(&status);
 			}
@@ -521,13 +520,11 @@
 		gcc_argv[i++] = cc;
 
 	for ( j = 1 ; j < argc ; j++ ) {
-		if (argv[j]=='\0') {
-			continue;
-		} else {
+		if (argv[j] != NULL) {
 			gcc_argument[k++] = argv[j];
-			gcc_argument[k] = '\0';
 		}
 	}
+	gcc_argument[k] = NULL;
 
 	if (linking && source_count) {
 #if defined __HAVE_ELF__ && ! defined __UCLIBC_HAS_MMU__
@@ -551,7 +548,7 @@
 			if (libpath[l]) gcc_argv[i++] = libpath[l];
 		}
 		gcc_argv[i++] = rpath_link[use_build_dir]; /* just to be safe */
-		if( libstr )
+		if (libstr)
 			gcc_argv[i++] = libstr;
 		gcc_argv[i++] = our_lib_path[use_build_dir];
 		if (!use_build_dir) {
@@ -578,7 +575,7 @@
 		gcc_argv[i++] = uClibc_inc[use_build_dir];
 		gcc_argv[i++] = "-iwithprefix";
 		gcc_argv[i++] = "include";
-		if( incstr )
+		if (incstr)
 			gcc_argv[i++] = incstr;
 	}
 
@@ -620,8 +617,8 @@
 		if (use_stdlib) {
 #ifdef __UCLIBC_CTOR_DTOR__
 			if (cplusplus) {
-				gcc_argv[ i++ ] = "-lstdc++";
-				gcc_argv[ i++ ] = "-lm";
+				gcc_argv[i++] = "-lstdc++";
+				gcc_argv[i++] = "-lm";
 			}
 #endif
 			gcc_argv[i++] = "-lc";
@@ -630,9 +627,9 @@
 		}
 #ifdef __UCLIBC_CTOR_DTOR__
 		if (ctor_dtor) {
-			if (minusx != 0){
-				gcc_argv[i ++] = "-x";
-				gcc_argv[i ++] = "none";
+			if (minusx) {
+				gcc_argv[i++] = "-x";
+				gcc_argv[i++] = "none";
 			}
 			if (use_pic) {
 				gcc_argv[i++] = crtend_path[1];




More information about the uClibc-cvs mailing list