gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
authorDevang Patel <dpatel@apple.com>
Wed, 24 Nov 2004 17:47:32 +0000 (09:47 -0800)
committerDevang Patel <dpatel@gcc.gnu.org>
Wed, 24 Nov 2004 17:47:32 +0000 (09:47 -0800)
        PR/18555
        * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
        * config/darwin-c.c (darwin_register_frameworks): Use sysroot.

        testsuite
        * gcc.dg/cpp/isysroot-1.c: New test.
        * gcc.dg/cpp/usr/include/stdio.h: New file.
        * gcc.dg/cpp/isysroot-2.c: New test.
        * gcc.dg/cpp/System/Library/Framework/Carbon.framework/Headers/Carbon.h:
        New file.

From-SVN: r91178

gcc/ChangeLog
gcc/config/darwin-c.c
gcc/gcc.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h [new file with mode: 0644]
gcc/testsuite/gcc.dg/cpp/isysroot-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/cpp/isysroot-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h [new file with mode: 0644]

index a8abc40bab735e2b7bc59ee4d8ab2a81b9684660..62854cdae1c78abc2e318ad536370acffb1ef904 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-24  Devang Patel  <dpatel@apple.com>
+
+       PR/18555
+       * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
+       * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
+
 2004-11-24  Devang Patel  <dpatel@apple.com>
 
        * gcc.c (process_command): Supply -v to linker.
index 167b7958c84d231a0cf0ead4d2917d79d3f767d2..feb26f185d297721401cb8b1f7894a4aa63963ba 100644 (file)
@@ -468,7 +468,7 @@ darwin_register_objc_includes (const char *sysroot, const char *iprefix,
    frameworks had been registered.  */
 
 void
-darwin_register_frameworks (const char *sysroot ATTRIBUTE_UNUSED,
+darwin_register_frameworks (const char *sysroot,
                            const char *iprefix ATTRIBUTE_UNUSED, int stdinc)
 {
   if (stdinc)
@@ -478,8 +478,13 @@ darwin_register_frameworks (const char *sysroot ATTRIBUTE_UNUSED,
       /* Setup default search path for frameworks.  */
       for (i=0; i<sizeof (framework_defaults)/sizeof(const char *); ++i)
        {
+         char *str;
+         if (sysroot)
+           str = concat (sysroot, xstrdup (framework_defaults [i]), NULL);
+         else
+           str = xstrdup (framework_defaults[i]);
          /* System Framework headers are cxx aware.  */
-         add_system_framework_path (xstrdup (framework_defaults[i]));
+         add_system_framework_path (str);
        }
     }
 
index d29af91001cbbdf6009ed7fb3997f1f35d1aa0c2..6c3c9829cbcee4afe15de6c15a46ad0b3ed036f1 100644 (file)
--- a/gcc/gcc.h
+++ b/gcc/gcc.h
@@ -49,6 +49,7 @@ struct spec_function
   || !strcmp (STR, "idirafter") || !strcmp (STR, "iprefix") \
   || !strcmp (STR, "iwithprefix") || !strcmp (STR, "iwithprefixbefore") \
   || !strcmp (STR, "iquote") || !strcmp (STR, "isystem") \
+  || !strcmp (STR, "isysroot") \
   || !strcmp (STR, "-param") || !strcmp (STR, "specs") \
   || !strcmp (STR, "MF") || !strcmp (STR, "MT") || !strcmp (STR, "MQ"))
 
index 6a98976fcf6c7e3ea80af6eaf1154e5fcab94df0..cb68c281d2283567dacf44d17bf8353a30e3cb99 100644 (file)
@@ -1,3 +1,12 @@
+2004-11-24  Devang Patel  <dpatel@apple.com>
+
+       PR/18555
+       * gcc.dg/cpp/isysroot-1.c: New test.
+       * gcc.dg/cpp/usr/include/stdio.h: New file.
+       * gcc.dg/cpp/isysroot-2.c: New test.
+       * gcc.dg/cpp/System/Library/Framework/Carbon.framework/Headers/Carbon.h:
+       New file.
+
 2004-11-24  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/8929
diff --git a/gcc/testsuite/gcc.dg/cpp/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h b/gcc/testsuite/gcc.dg/cpp/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h
new file mode 100644 (file)
index 0000000..4259c37
--- /dev/null
@@ -0,0 +1,4 @@
+/* Used by gcc.dg/cpp/isysroot-2.c to test isysroot.  */
+void foo()
+{
+}
diff --git a/gcc/testsuite/gcc.dg/cpp/isysroot-1.c b/gcc/testsuite/gcc.dg/cpp/isysroot-1.c
new file mode 100644 (file)
index 0000000..bfbf255
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-options "-isysroot ${srcdir}/gcc.dg/cpp" } */
+/* { dg-do compile } */
+
+#include <stdio.h>
+int main()
+{
+  /* Special stdio.h supplies function foo.  */
+  void (*x)(void) = foo;
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/cpp/isysroot-2.c b/gcc/testsuite/gcc.dg/cpp/isysroot-2.c
new file mode 100644 (file)
index 0000000..a32618c
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-options "-isysroot ${srcdir}/gcc.dg/cpp" { target *-*-darwin* } } */
+/* { dg-do compile } */
+
+#include <Carbon/Carbon.h>
+int main()
+{
+  /* Special Carbon.h supplies function foo.  */
+  void (*x)(void) = foo;
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h b/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h
new file mode 100644 (file)
index 0000000..c674e89
--- /dev/null
@@ -0,0 +1,4 @@
+/* Used by gcc.dg/cpp/isysroot-1.c to test isysroot.  */
+void foo()
+{
+}