diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8abc40bab735e2b7bc59ee4d8ab2a81b9684660..62854cdae1c78abc2e318ad536370acffb1ef904 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/darwin-c.c b/gcc/config/darwin-c.c index 167b7958c84d231a0cf0ead4d2917d79d3f767d2..feb26f185d297721401cb8b1f7894a4aa63963ba 100644 --- a/gcc/config/darwin-c.c +++ b/gcc/config/darwin-c.c @@ -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); } } diff --git a/gcc/gcc.h b/gcc/gcc.h index d29af91001cbbdf6009ed7fb3997f1f35d1aa0c2..6c3c9829cbcee4afe15de6c15a46ad0b3ed036f1 100644 --- 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")) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6a98976fcf6c7e3ea80af6eaf1154e5fcab94df0..cb68c281d2283567dacf44d17bf8353a30e3cb99 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 index 0000000000000000000000000000000000000000..4259c3718faecadbb7687b68fdfe7e12a8c33d15 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h @@ -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 index 0000000000000000000000000000000000000000..bfbf25565e518060d9fdd7056eef3802d3b51b6f --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/isysroot-1.c @@ -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 index 0000000000000000000000000000000000000000..a32618c25123b98e662d715d15ac50ee0344234a --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/isysroot-2.c @@ -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 index 0000000000000000000000000000000000000000..c674e89f7ef7e65f0af68efd1af6ef0f6653a512 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h @@ -0,0 +1,4 @@ +/* Used by gcc.dg/cpp/isysroot-1.c to test isysroot. */ +void foo() +{ +}