Revision: 127823 Author: dpatel Date: 2007-05-30 11:12:10 -0700 (Wed, 30 May 2007)
Log Message: ----------- Set __APPLE_CC__ value to base gcc build number instead of llvm build number. Modified Paths: -------------- apple-local/branches/llvm/gcc/c-cppbuiltin.c apple-local/branches/llvm/gcc/version.c Modified: apple-local/branches/llvm/gcc/c-cppbuiltin.c =================================================================== --- apple-local/branches/llvm/gcc/c-cppbuiltin.c 2007-05-30 15:40:29 UTC (rev 127822) +++ apple-local/branches/llvm/gcc/c-cppbuiltin.c 2007-05-30 18:12:10 UTC (rev 127823) @@ -329,24 +329,37 @@ /* APPLE LOCAL begin LLVM version number */ #else #ifdef CONFIG_DARWIN_H + /* This chunk of code defines __APPLE_CC__ from the version + string. It expects to see a substring of the version string of + the form "build NNNN)", where each N is a digit, and the first + N is nonzero (there can be 4 or 5 digits). It will abort() if + these conditions are not met, since that usually means that + someone's broken the version string. */ + /* LLVM builds multiple different ways. For example, for official releases, the version number is something like "1.8". We don't want to disable __APPLE_CC__ entirely, as this breaks system headers. If the build number - is not a 4-digit code, just define __APPLE_CC__ to 1. + is not a 4-digit code, just define __APPLE_CC__ to 1 instead of abort()ing + as per above comment. */ { - char Version[] = LLVM_VERSION_INFO; - if (! ISDIGIT (Version[0]) - || ! ISDIGIT (Version[1]) - || ! ISDIGIT (Version[2]) - || ! ISDIGIT (Version[3]) - || Version[4] != 0) { - Version[0] = '1'; - Version[1] = '\0'; - builtin_define_with_value_n ("__APPLE_CC__", Version, 1); - } else { - builtin_define_with_value_n ("__APPLE_CC__", Version, 4); - } + const char *vt; + + vt = strstr (version_string, "build "); + if (vt == NULL) + builtin_define_with_value_n ("__APPLE_CC__", "1", 1); + + vt += strlen ("build "); + if (! ISDIGIT (*vt)) + builtin_define_with_value_n ("__APPLE_CC__", "1", 1); + for (q = vt; *q != 0 && ISDIGIT (*q); q++) + ; + if (q == vt || *q != ')') + builtin_define_with_value_n ("__APPLE_CC__", "1", 1); + + if ((q - vt != 4 && q - vt != 5) || *vt == '0') + builtin_define_with_value_n ("__APPLE_CC__", "1", 1); + builtin_define_with_value_n ("__APPLE_CC__", vt, q - vt); } #endif /*CONFIG_DARWIN_H*/ #endif /*LLVM_VERSION_INFO*/ Modified: apple-local/branches/llvm/gcc/version.c =================================================================== --- apple-local/branches/llvm/gcc/version.c 2007-05-30 15:40:29 UTC (rev 127822) +++ apple-local/branches/llvm/gcc/version.c 2007-05-30 18:12:10 UTC (rev 127823) @@ -16,17 +16,15 @@ to get version number string. Do not use new line. */ -const char version_string[] = "4.0.1 " +const char version_string[] = "4.0.1 (Apple Computer, Inc. build 5449)" #ifdef ENABLE_LLVM - "LLVM " -#endif - "(Apple Computer, Inc. build " + "(LLVM build " #ifdef LLVM_VERSION_INFO LLVM_VERSION_INFO -#else - "5449" #endif - ")"; + ")" +#endif + ; /* APPLE LOCAL end Apple version */ /* This is the location of the online document giving instructions for _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits