Hello,

The attached patch is the one originally sent by Rasmus at

  https://gcc.gnu.org/pipermail/gcc-patches/2018-October/508026.html. (*)

and which escaped the radar at the time.

The change looked good and turned out helpful in the context of
work on the support of shared library for VxWorks.

Tested on VxWorks 7.2 and sanity checked with a build for VxWorks 6.9,
I'll commit shortly.

Thanks for proposing it in the first place Rasmus :)

2021-12-07  Rasmus Villemoes  <r...@rasmusvillemoes.dk>

libgcc/
        * config/rs6000/t-vxworks: New file.
        * config.host (powerpc*-*-vxworks*): Use it instead of
        t-ppccomm.

---

(*)

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.

---

Attachment: 0001-Replace-t-ppccomm-by-t-vxworks-in-libgcc-config-rs60.patch
Description: Binary data

Reply via email to