diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 2a0be9e66a6..41949f0f392 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -452,6 +452,7 @@ USER_H_INC_NEXT_POST = @user_headers_inc_next_post@
# Enable target overriding of this fragment, as in config/t-vxworks.
T_GLIMITS_H = $(srcdir)/glimits.h
+T_STDINT_GCC_H = $(srcdir)/ginclude/stdint-gcc.h
# The GCC to use for compiling crt*.o.
# Usually the one we just built.
@@ -3099,7 +3100,7 @@ gcov-tool$(exeext): $(GCOV_TOOL_OBJS) $(LIBDEPS)
# be rebuilt.
# Build the include directories.
-stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMITS_H) $(USER_H) fixinc_list
+stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMITS_H) $(T_STDINT_GCC_H) $(USER_H) fixinc_list
# Copy in the headers provided with gcc.
#
# The sed command gets just the last file name component;
@@ -3145,7 +3146,7 @@ stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMITS_H) $(USER_H) fixinc_list
cp $(srcdir)/ginclude/stdint-wrap.h include/stdint.h; \
chmod a+r include/stdint.h; \
elif [ $(USE_GCC_STDINT) = provide ]; then \
- cp $(srcdir)/ginclude/stdint-gcc.h include/stdint.h; \
+ cp $(T_STDINT_GCC_H) include/stdint.h; \
chmod a+r include/stdint.h; \
fi
set -e; for ml in `cat fixinc_list`; do \
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 1ca9d364ff0..c8824367b13 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1019,16 +1019,9 @@ 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 ...
-
+ # We provide (a tailored version of) 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"
+ use_gcc_stdint=provide
case ${enable_threads} in
no) ;;
diff --git a/gcc/config/t-vxworks b/gcc/config/t-vxworks
index 5a06ebe1b87..8441af2a8cf 100644
--- a/gcc/config/t-vxworks
+++ b/gcc/config/t-vxworks
@@ -24,18 +24,6 @@ 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.
@@ -54,5 +42,13 @@ T_GLIMITS_H = vxw-glimits.h
vxw-glimits.h: $(srcdir)/glimits.h
ID=`echo $(BASEVER_c) | sed -e 's/\./_/g'` && \
- sed -e "s/_LIMITS_H__/_LIMITS_H__$${ID}_/" < $(srcdir)/glimits.h > $@T
+ sed -e "s/_LIMITS_H__/_LIMITS_H__$${ID}_/" < $< > $@T
+ mv $@T $@
+
+# Arrange to "provide" a tailored version of stdint-gcc.h
+
+T_STDINT_GCC_H = vxw-stdint-gcc.h
+
+vxw-stdint-gcc.h: $(srcdir)/ginclude/stdint-gcc.h
+ sed -e "/#define _GCC_STDINT_H/ a #include <_yvals.h>" < $< > $@T
mv $@T $@
diff --git a/gcc/config/vxworks/stdint.h b/gcc/config/vxworks/stdint.h
deleted file mode 100644
index 5e0dbdfaabd..00000000000
--- a/gcc/config/vxworks/stdint.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* 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
-. */
-
-#ifndef __GCC_STDINT_H
-#define __GCC_STDINT_H
-
-#include <_yvals.h>
-#include
-
-#endif
diff --git a/libgcc/config/t-vxworks b/libgcc/config/t-vxworks
index b4bb85bff08..5f7ced8b561 100644
--- a/libgcc/config/t-vxworks
+++ b/libgcc/config/t-vxworks
@@ -17,3 +17,5 @@ LIBGCC2_INCLUDES = -nostdinc -I. \
*/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`
+
+CRTSTUFF_T_CFLAGS = $(LIBGCC2_INCLUDES)
diff --git a/libgcc/config/t-vxworks7 b/libgcc/config/t-vxworks7
index 6ddd3e84f33..180784bf3a1 100644
--- a/libgcc/config/t-vxworks7
+++ b/libgcc/config/t-vxworks7
@@ -18,3 +18,5 @@ LIBGCC2_INCLUDES = -nostdinc -I. \
*/mrtp*) echo -I$(VSB_DIR)/usr/h/public -I$(VSB_DIR)/usr/h ;; \
*) echo -I$(VSB_DIR)/krnl/h/system -I$(VSB_DIR)/krnl/h/public ;; \
esac`
+
+CRTSTUFF_T_CFLAGS = $(LIBGCC2_INCLUDES)