summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog21
-rw-r--r--gcc/c-cppbuiltin.c5
-rw-r--r--gcc/config/alpha/freebsd.h19
-rw-r--r--gcc/config/alpha/linux.h5
-rw-r--r--gcc/config/arm/linux-elf.h5
-rw-r--r--gcc/config/bfin/bfin.h5
-rw-r--r--gcc/config/cris/linux.h5
-rw-r--r--gcc/config/darwin.h8
-rw-r--r--gcc/config/freebsd-spec.h1
-rw-r--r--gcc/config/i386/beos-elf.h5
-rw-r--r--gcc/config/i386/gnu.h5
-rw-r--r--gcc/config/i386/linux.h5
-rw-r--r--gcc/config/i386/linux64.h5
-rw-r--r--gcc/config/i386/nto.h5
-rw-r--r--gcc/config/i386/sco5.h5
-rw-r--r--gcc/config/m32r/m32r.h5
-rw-r--r--gcc/config/m68k/linux.h4
-rw-r--r--gcc/config/m68k/m68k.h6
-rw-r--r--gcc/config/mips/linux.h5
-rw-r--r--gcc/config/pa/pa-linux.h5
-rw-r--r--gcc/config/rs6000/linux64.h1
-rw-r--r--gcc/config/rs6000/sysv4.h10
-rw-r--r--gcc/config/rs6000/vxworks.h10
-rw-r--r--gcc/config/s390/linux.h5
-rw-r--r--gcc/config/s390/tpf.h5
-rw-r--r--gcc/config/sh/linux.h5
-rw-r--r--gcc/config/sh/sh.h5
-rw-r--r--gcc/config/sol2.h5
-rw-r--r--gcc/config/sparc/linux.h5
-rw-r--r--gcc/config/sparc/linux64.h5
-rw-r--r--gcc/config/xtensa/xtensa.h5
-rw-r--r--gcc/doc/invoke.texi6
32 files changed, 37 insertions, 159 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0fa5ae51e40..1261f4843b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2005-11-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
+ flag_pic is set.
+
+ * config/alpha/freebsd.h, config/alpha/linux.h,
+ config/arm/linux-elf.h, config/bfin/bfin.h,
+ config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
+ config/i386/beos-elf.h, config/i386/gnu.h,
+ config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
+ config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
+ config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
+ config/rs6000/linux64.h, config/rs6000/sysv4.h,
+ config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
+ config/sh/linux.h, config/sh/sh.h, config/sol2.h,
+ config/sparc/linux.h, config/sparc/linux64.h,
+ config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
+
+ * doc/invoke.texi: Document that the macros __pic__ and __PIC__
+ are both defined when either flag -fpic or -fPIC are used.
+
2005-11-22 Joseph S. Myers <joseph@codesourcery.com>
* config/fp-bit.c (clzusi): New function.
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c
index 9020e0b49f9..e0d61892009 100644
--- a/gcc/c-cppbuiltin.c
+++ b/gcc/c-cppbuiltin.c
@@ -419,6 +419,11 @@ c_cpp_builtins (cpp_reader *pfile)
cpp_define (pfile, "__FINITE_MATH_ONLY__=1");
else
cpp_define (pfile, "__FINITE_MATH_ONLY__=0");
+ if (flag_pic)
+ {
+ builtin_define_with_int_value ("__pic__", flag_pic);
+ builtin_define_with_int_value ("__PIC__", flag_pic);
+ }
if (flag_iso)
cpp_define (pfile, "__STRICT_ANSI__");
diff --git a/gcc/config/alpha/freebsd.h b/gcc/config/alpha/freebsd.h
index 5bf328eeaad..ca49a8bb0cd 100644
--- a/gcc/config/alpha/freebsd.h
+++ b/gcc/config/alpha/freebsd.h
@@ -24,22 +24,9 @@ Boston, MA 02110-1301, USA. */
#define SUBTARGET_EXTRA_SPECS \
{ "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
-/* Provide a FBSD_TARGET_CPU_CPP_BUILTINS and CPP_SPEC appropriate for
- FreeBSD/alpha. Besides the dealing with
- the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must
- deal with the Alpha's FP issues. */
-
-#undef FBSD_TARGET_CPU_CPP_BUILTINS
-#define FBSD_TARGET_CPU_CPP_BUILTINS() \
- do \
- { \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
- } \
- while (0)
+/* Provide a CPP_SPEC appropriate for FreeBSD/alpha. Besides the
+ dealing with the GCC option `-posix', we must deal with the Alpha's
+ FP issues. */
#undef CPP_SPEC
#define CPP_SPEC "%(cpp_subtarget) %{posix:-D_POSIX_SOURCE}"
diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
index 2768748a2d9..ffb581c4f53 100644
--- a/gcc/config/alpha/linux.h
+++ b/gcc/config/alpha/linux.h
@@ -36,11 +36,6 @@ Boston, MA 02110-1301, USA. */
/* The GNU C++ standard library requires this. */ \
if (c_dialect_cxx ()) \
builtin_define ("_GNU_SOURCE"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} while (0)
#undef LIB_SPEC
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
index 15354e5ba0d..c3ae2bed2e8 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -71,11 +71,6 @@
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/bfin/bfin.h b/gcc/config/bfin/bfin.h
index be4e565c37e..0e6da5c08a8 100644
--- a/gcc/config/bfin/bfin.h
+++ b/gcc/config/bfin/bfin.h
@@ -41,11 +41,6 @@ extern int target_flags;
{ \
builtin_define ("bfin"); \
builtin_define ("BFIN"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
#endif
diff --git a/gcc/config/cris/linux.h b/gcc/config/cris/linux.h
index 57ae745d9d5..09968f42e26 100644
--- a/gcc/config/cris/linux.h
+++ b/gcc/config/cris/linux.h
@@ -96,11 +96,6 @@ Boston, MA 02110-1301, USA. */
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
if (flag_leading_underscore <= 0) \
builtin_define ("__NO_UNDERSCORES__"); \
} \
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 5b17c34859b..a78d1d33b07 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -140,14 +140,6 @@ 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/freebsd-spec.h b/gcc/config/freebsd-spec.h
index f0e0bcd2e13..f60e94f3aed 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -85,7 +85,6 @@ Boston, MA 02110-1301, USA. */
#define FBSD_CPP_SPEC " \
%(cpp_cpu) \
%(cpp_arch) \
- %{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} \
%{posix:-D_POSIX_SOURCE}"
/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
diff --git a/gcc/config/i386/beos-elf.h b/gcc/config/i386/beos-elf.h
index 9f86eb7b6a5..f1e2cf8c6e1 100644
--- a/gcc/config/i386/beos-elf.h
+++ b/gcc/config/i386/beos-elf.h
@@ -67,11 +67,6 @@ Boston, MA 02110-1301, USA. */
builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
builtin_assert ("system=beos"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
index ce80c9821fd..d40ff7d664a 100644
--- a/gcc/config/i386/gnu.h
+++ b/gcc/config/i386/gnu.h
@@ -8,11 +8,6 @@
do \
{ \
HURD_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
index f85a9ef6cbb..2d6fb680146 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
@@ -74,11 +74,6 @@ Boston, MA 02110-1301, USA. */
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
index d3ab452db32..a3030945126 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
@@ -25,11 +25,6 @@ Boston, MA 02110-1301, USA. */
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/i386/nto.h b/gcc/config/i386/nto.h
index 92cf9f49df3..1095a631319 100644
--- a/gcc/config/i386/nto.h
+++ b/gcc/config/i386/nto.h
@@ -37,11 +37,6 @@ Boston, MA 02110-1301, USA. */
builtin_assert ("system=qnxnto"); \
builtin_assert ("system=nto"); \
builtin_assert ("system=unix"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 15d74fab150..026ffd832fb 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -221,11 +221,6 @@ Boston, MA 02110-1301, USA. */
builtin_assert ("system=svr3"); \
if (flag_iso) \
cpp_define (pfile, "_STRICT_ANSI"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index 4b85a426406..7f82a1cd3bf 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -112,11 +112,6 @@
builtin_assert ("machine=m32r"); \
builtin_define (TARGET_BIG_ENDIAN \
? "__BIG_ENDIAN__" : "__LITTLE_ENDIAN__"); \
- if (flag_pic) \
- { \
- builtin_define ("__pic__"); \
- builtin_define ("__PIC__"); \
- } \
} \
while (0)
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
index 5a693d05739..5036af9f24c 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
@@ -94,10 +94,10 @@ Boston, MA 02110-1301, USA. */
#undef CPP_SPEC
#if TARGET_DEFAULT & MASK_68881
#define CPP_SPEC \
- "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+ "%{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#else
#define CPP_SPEC \
- "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+ "%{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#endif
/* We override the ASM_SPEC from svr4.h because we must pass -m68040 down
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 5320749b464..3f140d4d127 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -92,12 +92,6 @@ Boston, MA 02110-1301, USA. */
} \
if (TARGET_CF_HWDIV) \
builtin_define ("__mcfhwdiv__"); \
- if (flag_pic) \
- { \
- builtin_define ("__pic__"); \
- if (flag_pic > 1) \
- builtin_define ("__PIC__"); \
- } \
builtin_assert ("cpu=m68k"); \
builtin_assert ("machine=m68k"); \
} \
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
index a314508e04c..a135bba75a8 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
@@ -56,11 +56,6 @@ Boston, MA 02110-1301, USA. */
#define TARGET_OS_CPP_BUILTINS() \
do { \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (TARGET_ABICALLS) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
/* The GNU C++ standard library requires this. */ \
if (c_dialect_cxx ()) \
builtin_define ("_GNU_SOURCE"); \
diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h
index fcbcebdb949..527977f15e2 100644
--- a/gcc/config/pa/pa-linux.h
+++ b/gcc/config/pa/pa-linux.h
@@ -25,11 +25,6 @@ Boston, MA 02110-1301, USA. */
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
builtin_assert ("machine=bigendian"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 1c4dc1f312a..46ae2b9867d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -289,7 +289,6 @@ extern int dot_symbols;
builtin_define ("__PPC64__"); \
builtin_define ("__powerpc__"); \
builtin_define ("__powerpc64__"); \
- builtin_define ("__PIC__"); \
builtin_assert ("cpu=powerpc64"); \
builtin_assert ("machine=powerpc64"); \
} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index d5388320c7c..38d921a4692 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -685,16 +685,6 @@ extern int fixuplabelno;
#define TARGET_OS_SYSV_CPP_BUILTINS() \
do \
{ \
- if (flag_pic == 1) \
- { \
- builtin_define ("__pic__=1"); \
- builtin_define ("__PIC__=1"); \
- } \
- else if (flag_pic == 2) \
- { \
- builtin_define ("__pic__=2"); \
- builtin_define ("__PIC__=2"); \
- } \
if (target_flags_explicit \
& MASK_RELOCATABLE) \
builtin_define ("_RELOCATABLE"); \
diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h
index d389ace8d45..273a4357a28 100644
--- a/gcc/config/rs6000/vxworks.h
+++ b/gcc/config/rs6000/vxworks.h
@@ -41,16 +41,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
builtin_define ("__VXWORKS__"); \
if (!TARGET_SOFT_FLOAT) \
builtin_define ("__hardfp"); \
- if (flag_pic == 2) \
- { \
- builtin_define ("__PIC__=2"); \
- builtin_define ("__pic__=2"); \
- } \
- else if (flag_pic == 1) \
- { \
- builtin_define ("__PIC__=1"); \
- builtin_define ("__pic__=1"); \
- } \
\
/* C89 namespace violation! */ \
builtin_define ("CPU_FAMILY=PPC"); \
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
index 4f58c734547..7fd5711a8a4 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -54,11 +54,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/s390/tpf.h b/gcc/config/s390/tpf.h
index 02fa8f2640e..f0a63f7d255 100644
--- a/gcc/config/s390/tpf.h
+++ b/gcc/config/s390/tpf.h
@@ -72,11 +72,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
builtin_define_std ("tpf"); \
builtin_assert ("system=tpf"); \
builtin_define ("__ELF__"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index c38055208c8..6956e4dfccd 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -38,11 +38,6 @@ Boston, MA 02110-1301, USA. */
do \
{ \
LINUX_TARGET_OS_CPP_BUILTINS(); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 486cc97544d..7f541fbda8b 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -92,11 +92,6 @@ do { \
builtin_define ("__HITACHI__"); \
builtin_define (TARGET_LITTLE_ENDIAN \
? "__LITTLE_ENDIAN__" : "__BIG_ENDIAN__"); \
- if (flag_pic) \
- { \
- builtin_define ("__pic__"); \
- builtin_define ("__PIC__"); \
- } \
} while (0)
/* We can not debug without a frame pointer. */
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
index 176d23b5ea1..51f9bd82e97 100644
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -72,11 +72,6 @@ Boston, MA 02110-1301, USA. */
builtin_define ("_LARGEFILE64_SOURCE=1"); \
builtin_define ("__EXTENSIONS__"); \
} \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
TARGET_SUB_OS_CPP_BUILTINS(); \
} while (0)
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 813a18dc01a..10edd746f7f 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -29,11 +29,6 @@ Boston, MA 02110-1301, USA. */
builtin_assert ("system=linux"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=posix"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index dc89408d526..e4fe918e6a4 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -30,11 +30,6 @@ Boston, MA 02110-1301, USA. */
builtin_assert ("system=linux"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=posix"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} \
while (0)
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index 3fc8abdc3a4..8434d1983ef 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -90,11 +90,6 @@ extern unsigned xtensa_current_frame_size;
builtin_define (TARGET_BIG_ENDIAN ? "__XTENSA_EB__" : "__XTENSA_EL__"); \
if (!TARGET_HARD_FLOAT) \
builtin_define ("__XTENSA_SOFT_FLOAT__"); \
- if (flag_pic) \
- { \
- builtin_define ("__PIC__"); \
- builtin_define ("__pic__"); \
- } \
} while (0)
#define CPP_SPEC " %(subtarget_cpp_spec) "
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index c8a72c4b3dc..e84f7284931 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -12882,6 +12882,9 @@ only on certain machines. For the 386, GCC supports PIC for System V
but not for the Sun 386i. Code generated for the IBM RS/6000 is always
position-independent.
+When this flag is set, the macros @code{__pic__} and @code{__PIC__}
+are defined to 1.
+
@item -fPIC
@opindex fPIC
If supported for the target machine, emit position-independent code,
@@ -12892,6 +12895,9 @@ PowerPC and SPARC@.
Position-independent code requires special support, and therefore works
only on certain machines.
+When this flag is set, the macros @code{__pic__} and @code{__PIC__}
+are defined to 2.
+
@item -fpie
@itemx -fPIE
@opindex fpie