Commit 7a3b4887 by Steven Bosscher

Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.

gcc/ChangeLog:
	* 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).

From-SVN: r159927
parent 753d358d
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> 2010-05-27 Jan Hubicka <jh@suse.cz>
* cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)). * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
......
...@@ -974,7 +974,7 @@ INTERNAL_CFLAGS = -DIN_GCC @CROSS@ ...@@ -974,7 +974,7 @@ INTERNAL_CFLAGS = -DIN_GCC @CROSS@
# This is the variable actually used when we compile. If you change this, # This is the variable actually used when we compile. If you change this,
# you probably want to update BUILD_CFLAGS in configure.ac # 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@ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
# The C++ version. # The C++ version.
...@@ -1446,15 +1446,19 @@ OBJS = $(OBJS-common) $(OBJS-md) $(OBJS-archive) ...@@ -1446,15 +1446,19 @@ OBJS = $(OBJS-common) $(OBJS-md) $(OBJS-archive)
OBJS-onestep = libbackend.o $(OBJS-archive) OBJS-onestep = libbackend.o $(OBJS-archive)
# This lists all host object files, whether they are included in this # This lists all host objects for the front ends.
# compilation or not. ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \
ALL_HOST_OBJS = $(GCC_OBJS) $(C_OBJS) $(OBJS) libbackend.o \ $(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 \ @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) $(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) BACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
...@@ -1572,6 +1576,13 @@ s-alltree: Makefile ...@@ -1572,6 +1576,13 @@ s-alltree: Makefile
$(SHELL) $(srcdir)/../move-if-change tmp-all-tree.def all-tree.def $(SHELL) $(srcdir)/../move-if-change tmp-all-tree.def all-tree.def
$(STAMP) s-alltree $(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))
# #
# ----------------------------- # -----------------------------
......
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> 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
* gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h. * gcc-interface/trans.c: Do not include rtl.h, insclude libfuncs.h.
......
...@@ -23,6 +23,10 @@ ...@@ -23,6 +23,10 @@
* * * *
****************************************************************************/ ****************************************************************************/
/* 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 "config.h"
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
......
...@@ -19,6 +19,10 @@ You should have received a copy of the GNU General Public License ...@@ -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 along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */ <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 "config.h"
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
...@@ -47,9 +51,6 @@ along with GCC; see the file COPYING3. If not see ...@@ -47,9 +51,6 @@ along with GCC; see the file COPYING3. If not see
#include "target-def.h" #include "target-def.h"
#include "libfuncs.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 */ #include "expr.h" /* For vector_mode_valid_p */
/* FIXME: Needed for TARGET_ENUM_VA_LIST, which should be a target hook. */ /* FIXME: Needed for TARGET_ENUM_VA_LIST, which should be a target hook. */
......
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> 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
* java-tree.h (struct lang_decl_func): Change type of throws_list * java-tree.h (struct lang_decl_func): Change type of throws_list
......
...@@ -24,6 +24,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ ...@@ -24,6 +24,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
/* Written by Tom Tromey <tromey@redhat.com>. */ /* 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 "config.h"
#include "system.h" #include "system.h"
#include "coretypes.h" #include "coretypes.h"
......
...@@ -789,6 +789,12 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; ...@@ -789,6 +789,12 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
VA_FIXEDARG VA_CLOSE VA_START VA_FIXEDARG VA_CLOSE VA_START
#endif /* IN_GCC */ #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 /* Note: not all uses of the `index' token (e.g. variable names and
structure members) have been eliminated. */ structure members) have been eliminated. */
#undef bcopy #undef bcopy
......
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