diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-10-23 07:10:50 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-10-23 07:10:50 +0000 |
commit | 39ae188998b11650f5ca959eb86bc5bb5bc0bad2 (patch) | |
tree | fe822cdedd777eb152979a22df078e4b023032ca | |
parent | 2427f9a510ea4b155657fde16f00299954b0218a (diff) |
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
-rw-r--r-- | extra/gcc-uClibc/gcc-uClibc.c | 133 |
1 files changed, 65 insertions, 68 deletions
diff --git a/extra/gcc-uClibc/gcc-uClibc.c b/extra/gcc-uClibc/gcc-uClibc.c index b08613006..e6566a143 100644 --- a/extra/gcc-uClibc/gcc-uClibc.c +++ b/extra/gcc-uClibc/gcc-uClibc.c @@ -133,11 +133,11 @@ LOOP: 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 @@ void xstrcat(char **string, ...) 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) * 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) 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 @@ int main(int argc, char **argv) #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 @@ int main(int argc, char **argv) close(gcc_pipe[1]); _exit(EXIT_FAILURE); } - wpid=0; + wpid = 0; while (wpid != pid) { wpid = wait(&status); } @@ -521,13 +520,11 @@ crash_n_burn: 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 @@ crash_n_burn: 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 @@ crash_n_burn: 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 @@ crash_n_burn: 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 @@ crash_n_burn: } #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]; |