[llvm-commits] [llvm-gcc-4.2] r56071 - /llvm-gcc-4.2/trunk/gcc/c-incpath.c

Nick Lewycky nicholas at mxc.ca
Wed Sep 10 23:16:18 PDT 2008


Hi Devang, this broke the build on Linux. I've backed it out.

Devang Patel wrote:
> Author: dpatel
> Date: Wed Sep 10 16:48:02 2008
> New Revision: 56071
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=56071&view=rev
> Log:
> "Fix" header search path while using Mac OS X 10.5 sdk.
> More info. in the comments.
> 
> Modified:
>     llvm-gcc-4.2/trunk/gcc/c-incpath.c
> 
> Modified: llvm-gcc-4.2/trunk/gcc/c-incpath.c
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-incpath.c?rev=56071&r1=56070&r2=56071&view=diff
> 
> ==============================================================================
> --- llvm-gcc-4.2/trunk/gcc/c-incpath.c (original)
> +++ llvm-gcc-4.2/trunk/gcc/c-incpath.c Wed Sep 10 16:48:02 2008
> @@ -33,6 +33,9 @@
>  /* APPLE LOCAL headermaps 3871393 */ 
>  #include "errors.h"
>  
> +/* LLVM LOCAL fix MacOSX 10.5 SDK */
> +extern char * mempcpy (char *dst, const char *src, size_t len);
> +
>  /* Windows does not natively support inodes, and neither does MSDOS.
>     Cygwin's emulation can generate non-unique inodes, so don't use it.
>     VMS has non-numeric inodes.  */
> @@ -131,6 +134,8 @@
>  {
>    const struct default_include *p;
>    size_t len;
> +  /* LLVM LOCAL begin fix MacOSX 10.5 SDK */
> +  bool SDK10_5 = false;
>  
>    if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
>      {
> @@ -157,6 +162,9 @@
>  	}
>      }
>  
> +  /* LLVM LOCAL begin fix MacOSX 10.5 SDK */
> +  if (sysroot && strstr(sysroot, "MacOSX10.5.sdk") != NULL) 
> +    SDK10_5 = true;
>    for (p = cpp_include_defaults; p->fname; p++)
>      {
>        if (!p->cplusplus || cxx_stdinc)
> @@ -164,8 +172,32 @@
>  	  char *str;
>  
>  	  /* Should this directory start with the sysroot?  */
> -	  if (sysroot && p->add_sysroot)
> -	    str = concat (sysroot, p->fname, NULL);
> +	  if (sysroot && p->add_sysroot) {
> +            if (SDK10_5) {
> +              char *d = strstr(p->fname, "apple-darwin");
> +              if (d) {
> +                /* Released 10.5 SDK uses header paths that include OS version
> +                   number, for example 9 in 
> +                   .../MacOSX10.5.sdk/.../lib/gcc/i686-apple-darwin9/4.2.1/include
> +                   However the 9 is constructed based on the host OS version on
> +                   which the compiler is built. This means, the compiler will
> +                   not be able to use 10.5 SDK unless it is built on 10.5 system.
> +                   Fix header path here to make it work.
> +
> +                   The p->fname includes "apple-darwinXYZ/" substring. Replace
> +                   this substring with "apple-darwin9/". */
> +                char *str1;
> +                str = XNEWVEC(char, strlen(sysroot) + strlen(p->fname) + 2);
> +                str1 = mempcpy(str, sysroot, strlen(sysroot));
> +                str1 = mempcpy(str1, p->fname, d - p->fname);
> +                str1 = mempcpy(str1, "apple-darwin9", strlen("apple-darwin9"));
> +                d = strchr(d, '/');
> +                str1 = mempcpy(str1, d, strlen(d));
> +              } else
> +                str = concat (sysroot, p->fname, NULL);
> +            } else
> +              str = concat (sysroot, p->fname, NULL);
> +          }
>  	  else
>  	    str = update_path (p->fname, p->component);
>  
> @@ -175,6 +207,7 @@
>  	  add_path (str, SYSTEM, p->cxx_aware, false);
>  	}
>      }
> +  /* LLVM LOCAL end fix MacOSX 10.5 SDK */
>  }
>  
>  
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 




More information about the llvm-commits mailing list