summaryrefslogtreecommitdiffstats
path: root/gcc/config/pa/pa-hpux11.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/pa/pa-hpux11.h')
-rw-r--r--gcc/config/pa/pa-hpux11.h138
1 files changed, 77 insertions, 61 deletions
diff --git a/gcc/config/pa/pa-hpux11.h b/gcc/config/pa/pa-hpux11.h
index 7450c1db739..9df9044fccb 100644
--- a/gcc/config/pa/pa-hpux11.h
+++ b/gcc/config/pa/pa-hpux11.h
@@ -24,69 +24,80 @@ Boston, MA 02111-1307, USA. */
the definition of __cplusplus. We define _INCLUDE_LONGLONG
to prevent nlist.h from defining __STDC_32_MODE__ (no longlong
support). We define __STDCPP__ to get certain system headers
- (notably assert.h) to assume standard preprocessor behavior in C++.
-
- The C99 support is incomplete. We define _INCLUDE__STDC_A1_SOURCE
- to provide the extended multibyte and wide-character utilities available
- under HP-UX 11i. Defining _HPUX_SOURCE would give us some more
- features but it also adds stuff that isn't in C99. */
+ (notably assert.h) to assume standard preprocessor behavior in C++. */
#undef TARGET_OS_CPP_BUILTINS
-#define TARGET_OS_CPP_BUILTINS() \
- do \
- { \
- builtin_assert ("system=hpux"); \
- builtin_assert ("system=unix"); \
- builtin_define ("__hp9000s800"); \
- builtin_define ("__hp9000s800__"); \
- builtin_define ("__hpux"); \
- builtin_define ("__hpux__"); \
- builtin_define ("__unix"); \
- builtin_define ("__unix__"); \
- if (c_dialect_cxx ()) \
- { \
- builtin_define ("_HPUX_SOURCE"); \
- builtin_define ("_INCLUDE_LONGLONG"); \
- builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
- builtin_define ("__STDC_EXT__"); \
- builtin_define ("__STDCPP__"); \
- } \
- else \
- { \
- if (!flag_iso) \
- { \
- builtin_define ("_HPUX_SOURCE"); \
- builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
- if (preprocessing_trad_p ()) \
- { \
- builtin_define ("hp9000s800"); \
- builtin_define ("hppa"); \
- builtin_define ("hpux"); \
- builtin_define ("unix"); \
- builtin_define ("__CLASSIC_C__"); \
- builtin_define ("_PWB"); \
- builtin_define ("PWB"); \
- } \
- else \
- builtin_define ("__STDC_EXT__"); \
- } \
- else if (flag_isoc99) \
- { \
- builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
- } \
- if (!TARGET_64BIT) \
- builtin_define ("_ILP32"); \
- } \
- if (TARGET_SIO) \
- builtin_define ("_SIO"); \
- else \
- { \
- builtin_define ("__hp9000s700"); \
- builtin_define ("__hp9000s700__"); \
- builtin_define ("_WSIO"); \
- } \
- } \
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ builtin_assert ("system=hpux"); \
+ builtin_assert ("system=unix"); \
+ builtin_define ("__hp9000s800"); \
+ builtin_define ("__hp9000s800__"); \
+ builtin_define ("__hpux"); \
+ builtin_define ("__hpux__"); \
+ builtin_define ("__unix"); \
+ builtin_define ("__unix__"); \
+ if (c_dialect_cxx ()) \
+ { \
+ builtin_define ("_HPUX_SOURCE"); \
+ builtin_define ("_INCLUDE_LONGLONG"); \
+ builtin_define ("__STDC_EXT__"); \
+ builtin_define ("__STDCPP__"); \
+ } \
+ else \
+ { \
+ if (!flag_iso) \
+ { \
+ builtin_define ("_HPUX_SOURCE"); \
+ if (preprocessing_trad_p ()) \
+ { \
+ builtin_define ("hp9000s800"); \
+ builtin_define ("hppa"); \
+ builtin_define ("hpux"); \
+ builtin_define ("unix"); \
+ builtin_define ("__CLASSIC_C__"); \
+ builtin_define ("_PWB"); \
+ builtin_define ("PWB"); \
+ } \
+ else \
+ builtin_define ("__STDC_EXT__"); \
+ } \
+ } \
+ if (!TARGET_64BIT) \
+ builtin_define ("_ILP32"); \
+ if (flag_pa_unix >= 1995) \
+ { \
+ builtin_define ("_XOPEN_UNIX"); \
+ builtin_define ("_XOPEN_SOURCE_EXTENDED"); \
+ } \
+ if (TARGET_HPUX_11_11) \
+ { \
+ if (flag_pa_unix >= 1998) \
+ { \
+ builtin_define ("_INCLUDE__STDC_A1_SOURCE"); \
+ builtin_define ("_INCLUDE_XOPEN_SOURCE_500"); \
+ } \
+ else if (flag_isoc94 || flag_isoc99 || c_dialect_cxx ()) \
+ warning ("-munix=98 option required for C89 " \
+ "Amendment 1 features.\n"); \
+ } \
+ if (TARGET_SIO) \
+ builtin_define ("_SIO"); \
+ else \
+ { \
+ builtin_define ("__hp9000s700"); \
+ builtin_define ("__hp9000s700__"); \
+ builtin_define ("_WSIO"); \
+ } \
+ } \
while (0)
+#undef SUBTARGET_OPTIONS
+#define SUBTARGET_OPTIONS \
+ { "unix=", &pa_unix_string, \
+ N_("Specify UNIX standard for predefines and linking.\n" \
+ "Supported values are 93 and 95."), 0}
+
#undef CPP_SPEC
#define CPP_SPEC \
"%{mt|pthread:-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L}"
@@ -99,7 +110,7 @@ Boston, MA 02111-1307, USA. */
#undef LINK_SPEC
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_PA_11)
#define LINK_SPEC \
- "%{!mpa-risc-1-0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}\
+ "%{!mpa-risc-1-0:%{!march=1.0:%{!shared:-L/lib/pa1.1 -L/usr/lib/pa1.1 }}}\
%{!shared:%{p:-L/lib/libp -L/usr/lib/libp %{!static:\
%nWarning: consider linking with `-static' as system libraries with\n\
%n profiling support are only provided in archive format}}}\
@@ -127,6 +138,11 @@ Boston, MA 02111-1307, USA. */
%{mt|pthread:-lpthread} -lc \
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}"
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+ "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}} \
+ %{!munix=93:unix95%O%s}}"
+
/* Under hpux11, the normal location of the `ld' and `as' programs is the
/usr/ccs/bin directory. */
OpenPOWER on IntegriCloud