]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/ChangeLog:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 May 2010 16:02:50 +0000 (16:02 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 May 2010 16:02:50 +0000 (16:02 +0000)
* Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
(ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
(ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
(ALL_HOST_OBJS): Now a union of the above two.
<section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
all files in ALL_HOST_FRONTEND_OBJS.
* system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
* c-common.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).

ada/ChangeLog:
* gcc-interface/decl.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).

java/ChangeLog:
* buildings.c: Pretend to be a backend file by undefining
IN_GCC_FRONTEND (still need rtl.h here).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159927 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/c-common.c
gcc/java/ChangeLog
gcc/java/builtins.c
gcc/system.h

index 9bb9b8cc0fd4e11e8f50dc396b0c112efb46def9..a981b728c4b052e6d1e3f0a4109ccb14a99326cc 100644 (file)
@@ -1,3 +1,16 @@
+2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
+       (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
+       (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
+       (ALL_HOST_OBJS): Now a union of the above two.
+       <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
+       all files in ALL_HOST_FRONTEND_OBJS.
+       * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
+
+       * c-common.c: Pretend to be a backend file by undefining
+       IN_GCC_FRONTEND (still need rtl.h here).
+
 2010-05-27  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
index 42b8a8848c236f6ac106ad94b2eeeb1c8b5addb2..677b2d07cf37af6f3a02b507d643038cf33a6b0d 100644 (file)
@@ -974,7 +974,7 @@ INTERNAL_CFLAGS = -DIN_GCC @CROSS@
 
 # This is the variable actually used when we compile. If you change this,
 # you probably want to update BUILD_CFLAGS in configure.ac
-ALL_CFLAGS = $(T_CFLAGS) \
+ALL_CFLAGS = $(T_CFLAGS) $(CFLAGS-$@) \
   $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
 
 # The C++ version.
@@ -1446,15 +1446,19 @@ OBJS = $(OBJS-common) $(OBJS-md) $(OBJS-archive)
 
 OBJS-onestep = libbackend.o $(OBJS-archive)
 
-# This lists all host object files, whether they are included in this
-# compilation or not.
-ALL_HOST_OBJS = $(GCC_OBJS) $(C_OBJS) $(OBJS) libbackend.o \
+# This lists all host objects for the front ends.
+ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
+  $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
+
+ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) libbackend.o \
   @TREEBROWSER@ main.o gccspec.o version.o intl.o prefix.o cppspec.o \
-  $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) \
-  $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) \
-  mips-tfile.o mips-tdump.o \
+  $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) mips-tfile.o mips-tdump.o \
   $(GCOV_OBJS) $(GCOV_DUMP_OBJS)
 
+# This lists all host object files, whether they are included in this
+# compilation or not.
+ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
+
 BACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
 
 MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
@@ -1572,6 +1576,13 @@ s-alltree: Makefile
        $(SHELL) $(srcdir)/../move-if-change tmp-all-tree.def all-tree.def
        $(STAMP) s-alltree
 
+# Now that LANG_MAKEFRAGS are included, we can add special flags to the
+# objects that belong to the front ends.  We add an extra define that
+# causes back-end specific include files to be poisoned, in the hope that
+# we can avoid introducing dependencies of the front ends on things that
+# no front end should ever look at (e.g. everything RTL related).
+$(foreach file,$(ALL_HOST_FRONTEND_OBJS),$(eval CFLAGS-$(file) += -DIN_GCC_FRONTEND))
+
 #\f
 
 # -----------------------------
index d3493fcc3673652dea008a531bf8296c232035f1..d54d2dc15ce1030625edb8c33947b16dc518529d 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * gcc-interface/decl.c: Pretend to be a backend file by undefining
+       IN_GCC_FRONTEND (still need rtl.h here).
+
 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
 
        * gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h.
index 137d523ddbfa09fd23d2dcb432c955605ea8eb4d..5740a0899b12f9dde070042f1219659543e2150e 100644 (file)
  *                                                                          *
  ****************************************************************************/
 
+/* FIXME: Still need to include rtl.h here (via expr.h) because this file
+   actually generates RTL (search for gen_rtx_* in gnat_to_gnu_entity).  */
+#undef IN_GCC_FRONTEND
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
index b8390304a83831032536cc90e13647c60751d826..1fd11c50c64f7aa53f987b91e32e1f4c3f1d735b 100644 (file)
@@ -19,6 +19,10 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+/* FIXME: Still need to include rtl.h here (via expr.h) in a front-end file.
+   Pretend this is a back-end file.  */
+#undef IN_GCC_FRONTEND
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
@@ -47,9 +51,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target-def.h"
 #include "libfuncs.h"
 
-/* FIXME: Still need to include rtl.h here (via expr.h) in a front-end file.
-   Pretend this is a back-end file.  */
-#define IN_GCC_BACKEND
 #include "expr.h" /* For vector_mode_valid_p */
 
 /* FIXME: Needed for TARGET_ENUM_VA_LIST, which should be a target hook.  */
index 62839b4fde1a7fd72b9643fe3a046d498afe7828..45c1931ed95c85c4dba9e1dffa1be165e74c032f 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * buildings.c: Pretend to be a backend file by undefining
+       IN_GCC_FRONTEND (still need rtl.h here).
+
 2010-05-26  Nathan Froyd  <froydnj@codesourcery.com>
 
        * java-tree.h (struct lang_decl_func): Change type of throws_list
index a3658058a555c2f27bd3388220da462332912ced..74859411758185fd3841ce3cb44b0b3a9940ca4f 100644 (file)
@@ -24,6 +24,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
 
 /* Written by Tom Tromey <tromey@redhat.com>.  */
 
+/* FIXME: Still need to include rtl.h here (see below).  */
+#undef IN_GCC_FRONTEND
+
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
index e764e584c2db4183e9558b3a881037ba5f068a4b..b87cf0db0d9572d142be892f23ee50832a1485db 100644 (file)
@@ -789,6 +789,12 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
   VA_FIXEDARG VA_CLOSE VA_START
 #endif /* IN_GCC */
 
+/* Front ends should never have to include middle-end headers.  Enforce
+   this by poisoning the header double-include protection defines.  */
+#ifdef IN_GCC_FRONTEND
+#pragma GCC poison GCC_RTL_H
+#endif
+
 /* Note: not all uses of the `index' token (e.g. variable names and
    structure members) have been eliminated.  */
 #undef bcopy