aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2011-05-05 15:49:28 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2011-05-05 15:49:28 +0000
commitfc4538e41ef500b68485407afaeecdac48bc8e5f (patch)
tree093c86f1d4211a2ec44bdf0615c16fe84199759d /gcc
parent1e30c57853f8dd58129daee2b88a18b8a78c9832 (diff)
downloadgcc-fc4538e41ef500b68485407afaeecdac48bc8e5f.zip
gcc-fc4538e41ef500b68485407afaeecdac48bc8e5f.tar.gz
gcc-fc4538e41ef500b68485407afaeecdac48bc8e5f.tar.bz2
config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options for 11.31.
2011-05-05 Steve Ellcey <sje@cup.hp.com> * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options for 11.31. (hppa[12]*-*-hpux11*): Ditto. (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file. * config/ia64/hpux-unix2003.h: New. * config/pa/pa-hpux1131.opt: New. * config/pa/pa-hpux1131.h: New. * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested. * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value. config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value. From-SVN: r173437
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/config.gcc17
-rw-r--r--gcc/config/ia64/hpux-unix2003.h8
-rw-r--r--gcc/config/pa/pa-hpux.opt2
-rw-r--r--gcc/config/pa/pa-hpux1131.h29
-rw-r--r--gcc/config/pa/pa-hpux1131.opt23
-rw-r--r--gcc/config/pa/pa64-hpux.h9
7 files changed, 97 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c19519f..3e2129a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2011-05-05 Steve Ellcey <sje@cup.hp.com>
+
+ * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
+ for 11.31.
+ (hppa[12]*-*-hpux11*): Ditto.
+ (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
+ * config/ia64/hpux-unix2003.h: New.
+ * config/pa/pa-hpux1131.opt: New.
+ * config/pa/pa-hpux1131.h: New.
+ * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
+ * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
+ config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
+
2011-05-05 Jakub Jelinek <jakub@redhat.com>
PR debug/48853
diff --git a/gcc/config.gcc b/gcc/config.gcc
index c204ab1..385e78e 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1065,10 +1065,14 @@ hppa*64*-*-hpux11*)
pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
pa/pa-hpux11.h"
case ${target} in
- *-*-hpux11.[1-9]*)
+ *-*-hpux11.[12]*)
tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
extra_options="${extra_options} pa/pa-hpux1111.opt"
;;
+ *-*-hpux11.[3-9]*)
+ tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
+ extra_options="${extra_options} pa/pa-hpux1131.opt"
+ ;;
*)
tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
;;
@@ -1113,10 +1117,14 @@ hppa[12]*-*-hpux11*)
extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
hpux11.opt"
case ${target} in
- *-*-hpux11.[1-9]*)
+ *-*-hpux11.[12]*)
tm_file="${tm_file} pa/pa-hpux1111.h"
extra_options="${extra_options} pa/pa-hpux1111.opt"
;;
+ *-*-hpux11.[3-9]*)
+ tm_file="${tm_file} pa/pa-hpux1131.h"
+ extra_options="${extra_options} pa/pa-hpux1131.opt"
+ ;;
esac
tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib"
# Set the libgcc version number
@@ -1582,6 +1590,11 @@ ia64*-*-hpux*)
extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
use_gcc_stdint=wrap
tm_file="${tm_file} hpux-stdint.h"
+ case ${target} in
+ *-*-hpux11.3*)
+ tm_file="${tm_file} ia64/hpux-unix2003.h"
+ ;;
+ esac
;;
ia64-hp-*vms*)
tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h ia64/vms.h ia64/vms64.h"
diff --git a/gcc/config/ia64/hpux-unix2003.h b/gcc/config/ia64/hpux-unix2003.h
new file mode 100644
index 0000000..36418be
--- /dev/null
+++ b/gcc/config/ia64/hpux-unix2003.h
@@ -0,0 +1,8 @@
+
+/* For HP-UX 11.31 and greater, use unix2003.o instead of unix98.o to
+ get correct C99 snprintf behaviour with buffer overflow. */
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "%{!shared:%{static:crt0%O%s} \
+ %{mlp64:/usr/lib/hpux64/unix2003%O%s} \
+ %{!mlp64:/usr/lib/hpux32/unix2003%O%s}}"
diff --git a/gcc/config/pa/pa-hpux.opt b/gcc/config/pa/pa-hpux.opt
index ddbb68f..ed5d6a4 100644
--- a/gcc/config/pa/pa-hpux.opt
+++ b/gcc/config/pa/pa-hpux.opt
@@ -20,7 +20,7 @@
; The UNIX standard to use for predefines and linking.
Variable
-int flag_pa_unix = TARGET_HPUX_11_11 ? 1998 : TARGET_HPUX_10_10 ? 1995 : 1993
+int flag_pa_unix = TARGET_HPUX_11_31 ? 2003 : TARGET_HPUX_11_11 ? 1998 : TARGET_HPUX_10_10 ? 1995 : 1993
msio
Target RejectNegative Mask(SIO) MaskExists
diff --git a/gcc/config/pa/pa-hpux1131.h b/gcc/config/pa/pa-hpux1131.h
new file mode 100644
index 0000000..bc4549b
--- /dev/null
+++ b/gcc/config/pa/pa-hpux1131.h
@@ -0,0 +1,29 @@
+/* Definitions of target machine for GNU compiler, for HP PA-RISC
+ Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* HP-UX 11i multibyte and UNIX 98 extensions. */
+#undef TARGET_HPUX_11_11
+#define TARGET_HPUX_11_11 1
+#undef TARGET_HPUX_11_31
+#define TARGET_HPUX_11_31 1
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+ "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}} \
+ %{munix=95:unix95%O%s}%{munix=98:unix98%O%s}%{!munix=93:%{!munix=95:%{!munix=98:unix2003%O%s}}}}"
diff --git a/gcc/config/pa/pa-hpux1131.opt b/gcc/config/pa/pa-hpux1131.opt
new file mode 100644
index 0000000..c909f22
--- /dev/null
+++ b/gcc/config/pa/pa-hpux1131.opt
@@ -0,0 +1,23 @@
+; Options for the HP PA-RISC port of the compiler.
+
+; Copyright (C) 2005, 2007, 2011 Free Software Foundation, Inc.
+;
+; This file is part of GCC.
+;
+; GCC is free software; you can redistribute it and/or modify it under
+; the terms of the GNU General Public License as published by the Free
+; Software Foundation; either version 3, or (at your option) any later
+; version.
+;
+; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+; WARRANTY; without even the implied warranty of MERCHANTABILITY or
+; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+; for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with GCC; see the file COPYING3. If not see
+; <http://www.gnu.org/licenses/>.
+
+munix=2003
+Target RejectNegative Var(flag_pa_unix, 2003)
+Specify UNIX standard for predefines and linking
diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h
index cc9724a..37c4cb2 100644
--- a/gcc/config/pa/pa64-hpux.h
+++ b/gcc/config/pa/pa64-hpux.h
@@ -304,7 +304,14 @@ do { \
/* The following STARTFILE_SPEC and ENDFILE_SPEC defines provide the
magic needed to run initializers and finalizers. */
#undef STARTFILE_SPEC
-#if TARGET_HPUX_11_11
+#if TARGET_HPUX_11_31
+#define STARTFILE_SPEC \
+ "%{!shared: %{!symbolic: crt0%O%s} \
+ %{munix=95:unix95.o%s} %{munix=98:unix98.o%s} \
+ %{!munix=93:%{!munix=95:%{!munix=98:unix2003%O%s}}}} \
+ %{static:crtbeginT%O%s} \
+ %{!static:%{!shared:crtbegin%O%s} %{shared:crtbeginS%O%s}}"
+#elif TARGET_HPUX_11_11
#define STARTFILE_SPEC \
"%{!shared: %{!symbolic: crt0%O%s} %{munix=95:unix95.o%s} \
%{!munix=93:%{!munix=95:unix98%O%s}}} %{static:crtbeginT%O%s} \