changeset 439:f257bd255545

Next round of wrapper cleanups: give C++ includes a sane path, prefix environment variables with WRAPPER_, don't set pointers to a char '\0' value.
author Rob Landley <rob@landley.net>
date Sat, 01 Nov 2008 02:09:17 -0500
parents e9f3011ec40d
children 59fe5a276991
files sources/toys/gcc-uClibc.c
diffstat 1 files changed, 17 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/sources/toys/gcc-uClibc.c	Fri Oct 31 17:52:42 2008 -0500
+++ b/sources/toys/gcc-uClibc.c	Sat Nov 01 02:09:17 2008 -0500
@@ -104,7 +104,7 @@
 	char *dlstr, *incstr, *devprefix, *libstr;
 	char *cc, *rpath_link, *rpath, *uClibc_inc, *our_lib_path[2];
 	char *crt0_path, *crtbegin_path[2], *crtend_path[2];
-	char *debug_wrapper=getenv("DEBUG_WRAPPER");
+	char *debug_wrapper=getenv("WRAPPER_DEBUG");
 
 	// For C++
 
@@ -147,10 +147,9 @@
 
 	// What's the name of the C compiler we're wrapping?  (It may have a
 	// cross-prefix.)
-	cc = getenv("UCLIBC_CC");
+	cc = getenv("WRAPPER_CC");
 	if (!cc) cc = GCC_UNWRAPPED_NAME;
 
-	
 	// Check end of name, since there could be a cross-prefix on the thing
 	len = strlen(argv[0]);
 	if (!strcmp(argv[0]+len-2, "ld")) {
@@ -168,7 +167,7 @@
 		use_nostdinc_plus = 1;
 	}
 
-	devprefix = getenv("UCLIBC_DEVEL_PREFIX");
+	devprefix = getenv("WRAPPER_TOPDIR");
 	if (!devprefix) {
 		devprefix = topdir;
 	}
@@ -195,11 +194,11 @@
 
 	liblen = 0;
 	libraries = alloca(sizeof(char*) * (argc));
-	libraries[liblen] = '\0';
+	libraries[liblen] = 0;
 
 	lplen = 0;
 	libpath = alloca(sizeof(char*) * (argc));
-	libpath[lplen] = '\0';
+	libpath[lplen] = 0;
 
 	// Parse the incoming gcc arguments.
 
@@ -217,19 +216,19 @@
 
 				case 'L': 		/* library path */
 					libpath[lplen++] = argv[i];
-					libpath[lplen] = '\0';
-					if (argv[i][2] == 0) {
-						argv[i] = '\0';
+					libpath[lplen] = 0;
+					if (!argv[i][2]) {
+						argv[i] = 0;
 						libpath[lplen++] = argv[++i];
-						libpath[lplen] = '\0';
+						libpath[lplen] = 0;
 					}
-					argv[i] = '\0';
+					argv[i] = 0;
 					break;
 
 				case 'l': 		/* library */
 					libraries[liblen++] = argv[i];
-					libraries[liblen] = '\0';
-					argv[i] = '\0';
+					libraries[liblen] = 0;
+					argv[i] = 0;
 					break;
 
 				case 'v':		/* verbose */
@@ -246,7 +245,7 @@
 						use_start = 0;
 					} else if (strcmp(nodefaultlibs,argv[i]) == 0) {
 						use_stdlib = 0;
-						argv[i] = '\0';
+						argv[i] = 0;
 					} else if (strcmp(nostdlib,argv[i]) == 0) {
 						ctor_dtor = 0;
 						use_start = 0;
@@ -345,7 +344,7 @@
 						goto wow_this_sucks;
 					} else if (strstr(argv[i]+1,static_linking) != NULL) {
 						use_static_linking = 1;
-						argv[i]='\0';
+						argv[i] = 0;
 					} else if (!strcmp("--version",argv[i])) {
 						printf("uClibc ");
 						fflush(stdout);
@@ -359,12 +358,12 @@
 						argv[i] = 0;
 					} else if (strcmp("--uclibc-no-ctors",argv[i]) == 0) {
 						ctor_dtor = 0;
-						argv[i]='\0';
+						argv[i] = 0;
 					}
 					break;
 			}
 		} else {				/* assume it is an existing source file */
-			char *p = strchr (argv[i], '\0') - 2;
+			char *p = argv[i] + strlen(argv[i]) - 2;
 			if (p > argv[i] && sawM && (!strcmp(p, ".o") || !strcmp(p, ".a")))
 				  sawdotoa = 1;
 			++source_count;
@@ -414,15 +413,7 @@
 				gcc_argv[argcnt++] = nostdinc_plus;
 			}
 			gcc_argv[argcnt++] = "-isystem";
-			asprintf(gcc_argv+(argcnt++), "%sc++/4.1.1", uClibc_inc);
-			//char *cppinc;
-			//#define TARGET_DIR "gcc/armv4l-unknown-linux/gnu/4.1.1"
-			//xstrcat(&cppinc, uClibc_inc, "c++/4.1.1/" TARGET_DIR, NULL);
-			//gcc_argv[argcnt++] = "-isystem";
-			//gcc_argv[argcnt++] = cppinc;
-			//xstrcat(&cppinc, uClibc_inc, "c++/4.1.1", NULL);
-			//gcc_argv[argcnt++] = "-isystem";
-			//gcc_argv[argcnt++] = cppinc;
+			asprintf(gcc_argv+(argcnt++), "%sc++", uClibc_inc);
 		}
 
 		gcc_argv[argcnt++] = "-isystem";