From 1a1e6a9d4a1c8cfb8aef4d7f18fe4c68444f9317 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Wed, 24 Aug 2005 18:22:12 +0000 Subject: [PATCH] Define __PIC__ for darwin targets. OKed by Mike Stump. From-SVN: r103447 --- gcc/ChangeLog | 6 ++++++ gcc/config/darwin.h | 8 ++++++++ gcc/config/rs6000/darwin.h | 1 + gcc/testsuite/gcc.dg/pic-macro-define.c | 10 ++++++++++ 4 files changed, 25 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pic-macro-define.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b20069cb28a3..26ea0debe955 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-08-24 Fariborz Jahanian + + * config/darwin.h: define __PIC__ + * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to + TARGET_OS_CPP_BUILTINS macro. + 2005-08-24 Paolo Bonzini * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index c611cb8b1da7..08abfbe10009 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -140,6 +140,14 @@ Boston, MA 02110-1301, USA. */ { "-unexported_symbols_list", "-Zunexported_symbols_list" }, \ SUBTARGET_OPTION_TRANSLATE_TABLE +#define SUBTARGET_OS_CPP_BUILTINS() \ + do \ + { \ + if (flag_pic) \ + builtin_define ("__PIC__"); \ + } \ + while (0) + /* These compiler options take n arguments. */ #undef WORD_SWITCH_TAKES_ARG diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 482c6e74f9a3..ef1532d776f2 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -55,6 +55,7 @@ builtin_define ("__POWERPC__"); \ builtin_define ("__NATURAL_ALIGNMENT__"); \ darwin_cpp_builtins (pfile); \ + SUBTARGET_OS_CPP_BUILTINS (); \ } \ while (0) diff --git a/gcc/testsuite/gcc.dg/pic-macro-define.c b/gcc/testsuite/gcc.dg/pic-macro-define.c new file mode 100644 index 000000000000..7bda6fedfef7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pic-macro-define.c @@ -0,0 +1,10 @@ +/* { dg-do run { target "i?86-*-*-darwin" powerpc*-*-darwin* } } */ +/* { dg-options "-fPIC" } */ + +#if defined __PIC__ +int main() { + return 0; +} +#else + error "NO __PIC__ DEFINED" +#endif -- 2.43.5