VxWorks doesn't use the __eabi function (in fact, the ecrti.o and
ecrtn.o files are not added to extra_parts). This means that the
__SBSS_END__ etc. symbols in eabi.S are always undefined. This is mostly
harmless, but it is inconvenient when one wants to create a libgcc
runtime module by doing a --whole-archive link of libgcc.a.
Moreover, it turns out that ibm-ldouble.o ends up being empty for
powerpc-wrs-vxworks, since only __ppc__ and __PPC__ are
TARGET_OS_CPP_BUILTINS, while the entire ibm-ldouble.c is protected by
#if (defined (__MACH__) || defined (__powerpc__) || defined (_AIX)) \
&& !defined (__rtems__)
To avoid the above inconvenience, and make it a little more clear what
actually gets built and used for powerpc-wrs-vxworks, create a new
t-vxworks which adds tramp.S to LIB2ADD, and use that instead of
t-ppccomm.
==changelog==
libgcc/
* config.host: Remove rs6000/t-ppccomm from powerpc-wrs-vxworks.
* config/rs6000/t-vxworks: New file.
---
libgcc/config.host | 2 +-
libgcc/config/rs6000/t-vxworks | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 libgcc/config/rs6000/t-vxworks
diff --git a/libgcc/config.host b/libgcc/config.host
index 029f6569caf..3e083ec4e34 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -1140,7 +1140,7 @@ powerpc*-*-linux*)
md_unwind_header=rs6000/linux-unwind.h
;;
powerpc-wrs-vxworks*)
- tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr t-fdpbit"
+ tmake_file="$tmake_file rs6000/t-vxworks rs6000/t-savresfgpr t-fdpbit"
extra_parts="$extra_parts crtbegin.o crtend.o"
;;
powerpc-*-lynxos*)
diff --git a/libgcc/config/rs6000/t-vxworks b/libgcc/config/rs6000/t-vxworks
new file mode 100644
index 00000000000..8c7a56fb446
--- /dev/null
+++ b/libgcc/config/rs6000/t-vxworks
@@ -0,0 +1 @@
+LIB2ADD += $(srcdir)/config/rs6000/tramp.S
--
2.19.1.3.g1d92a00e68