Commit bbbc0595 by Olivier Hainque Committed by Olivier Hainque

Arrange to preinclude yvals.h ahead of stdint on VxWorks 7

On Vxworks 7, includers of stdint.h (which we currently "provide")
need yvals.h to have been included ahead.

Instead of altering the common stdint-gcc.h with unpleasant
vxworks specific bits to do that, we arrange to provide stdint-gcc.h
on its own along with a stdint.h wrapper which preincludes yvals.h
on vx7 then includes stdint-gcc.h.

2019-12-30  Olivier Hainque  <hainque@adacore.com>

	* config/vxworks/stdint.h: New file.  Include _yvals.h
	then stdint-gcc.h.
	* config/t-vxworks: Arrange to install the stdint.h wrapper.
	* config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers
	so it gets copied.  Set use_gcc_stdint to request _not_ crafting
	stdint.h through the common Makefile rules.

From-SVN: r279791
parent 9905fec4
2019-12-30 Olivier Hainque <hainque@adacore.com>
* config/vxworks/stdint.h: New file. Include _yvals.h
then stdint-gcc.h.
* config/t-vxworks: Arrange to install the stdint.h wrapper.
* config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers
so it gets copied. Set use_gcc_stdint to request _not_ crafting
stdint.h through the common Makefile rules.
2019-12-30 Olivier Hainque <hainque@adacore.com>
* config/vxworks/_yvals.h: New file.
* config/vxworks/_yvals-wrapper.h: New file.
* gcc/config/vxworks/math.h: Use it to wrap the VxWorks
......@@ -962,9 +962,6 @@ case ${target} in
extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
target_has_targetcm="yes"
use_gcc_stdint=provide
tm_file="${tm_file} vxworks-stdint.h"
# This private header exposes a consistent interface for checks on
# the VxWorks version our runtime header files need to perform, based on
# what the system headers adverstise:
......@@ -982,6 +979,17 @@ case ${target} in
extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
# We provide stdint.h ...
tm_file="${tm_file} vxworks-stdint.h"
# .. only through the yvals conditional wrapping mentioned above
# to abide by the VxWorks 7 expectations. The final copy is performed
# explicitly by a t-vxworks Makefile rule.
use_gcc_stdint=none
extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
case ${enable_threads} in
no) ;;
"" | yes | vxworks) thread_file='vxworks' ;;
......
......@@ -24,6 +24,18 @@ vxworks-c.o: $(srcdir)/config/vxworks-c.c
$(COMPILE) $<
$(POSTCOMPILE)
# Arrange to install our stdint.h wrapper, by copying it in the
# build-time include dir before this include dir is installed and after
# stmp-int-hdrs removes it (because it was told we don't provide it).
INSTALL_HEADERS += install-stdint.h
install-stdint.h: stmp-int-hdrs
cp -p $(srcdir)/config/vxworks/stdint.h include/stdint.h
chmod a+r include/stdint.h
$(INSTALL_HEADERS_DIR): install-stdint.h
# Both the kernel and RTP headers provide limits.h. They embed VxWorks
# specificities and are dated on some configurations so we both need to
# provide our own version and make sure the system one gets exposed.
......
/* 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 3, 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.
Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.
You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
#ifndef __GCC_STDINT_H
#define __GCC_STDINT_H
#include <_yvals.h>
#include <stdint-gcc.h>
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment