aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Christopher <echristo@redhat.com>2005-07-13 18:15:43 +0000
committerEric Christopher <echristo@gcc.gnu.org>2005-07-13 18:15:43 +0000
commita8ba31f25dcd8579cb2d004c18c2add2407fb8ba (patch)
treea13c4da74ac36abdea83ba12425e0a187b227295 /gcc
parent042216f779e759cde93d77217e0587b895c1e17d (diff)
downloadgcc-a8ba31f25dcd8579cb2d004c18c2add2407fb8ba.zip
gcc-a8ba31f25dcd8579cb2d004c18c2add2407fb8ba.tar.gz
gcc-a8ba31f25dcd8579cb2d004c18c2add2407fb8ba.tar.bz2
configure.in: Add toplevel noconfigdir support for tpf.
2005-07-13 Eric Christopher <echristo@redhat.com> * configure.in: Add toplevel noconfigdir support for tpf. * configure: Regenerate. 2005-07-13 Eric Christopher <echristo@redhat.com> * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove static extra parts. * config/s390/s390.md: Include tpf.md. Move tpf specific patterns... * config/s390/tpf.md: To here. * config/s390/s390.opt: Move tpf specific options... * config/s390/tpf.opt: to here. Add mmain option. * config/s390/tpf-unwind.h: Remove unnecessary defines. * config/s390/tpf.h: Rewrite. From-SVN: r101982
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog24
-rw-r--r--gcc/config.gcc17
-rw-r--r--gcc/config/s390/s390.md16
-rw-r--r--gcc/config/s390/s390.opt4
-rw-r--r--gcc/config/s390/tpf-unwind.h4
-rw-r--r--gcc/config/s390/tpf.h63
-rw-r--r--gcc/config/s390/tpf.md34
-rw-r--r--gcc/config/s390/tpf.opt28
8 files changed, 133 insertions, 57 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6465670..42d34f4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2005-07-13 Eric Christopher <echristo@redhat.com>
+
+ * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
+ static extra parts.
+ * config/s390/s390.md: Include tpf.md. Move tpf specific
+ patterns...
+ * config/s390/tpf.md: To here.
+ * config/s390/s390.opt: Move tpf specific options...
+ * config/s390/tpf.opt: to here. Add mmain option.
+ * config/s390/tpf-unwind.h: Remove unnecessary defines.
+ * config/s390/tpf.h: Rewrite.
+
2005-07-13 H.J. Lu <hongjiu.lu@intel.com>
* doc/tm.texi: Remove @xref{Cross-profiling}.
@@ -122,6 +134,18 @@
2005-07-12 Eric Christopher <echristo@redhat.com>
+ * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
+ static extra parts.
+ * config/s390/s390.md: Include tpf.md. Move tpf specific
+ patterns...
+ * config/s390/tpf.md: To here.
+ * config/s390/s390.opt: Move tpf specific options...
+ * config/s390/tpf.opt: to here. Add mmain option.
+ * config/s390/tpf-unwind.h: Remove unnecessary defines.
+ * config/s390/tpf.h: Rewrite.
+
+2005-07-12 Eric Christopher <echristo@redhat.com>
+
* gcc.c (struct infile): Update comment for language.
(main): Rewrite input file resetting code.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 1754468..7fe3068 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1820,14 +1820,15 @@ s390x-*-linux*)
tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux64"
;;
s390x-ibm-tpf*)
- tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
- tm_p_file=s390/s390-protos.h
- md_file=s390/s390.md
- extra_modes=s390/s390-modes.def
- extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
- out_file=s390/s390.c
- tmake_file="t-slibgcc-elf-ver s390/t-crtstuff s390/t-tpf"
- thread_file='tpf'
+ tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
+ tm_p_file=s390/s390-protos.h
+ md_file=s390/s390.md
+ extra_modes=s390/s390-modes.def
+ out_file=s390/s390.c
+ extra_parts="crtbeginS.o crtendS.o"
+ tmake_file="s390/t-crtstuff s390/t-tpf"
+ thread_file='tpf'
+ extra_options="${extra_options} s390/tpf.opt"
;;
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 6d8c107..92555c4 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -257,6 +257,8 @@
;; Predicates
(include "predicates.md")
+;; Other includes
+(include "tpf.md")
;; Macros
@@ -7019,25 +7021,11 @@
""
"s390_emit_prologue (); DONE;")
-(define_insn "prologue_tpf"
- [(unspec_volatile [(const_int 0)] UNSPECV_TPF_PROLOGUE)
- (clobber (reg:DI 1))]
- "TARGET_TPF_PROFILING"
- "larl\t%%r1,.+14\;tm\t4065,255\;bnz\t4064"
- [(set_attr "length" "14")])
-
(define_expand "epilogue"
[(use (const_int 1))]
""
"s390_emit_epilogue (false); DONE;")
-(define_insn "epilogue_tpf"
- [(unspec_volatile [(const_int 0)] UNSPECV_TPF_EPILOGUE)
- (clobber (reg:DI 1))]
- "TARGET_TPF_PROFILING"
- "larl\t%%r1,.+14\;tm\t4071,255\;bnz\t4070"
- [(set_attr "length" "14")])
-
(define_expand "sibcall_epilogue"
[(use (const_int 0))]
""
diff --git a/gcc/config/s390/s390.opt b/gcc/config/s390/s390.opt
index 22bbb79..d656786 100644
--- a/gcc/config/s390/s390.opt
+++ b/gcc/config/s390/s390.opt
@@ -71,10 +71,6 @@ mstack-size=
Target RejectNegative Joined
Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit
-mtpf-trace
-Target Report Mask(TPF_PROFILING)
-Enable tpf OS tracing code
-
mtune=
Target RejectNegative Joined
Schedule code for given CPU
diff --git a/gcc/config/s390/tpf-unwind.h b/gcc/config/s390/tpf-unwind.h
index 6006006..87b6892 100644
--- a/gcc/config/s390/tpf-unwind.h
+++ b/gcc/config/s390/tpf-unwind.h
@@ -28,11 +28,7 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA. */
-#define __USE_GNU 1
-#define _GNU_SOURCE
#include <dlfcn.h>
-#undef __USE_GNU
-#undef _GNU_SOURCE
/* Function Name: __isPATrange
Parameters passed into it: address to check
diff --git a/gcc/config/s390/tpf.h b/gcc/config/s390/tpf.h
index c1feaba..02fa8f2 100644
--- a/gcc/config/s390/tpf.h
+++ b/gcc/config/s390/tpf.h
@@ -33,8 +33,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#define ASM_APP_OFF "#NO_APP\n"
#define NO_IMPLICIT_EXTERN_C
#define TARGET_POSIX_IO
-#undef MD_EXEC_PREFIX
-#undef MD_STARTFILE_PREFIX
#undef SIZE_TYPE
#define SIZE_TYPE ("long unsigned int")
@@ -54,11 +52,12 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#undef STACK_POINTER_OFFSET
#define STACK_POINTER_OFFSET 448
-/* When building for TPF, set a generic default target that is 64 bits.
- Also, enable TPF profiling support and the standard backchain by default. */
+/* When building for TPF, set a generic default target that is 64 bits. Also
+ enable TPF profiling support and the standard backchain by default. */
#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_64BIT | MASK_ZARCH | MASK_HARD_FLOAT \
- | MASK_TPF_PROFILING | MASK_BACKCHAIN)
+#define TARGET_DEFAULT (MASK_TPF_PROFILING | MASK_64BIT | MASK_ZARCH \
+ | MASK_HARD_FLOAT | MASK_BACKCHAIN)
+
/* Exception handling. */
/* Select a format to encode pointers in exception handling data. */
@@ -82,45 +81,55 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
while (0)
+#define EXTRA_SPECS \
+ { "entry_spec", ENTRY_SPEC }
+
/* Make TPF specific spec file settings here. */
-#undef STARTFILE_SPEC
+#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
- "%{!shared: \
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
- %{!p:%{profile:gcrt1.o%s} \
- %{!profile:crt1.o%s}}}} \
- crti.o%s %{static:crtbeginT.o%s} \
- %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
+ "%{mmain:crt0%O%s} crtbeginS%O%s crt3%O%s"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "crtendS%O%s"
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC \
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+#undef CC1_SPEC
+#define CC1_SPEC "%{!fverbose-asm: -fverbose-asm}"
/* The GNU C++ standard library requires that these macros be defined. */
#undef CPLUSPLUS_CPP_SPEC
#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-#undef ASM_SPEC
-#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
+#undef ASM_SPEC
+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*} \
+ -alshd=%b.lst"
-#undef LIB_SPEC
-#define LIB_SPEC "%{pthread:-lpthread} -lc"
+/* It would be nice to get the system linker script define the ones that it
+ needed. */
+#undef LIB_SPEC
+#define LIB_SPEC "-lCTIS -lCISO -lCLBM -lCTAL -lCFVS -lCTBX -lCTXO \
+ -lCJ00 -lCTDF -lCOMX -lCOMS -lCTHD -lCTAD -lTPFSTUB"
#undef TARGET_C99_FUNCTIONS
#define TARGET_C99_FUNCTIONS 1
+#define ENTRY_SPEC "%{mmain:-entry=_start} \
+ %{!mmain:-entry=0}"
+
+/* All linking is done shared on TPF-OS. */
+/* FIXME: When binutils patch for new emulation is committed
+ then change emulation to elf64_s390_tpf. */
#undef LINK_SPEC
#define LINK_SPEC \
"-m elf64_s390 \
- %{shared:-shared} \
- %{!shared: \
- %{static:-static} \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld64.so}}}"
+ %{static:%estatic is not supported on TPF-OS} \
+ %{shared: -shared} \
+ %{!shared:-shared} \
+ %(entry_spec)"
#define MD_UNWIND_SUPPORT "config/s390/tpf-unwind.h"
+/* IBM copies these libraries over with these names. */
+#define MATH_LIBRARY "-lCLBM"
+#define LIBSTDCXX "-lCPP1"
#endif /* ! _TPF_H */
-
diff --git a/gcc/config/s390/tpf.md b/gcc/config/s390/tpf.md
new file mode 100644
index 0000000..87a2616
--- /dev/null
+++ b/gcc/config/s390/tpf.md
@@ -0,0 +1,34 @@
+;; S390 TPF-OS specific machine patterns
+;; Copyright (C) 2005 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 2, 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 COPYING. If not, write to
+;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+(define_insn "prologue_tpf"
+ [(unspec_volatile [(const_int 0)] UNSPECV_TPF_PROLOGUE)
+ (clobber (reg:DI 1))]
+ "TARGET_TPF_PROFILING"
+ "larl\t%%r1,.+14\;tm\t4065,255\;bnz\t4064"
+ [(set_attr "length" "14")])
+
+
+(define_insn "epilogue_tpf"
+ [(unspec_volatile [(const_int 0)] UNSPECV_TPF_EPILOGUE)
+ (clobber (reg:DI 1))]
+ "TARGET_TPF_PROFILING"
+ "larl\t%%r1,.+14\;tm\t4071,255\;bnz\t4070"
+ [(set_attr "length" "14")])
diff --git a/gcc/config/s390/tpf.opt b/gcc/config/s390/tpf.opt
new file mode 100644
index 0000000..7f12402
--- /dev/null
+++ b/gcc/config/s390/tpf.opt
@@ -0,0 +1,28 @@
+; Options for the TPF-OS port of the compiler.
+
+; Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
+; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+; 02110-1301, USA.
+
+mtpf-trace
+Target Report Mask(TPF_PROFILING)
+Enable TPF-OS tracing code
+
+mmain
+Target Report
+Specify main object for TPF-OS