summaryrefslogtreecommitdiff
path: root/gcc/config/sh/vxworks.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-25 08:03:55 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-25 08:03:55 +0000
commita9cfe83b116aa13174027bb6ed1f5c42c378138d (patch)
tree3218b549c5120e1652fb8409aa7b2f31cf5b69e3 /gcc/config/sh/vxworks.h
parentd341b0994869af47b8ddc8b0b287a91be3f2d1f1 (diff)
downloadgcc-a9cfe83b116aa13174027bb6ed1f5c42c378138d.tar.gz
gcc/
* config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include sh/elf.h, vx-common.h and vxworks.h. * config/sh/sh.h: Include config/vxworks-dummy.h. (SUBTARGET_OVERRIDE_OPTIONS): Define. (OVERRIDE_OPTIONS): Use it. * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs. (vxworks_picreg): New pattern. * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use VXWORKS_OS_CPP_BUILTINS. (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their VXWORKS_* equivalents. (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define. * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC. (set_fpscr, ic_invalidate): Add VxWorks PIC sequences. * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and -mrtp/-fPIC multilibs. (MULTILIB_EXCEPTIONS): Generalize globs accordingly. (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define. (MULTILIB_OSDIRNAMES): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124145 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/vxworks.h')
-rw-r--r--gcc/config/sh/vxworks.h51
1 files changed, 29 insertions, 22 deletions
diff --git a/gcc/config/sh/vxworks.h b/gcc/config/sh/vxworks.h
index 6f525246a04..63f2bbf6969 100644
--- a/gcc/config/sh/vxworks.h
+++ b/gcc/config/sh/vxworks.h
@@ -22,29 +22,36 @@ Boston, MA 02110-1301, USA. */
#define TARGET_OS_CPP_BUILTINS() \
- do { \
- builtin_define ("__vxworks"); \
- builtin_define ("CPU=SH7000"); \
- } while (0)
-
-/* VxWorks does all the library stuff itself. */
-#undef LIB_SPEC
-#define LIB_SPEC ""
-
-/* VxWorks uses object files, not loadable images. Make the linker just
- combine objects. */
-#undef LINK_SPEC
-#define LINK_SPEC "-r"
-
-/* VxWorks provides the functionality of crt0.o and friends itself. */
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC ""
-
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC ""
-
-#undef TARGET_VERSION
+ do \
+ { \
+ builtin_define ("CPU=SH7000"); \
+ VXWORKS_OS_CPP_BUILTINS (); \
+ } \
+ while (0)
+
+#undef SUBTARGET_OVERRIDE_OPTIONS
+#define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS
+
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC
+
+#undef SUBTARGET_LINK_EMUL_SUFFIX
+#define SUBTARGET_LINK_EMUL_SUFFIX "_vxworks"
+
+#undef LIB_SPEC
+#define LIB_SPEC VXWORKS_LIB_SPEC
+#undef LINK_SPEC
+#define LINK_SPEC VXWORKS_LINK_SPEC " " SH_LINK_SPEC
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC
+
+#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (SH/VxWorks)", stderr);
/* There is no default multilib. */
#undef MULTILIB_DEFAULTS
+
+#undef FUNCTION_PROFILER
+#define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER