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)