Hello,

This replicates for VxWorks 7 the "trick" used to let libgcc build for VxWorks
in absence of fixincludes, namely the last piece libgcc/config/t-vxworks:

...
# This ensures that the correct target headers are used; some
# VxWorks system headers have names that collide with GCC's
# internal (host) headers, e.g. regs.h.
LIBGCC2_INCLUDES = -nostdinc \
  `case "/$(MULTIDIR)" in \
     */mrtp*) echo -I$(WIND_USR)/h -I$(WIND_USR)/h/wrn/coreip ;; \
     *) echo -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip ;; \
   esac`

As an alternative resolution, fixincludes can help with this problem and we
have "hacks" for this purpose. They aren't quite complete, however, and getting
fixincludes to work properly gets significantly more difficult with VxWorks 7
because sets of include subdirs need to be looked at. The issue raised on
https://gcc.gnu.org/ml/gcc/2017-06/msg00003.html adds on top, and overall, the
fewer dependencies we have on fixincludes for VxWorks, the better.

The attached patch reinstates the existing trick for VxWorks 7, providing an
alternate t-vxworks7 file adjusting the set of system header file directories
to consider.  The rest is copied verbatim. It's too small to warrant sharing
and this will facilitate vx7 specific adjustments to the other parameters in
the future if need be.

As for the other patches of the vx7 series, this was included in a preliminary
gcc-7 based port in-house which passes almost 100% of the ACATS tests for Ada,
and lets the toolchain+libgcc build in absence of fixincludes on mainline.

With Kind Regards,

Olivier

2017-06-27  Olivier Hainque  <hain...@adacore.com>

        libgcc/
        * config/t-vxworks7: New file.
        * config.host (*-*-vxworks7): Use it.

Attachment: 0005-adjust-libgcc-build-support-for-VxWorks-to-VxWorks-7.patch
Description: Binary data

Reply via email to