From 39dabefd0e5e21b7829ec4ddf811ab19346983d7 Mon Sep 17 00:00:00 2001
From: Steven Bosscher <steven@gcc.gnu.org>
Date: Sat, 5 Jun 2010 20:33:22 +0000
Subject: [PATCH] c-common.c: Move to c-family/.

gcc/ChangeLog:
	* c-common.c: Move to c-family/.
	* c-common.def: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-format.h : Likewise.
	* c-gimplify.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c.opt: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pragma.h: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* stub-objc.c: Likewise.

	* gengtype.c (get_file_langdir): Special-case files in c-family/.
	(get_output_file_with_visibility): Fix name for c-common.h.
	* c-config-lang.in: Update paths in gtfiles for files in c-family/.

	* c-tree.h: Update include path for moved files.
	* c-lang.c: Likewise.
	* c-lang.h: Likewise.
	* c-parser.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-objc-common.c: Likewise.
	* configure.ac: Make sure c-family/ exists in the build directory.
	* configure: Regenerate.
	* Makefile.in: Update paths for moved files.  Regroup files per
	location and update dependencies.  Move generated_files down after
	ALL_GTFILES_H.

	* config/spu/spu-c.c: Update paths for moved files.
	* config/mep/mep-pragma.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/sol2-c.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/v850/v850-c.c: Likewise.

	* config/t-darwin: Fix dependencies for moved files.
	* config/t-sol2: Fix dependencies for moved files.
	* config/mep/t-mep: Fix dependencies for moved files.
	* config/ia64/t-ia64: Fix dependencies for moved files.
	* config/rs6000/t-rs6000: Fix dependencies for moved files.
	* config/v850/t-v850: Fix dependencies for moved files.
	* config/v850/t-v850e: Fix dependencies for moved files.

	* config/m32c/m32c-pragma.c

	* po/exgettext: Look in c-family/ also.

c-family/ChangeLog:
	* c-common.c: Include gt-c-family-c-common.h.
	* c-pragma.c: Include gt-c-family-c-pragma.h.

objc/ChangeLog:
	* objc-act.c: Update include path for moved files.
	* objc-lang.c: Likewise.
	* config-lang.in: Update paths in gtfiles for files in c-family/.

objcp/ChangeLog:
	* objcp-lang.c: Update include path for moved files.
	* config-lang.in: Update paths in gtfiles for files in c-family/.

cp/ChangeLog:
	* typeck.c: Update include path for moved files.
	* decl.c: Likewise.
	* rtti.c: Likewise.
	* cp-gimplify.c: Likewise.
	* cp-lang.c: Likewise.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* cxx-pretty-print.h: Likewise.
	* decl2.c: Likewise.
	* parser.c: Likewise.
	* cp-objcp-common.c: Likewise.
	* cp-tree.h: Likewise.
	* name-lookup.c: Likewise.
	* lex.c: Likewise.
	* name-lookup.h: Likewise.
	* config-lang.in: Update paths in gtfiles for files in c-family/.
	* Make-lang.in: Likewise.

From-SVN: r160330
---
 gcc/ChangeLog                       |  66 +++++++
 gcc/Makefile.in                     | 278 +++++++++++++++-------------
 gcc/c-config-lang.in                |   2 +-
 gcc/c-convert.c                     |   2 +-
 gcc/c-decl.c                        |   6 +-
 gcc/c-family/ChangeLog              |  31 ++++
 gcc/{ => c-family}/c-ada-spec.c     |   0
 gcc/{ => c-family}/c-ada-spec.h     |   0
 gcc/{ => c-family}/c-common.c       |   2 +-
 gcc/{ => c-family}/c-common.def     |   0
 gcc/{ => c-family}/c-common.h       |   0
 gcc/{ => c-family}/c-cppbuiltin.c   |   0
 gcc/{ => c-family}/c-dump.c         |   0
 gcc/{ => c-family}/c-format.c       |   0
 gcc/{ => c-family}/c-format.h       |   0
 gcc/{ => c-family}/c-gimplify.c     |   0
 gcc/{ => c-family}/c-lex.c          |   0
 gcc/{ => c-family}/c-omp.c          |   0
 gcc/{ => c-family}/c-opts.c         |   0
 gcc/{ => c-family}/c-pch.c          |   0
 gcc/{ => c-family}/c-ppoutput.c     |   0
 gcc/{ => c-family}/c-pragma.c       |   2 +-
 gcc/{ => c-family}/c-pragma.h       |   0
 gcc/{ => c-family}/c-pretty-print.c |   0
 gcc/{ => c-family}/c-pretty-print.h |   0
 gcc/{ => c-family}/c-semantics.c    |   0
 gcc/{ => c-family}/c.opt            |   0
 gcc/{ => c-family}/stub-objc.c      |   0
 gcc/c-lang.c                        |   4 +-
 gcc/c-lang.h                        |   2 +-
 gcc/c-objc-common.c                 |   2 +-
 gcc/c-parser.c                      |   4 +-
 gcc/c-tree.h                        |   2 +-
 gcc/config/arm/arm-c.c              |   2 +-
 gcc/config/arm/arm.c                |   2 +-
 gcc/config/avr/avr-c.c              |   2 +-
 gcc/config/darwin-c.c               |   4 +-
 gcc/config/h8300/h8300.c            |   2 +-
 gcc/config/i386/i386-c.c            |   4 +-
 gcc/config/i386/msformat-c.c        |   4 +-
 gcc/config/ia64/ia64-c.c            |   4 +-
 gcc/config/ia64/t-ia64              |   2 +-
 gcc/config/m32c/m32c-pragma.c       |   2 +-
 gcc/config/mep/mep-pragma.c         |   2 +-
 gcc/config/mep/t-mep                |   2 +-
 gcc/config/rs6000/rs6000-c.c        |   4 +-
 gcc/config/rs6000/t-rs6000          |   2 +-
 gcc/config/sol2-c.c                 |   6 +-
 gcc/config/spu/spu-c.c              |   4 +-
 gcc/config/t-darwin                 |   2 +-
 gcc/config/t-sol2                   |   4 +-
 gcc/config/v850/t-v850              |   2 +-
 gcc/config/v850/t-v850e             |   2 +-
 gcc/config/v850/v850-c.c            |   2 +-
 gcc/configure                       |   2 +-
 gcc/configure.ac                    |   2 +-
 gcc/cp/ChangeLog                    |  20 ++
 gcc/cp/Make-lang.in                 |  10 +-
 gcc/cp/config-lang.in               |   2 +-
 gcc/cp/cp-gimplify.c                |   2 +-
 gcc/cp/cp-lang.c                    |   2 +-
 gcc/cp/cp-objcp-common.c            |   2 +-
 gcc/cp/cp-tree.h                    |   2 +-
 gcc/cp/cxx-pretty-print.h           |   2 +-
 gcc/cp/decl.c                       |   4 +-
 gcc/cp/decl2.c                      |   6 +-
 gcc/cp/lex.c                        |   2 +-
 gcc/cp/name-lookup.c                |   2 +-
 gcc/cp/name-lookup.h                |   2 +-
 gcc/cp/parser.c                     |   4 +-
 gcc/cp/pt.c                         |   2 +-
 gcc/cp/rtti.c                       |   2 +-
 gcc/cp/semantics.c                  |   2 +-
 gcc/cp/typeck.c                     |   2 +-
 gcc/gengtype.c                      |  16 +-
 gcc/objc/ChangeLog                  |   6 +
 gcc/objc/config-lang.in             |   2 +-
 gcc/objc/objc-act.c                 |   4 +-
 gcc/objc/objc-lang.c                |   2 +-
 gcc/objcp/ChangeLog                 |   5 +
 gcc/objcp/config-lang.in            |   2 +-
 gcc/objcp/objcp-lang.c              |   2 +-
 gcc/po/exgettext                    |   2 +-
 83 files changed, 372 insertions(+), 206 deletions(-)
 create mode 100644 gcc/c-family/ChangeLog
 rename gcc/{ => c-family}/c-ada-spec.c (100%)
 rename gcc/{ => c-family}/c-ada-spec.h (100%)
 rename gcc/{ => c-family}/c-common.c (99%)
 rename gcc/{ => c-family}/c-common.def (100%)
 rename gcc/{ => c-family}/c-common.h (100%)
 rename gcc/{ => c-family}/c-cppbuiltin.c (100%)
 rename gcc/{ => c-family}/c-dump.c (100%)
 rename gcc/{ => c-family}/c-format.c (100%)
 rename gcc/{ => c-family}/c-format.h (100%)
 rename gcc/{ => c-family}/c-gimplify.c (100%)
 rename gcc/{ => c-family}/c-lex.c (100%)
 rename gcc/{ => c-family}/c-omp.c (100%)
 rename gcc/{ => c-family}/c-opts.c (100%)
 rename gcc/{ => c-family}/c-pch.c (100%)
 rename gcc/{ => c-family}/c-ppoutput.c (100%)
 rename gcc/{ => c-family}/c-pragma.c (99%)
 rename gcc/{ => c-family}/c-pragma.h (100%)
 rename gcc/{ => c-family}/c-pretty-print.c (100%)
 rename gcc/{ => c-family}/c-pretty-print.h (100%)
 rename gcc/{ => c-family}/c-semantics.c (100%)
 rename gcc/{ => c-family}/c.opt (100%)
 rename gcc/{ => c-family}/stub-objc.c (100%)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7f7ce36531b2..f9415a23f0c4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,69 @@
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* c-common.c: Move to c-family/.
+	* c-common.def: Likewise.
+	* c-common.h: Likewise.
+	* c-cppbuiltin.c: Likewise.
+	* c-dump.c: Likewise.
+	* c-format.c: Likewise.
+	* c-format.h : Likewise.
+	* c-gimplify.c: Likewise.
+	* c-lex.c: Likewise.
+	* c-omp.c: Likewise.
+	* c.opt: Likewise.
+	* c-opts.c: Likewise.
+	* c-pch.c: Likewise.
+	* c-ppoutput.c: Likewise.
+	* c-pragma.c: Likewise.
+	* c-pragma.h: Likewise.
+	* c-pretty-print.c: Likewise.
+	* c-pretty-print.h: Likewise.
+	* c-semantics.c: Likewise.
+	* stub-objc.c: Likewise.
+
+	* gengtype.c (get_file_langdir): Special-case files in c-family/.
+	(get_output_file_with_visibility): Fix name for c-common.h.
+	* c-config-lang.in: Update paths in gtfiles for files in c-family/.
+
+	* c-tree.h: Update include path for moved files.
+	* c-lang.c: Likewise.
+	* c-lang.h: Likewise.
+	* c-parser.c: Likewise.
+	* c-convert.c: Likewise.
+	* c-decl.c: Likewise.
+	* c-objc-common.c: Likewise.
+	* configure.ac: Make sure c-family/ exists in the build directory.
+	* configure: Regenerate.
+	* Makefile.in: Update paths for moved files.  Regroup files per
+	location and update dependencies.  Move generated_files down after
+	ALL_GTFILES_H.
+
+	* config/spu/spu-c.c: Update paths for moved files.
+	* config/mep/mep-pragma.c: Likewise.
+	* config/darwin-c.c: Likewise.
+	* config/i386/msformat-c.c: Likewise.
+	* config/i386/i386-c.c: Likewise.
+	* config/avr/avr-c.c: Likewise.
+	* config/sol2-c.c: Likewise.
+	* config/ia64/ia64-c.c: Likewise.
+	* config/rs6000/rs6000-c.c: Likewise.
+	* config/arm/arm.c: Likewise.
+	* config/arm/arm-c.c: Likewise.
+	* config/h8300/h8300.c: Likewise.
+	* config/v850/v850-c.c: Likewise.
+
+	* config/t-darwin: Fix dependencies for moved files.
+	* config/t-sol2: Fix dependencies for moved files.
+	* config/mep/t-mep: Fix dependencies for moved files.
+	* config/ia64/t-ia64: Fix dependencies for moved files.
+	* config/rs6000/t-rs6000: Fix dependencies for moved files.
+	* config/v850/t-v850: Fix dependencies for moved files.
+	* config/v850/t-v850e: Fix dependencies for moved files.
+
+	* config/m32c/m32c-pragma.c
+
+	* po/exgettext: Look in c-family/ also.
+
 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* tree-ssa-dce.c (mark_last_stmt_necessary): New function.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index b46985087f54..8d9b8082f16f 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -502,7 +502,7 @@ check_gcc_parallelize=execute.exp=execute/2* \
 		      compile.exp dg.exp \
 		      dg-torture.exp,builtins.exp \
 		      struct-layout-1.exp,unsorted.exp,stackalign.exp,i386.exp
-lang_opt_files=@lang_opt_files@ $(srcdir)/c.opt $(srcdir)/common.opt
+lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt
 lang_specs_files=@lang_specs_files@
 lang_tree_files=@lang_tree_files@
 target_cpu_default=@target_cpu_default@
@@ -873,11 +873,11 @@ FIXED_VALUE_H = fixed-value.h $(MACHMODE_H) double-int.h
 RTL_H = $(RTL_BASE_H) genrtl.h vecir.h
 PARAMS_H = params.h params.def
 BUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def
-TREE_H = tree.h all-tree.def tree.def c-common.def $(lang_tree_files) \
-          $(MACHMODE_H) tree-check.h $(BUILTINS_DEF) \
-          $(INPUT_H) statistics.h $(VEC_H) treestruct.def $(HASHTAB_H) \
-          double-int.h alias.h $(SYMTAB_H) options.h vecir.h \
-	  $(REAL_H) $(FIXED_VALUE_H)
+TREE_H = tree.h all-tree.def tree.def c-family/c-common.def \
+	$(lang_tree_files) $(MACHMODE_H) tree-check.h $(BUILTINS_DEF) \
+	$(INPUT_H) statistics.h $(VEC_H) treestruct.def $(HASHTAB_H) \
+	double-int.h alias.h $(SYMTAB_H) options.h vecir.h \
+	$(REAL_H) $(FIXED_VALUE_H)
 REGSET_H = regset.h $(BITMAP_H) hard-reg-set.h
 BASIC_BLOCK_H = basic-block.h $(PREDICT_H) $(VEC_H) $(FUNCTION_H) cfghooks.h
 GIMPLE_H = gimple.h gimple.def gsstruct.def pointer-set.h $(VEC_H) \
@@ -917,8 +917,9 @@ GGC_H = ggc.h gtype-desc.h statistics.h
 TIMEVAR_H = timevar.h timevar.def
 INSN_ATTR_H = insn-attr.h $(INSN_ADDR_H)
 INSN_ADDR_H = $(srcdir)/insn-addr.h vecprim.h
-C_COMMON_H = c-common.h $(SPLAY_TREE_H) $(CPPLIB_H) $(GGC_H) $(DIAGNOSTIC_CORE_H)
-C_PRAGMA_H = c-pragma.h $(CPPLIB_H)
+C_COMMON_H = c-family/c-common.h c-family/c-common.def \
+	$(SPLAY_TREE_H) $(CPPLIB_H) $(GGC_H) $(DIAGNOSTIC_CORE_H)
+C_PRAGMA_H = c-family/c-pragma.h $(CPPLIB_H)
 C_TREE_H = c-tree.h $(C_COMMON_H) $(TOPLEV_H) $(DIAGNOSTIC_H)
 SYSTEM_H = system.h hwint.h $(srcdir)/../include/libiberty.h \
 	$(srcdir)/../include/safe-ctype.h $(srcdir)/../include/filenames.h
@@ -945,7 +946,8 @@ SSAEXPAND_H = ssaexpand.h $(TREE_SSA_LIVE_H)
 PRETTY_PRINT_H = pretty-print.h $(INPUT_H) $(OBSTACK_H)
 DIAGNOSTIC_CORE_H = diagnostic-core.h input.h diagnostic.def
 DIAGNOSTIC_H = diagnostic.h $(DIAGNOSTIC_CORE_H) $(PRETTY_PRINT_H)
-C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
+C_PRETTY_PRINT_H = c-family/c-pretty-print.h $(PRETTY_PRINT_H) \
+	$(C_COMMON_H) $(TREE_H)
 SCEV_H = tree-scalar-evolution.h $(GGC_H) tree-chrec.h $(PARAMS_H)
 LAMBDA_H = lambda.h $(TREE_H) $(VEC_H) $(GGC_H)
 TREE_DATA_REF_H = tree-data-ref.h $(LAMBDA_H) omega.h graphds.h $(SCEV_H)
@@ -1128,15 +1130,20 @@ FORTRAN_TARGET_OBJS=@fortran_target_objs@
 GCC_OBJS = gcc.o opts-common.o gcc-options.o diagnostic.o pretty-print.o \
   input.o
 
+# Language-specific object files shared by all C-family front ends.
+C_COMMON_OBJS = c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o \
+  c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o \
+  c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o \
+  c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o \
+  c-family/c-semantics.o c-family/c-ada-spec.o
+
 # Language-specific object files for C and Objective C.
-C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \
-  c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
-  c-ppoutput.o c-cppbuiltin.o \
-  c-objc-common.o c-dump.o c-pch.o c-parser.o $(C_TARGET_OBJS) \
-  c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o c-ada-spec.o
+C_AND_OBJC_OBJS = attribs.o c-errors.o c-decl.o c-typeck.o \
+  c-convert.o c-aux-info.o c-objc-common.o c-parser.o tree-mudflap.o \
+  $(C_COMMON_OBJS) $(C_TARGET_OBJS)
 
 # Language-specific object files for C.
-C_OBJS = c-lang.o stub-objc.o $(C_AND_OBJC_OBJS)
+C_OBJS = c-lang.o c-family/stub-objc.o $(C_AND_OBJC_OBJS)
 
 # Language-independent object files.
 # We put the insn-*.o files first so that a parallel make will build
@@ -1571,7 +1578,7 @@ s-alltree: Makefile
 	rm -f tmp-all-tree.def
 	echo '#include "tree.def"' > tmp-all-tree.def
 	echo 'END_OF_BASE_TREE_CODES' >> tmp-all-tree.def
-	echo '#include "c-common.def"' >> tmp-all-tree.def
+	echo '#include "c-family/c-common.def"' >> tmp-all-tree.def
 	ltf="$(lang_tree_files)"; for f in $$ltf; do \
 	  echo "#include \"$$f\""; \
 	done | sed 's|$(srcdir)/||' >> tmp-all-tree.def
@@ -1970,62 +1977,58 @@ s-crt0:	$(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
 # Note that dependencies on obstack.h are not written
 # because that file is not part of GCC.
 
-# C language specific files.
-
-c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H)
-c-parser.o : c-parser.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(GGC_H) $(TIMEVAR_H) $(C_TREE_H) $(INPUT_H) $(FLAGS_H) $(TOPLEV_H) output.h \
-    $(CPPLIB_H) gt-c-parser.h $(RTL_H) langhooks.h $(C_COMMON_H) $(C_PRAGMA_H) \
-    $(VEC_H) $(TARGET_H) $(CGRAPH_H) $(PLUGIN_H)
-
 srcextra: gcc.srcextra lang.srcextra
 
 gcc.srcextra: gengtype-lex.c
 	-cp -p $^ $(srcdir)
 
-incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
-		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
-		$(MACHMODE_H)
+# C language specific files.
+c-aux-info.o : c-aux-info.c  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+	$(C_TREE_H) $(TREE_H) $(FLAGS_H) $(TOPLEV_H)
 
-c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
-    debug.h $(TOPLEV_H) intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
-    opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
-    $(EXCEPT_H) $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
-    $(DIAGNOSTIC_CORE_H) $(INPUT_H) langhooks.h tree-mudflap.h \
-    pointer-set.h tree-iterator.h c-lang.h $(PLUGIN_H) c-ada-spec.h
-c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-    $(TREE_H) $(C_TREE_H) $(TARGET_H) $(FLAGS_H) intl.h output.h $(EXPR_H) \
-    $(TOPLEV_H) langhooks.h $(TREE_FLOW_H) tree-iterator.h c-lang.h
-c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(C_TREE_H) $(DIAGNOSTIC_CORE_H) \
-    langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h \
-    c-objc-common.h $(C_PRAGMA_H) c-common.def $(TREE_INLINE_H)
-stub-objc.o : stub-objc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
-    $(C_COMMON_H)
-c-lex.o : c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(FIXED_VALUE_H) debug.h $(C_TREE_H) $(C_COMMON_H) $(SPLAY_TREE_H) \
-    $(C_PRAGMA_H) $(INPUT_H) intl.h $(FLAGS_H) $(TOPLEV_H) output.h \
-    $(CPPLIB_H) $(TARGET_H) $(TIMEVAR_H)
-c-ppoutput.o : c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-    $(C_COMMON_H) $(TREE_H) $(CPPLIB_H) $(CPP_INTERNAL_H) $(C_PRAGMA_H)
-c-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-    $(TREE_H) $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) \
-    langhooks.h $(GGC_H) $(C_PRETTY_PRINT_H) c-objc-common.h intl.h \
-    tree-pretty-print.h
-c-aux-info.o : c-aux-info.c  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(C_TREE_H) $(FLAGS_H) $(TOPLEV_H)
 c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-    $(TREE_H) $(FLAGS_H) $(TOPLEV_H) $(C_COMMON_H) convert.h $(C_TREE_H) \
-    langhooks.h $(TARGET_H)
-c-pragma.o: c-pragma.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
-    $(TREE_H) $(FUNCTION_H) $(C_PRAGMA_H) $(TOPLEV_H) output.h $(TM_P_H) \
-    $(C_COMMON_H) $(TARGET_H) gt-c-pragma.h $(CPPLIB_H) $(FLAGS_H) $(DIAGNOSTIC_H) \
-    opts.h $(PLUGINS_H)
+	$(TREE_H) $(C_TREE_H) $(FLAGS_H) $(TOPLEV_H) $(C_COMMON_H) convert.h \
+	langhooks.h $(TARGET_H)
+
+c-decl.o : c-decl.c c-lang.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+	$(TREE_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) \
+	output.h debug.h $(TOPLEV_H) intl.h $(TM_P_H) $(TREE_INLINE_H) $(TIMEVAR_H) \
+	opts.h $(C_PRAGMA_H) gt-c-decl.h $(CGRAPH_H) $(HASHTAB_H) libfuncs.h \
+	$(EXCEPT_H) $(LANGHOOKS_DEF_H) $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) \
+	$(DIAGNOSTIC_CORE_H) $(INPUT_H) langhooks.h tree-mudflap.h \
+	pointer-set.h tree-iterator.h  $(PLUGIN_H) c-family/c-ada-spec.h
+
+c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+	$(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H)
+
+c-lang.o : c-lang.c c-objc-common.h \
+	$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+	$(C_TREE_H) $(DIAGNOSTIC_CORE_H) \
+	langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-c.h \
+	$(C_PRAGMA_H) $(TREE_INLINE_H)
+
+c-objc-common.o : c-objc-common.c c-objc-common.h \
+	$(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TREE_H) $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) \
+	langhooks.h $(GGC_H) $(C_PRETTY_PRINT_H) intl.h \
+	tree-pretty-print.h
+
+c-parser.o : c-parser.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TM_H) $(TREE_H) $(C_TREE_H) $(C_COMMON_H) $(C_PRAGMA_H) $(CPPLIB_H) \
+	$(GGC_H) $(TIMEVAR_H) $(INPUT_H) $(FLAGS_H) $(TOPLEV_H) output.h \
+	gt-c-parser.h langhooks.h \
+	$(VEC_H) $(TARGET_H) $(CGRAPH_H) $(PLUGIN_H)
+
+c-typeck.o : c-typeck.c c-lang.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+	$(TREE_H) $(C_TREE_H) $(TARGET_H) $(FLAGS_H) intl.h output.h $(EXPR_H) \
+	$(TOPLEV_H) langhooks.h $(TREE_FLOW_H) tree-iterator.h
+
+
+
 graph.o: graph.c $(SYSTEM_H) coretypes.h $(TM_H) $(TOPLEV_H) $(FLAGS_H) output.h \
     $(RTL_H) $(FUNCTION_H) hard-reg-set.h $(BASIC_BLOCK_H) graph.h $(OBSTACK_H) \
     $(CONFIG_H) $(EMIT_RTL_H)
+
 sbitmap.o: sbitmap.c sbitmap.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(BASIC_BLOCK_H)
 ebitmap.o: ebitmap.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 	$(EBITMAP_H) $(RTL_H) $(FLAGS_H) $(OBSTACK_H)
@@ -2058,62 +2061,104 @@ lto-wrapper$(exeext): lto-wrapper.o intl.o $(LIBDEPS)
 lto-wrapper.o: lto-wrapper.c $(CONFIG_H) $(SYSTEM_H) defaults.h intl.h \
 	$(OBSTACK_H)
 
-# A file used by all variants of C.
-
-c-common.o : c-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+# Files used by all variants of C.
+c-family/c-common.o : c-family/c-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TM_H) $(TREE_H) \
 	$(OBSTACK_H) $(C_COMMON_H) $(FLAGS_H) $(TOPLEV_H) output.h $(C_PRAGMA_H) \
 	$(GGC_H) $(EXPR_H) builtin-types.def builtin-attrs.def \
-	$(DIAGNOSTIC_H) gt-c-common.h langhooks.h $(RTL_H) \
-	$(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \
+	$(DIAGNOSTIC_H) langhooks.h $(RTL_H) \
+	$(TARGET_H) tree-iterator.h langhooks.h tree-mudflap.h \
 	intl.h opts.h $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \
 	$(BUILTINS_DEF) $(CGRAPH_H) $(BASIC_BLOCK_H) $(TARGET_DEF_H) \
-	libfuncs.h
+	libfuncs.h \
+	gt-c-family-c-common.h
 
-c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \
-	$(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-	$(DIAGNOSTIC_H) tree-iterator.h intl.h tree-pretty-print.h
+c-family/c-cppbuiltin.o : c-family/c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) \
+	coretypes.h $(TM_H) $(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) \
+	$(FLAGS_H) $(TOPLEV_H) output.h $(EXCEPT_H) $(TREE_H) $(TARGET_H) \
+	$(TM_P_H) $(BASEVER) debug.h
+	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
+		-DBASEVER=$(BASEVER_s) $< $(OUTPUT_OPTION)
+
+c-family/c-dump.o : c-family/c-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TM_H) $(TREE_H) $(TREE_DUMP_H)
 
-c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+c-family/c-format.o : c-family/c-format.c c-family/c-format.h \
+	$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) langhooks.h \
+	$(C_COMMON_H) $(FLAGS_H) $(TOPLEV_H) intl.h \
+	$(DIAGNOSTIC_CORE_H) alloc-pool.h
+
+c-family/c-gimplify.o : c-family/c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
+	$(C_COMMON_H) $(DIAGNOSTIC_CORE_H) $(GIMPLE_H) \
+	$(FLAGS_H) langhooks.h $(TOPLEV_H) $(TREE_FLOW_H) $(LANGHOOKS_DEF_H) \
+	$(TM_H) coretypes.h $(C_PRETTY_PRINT_H) $(CGRAPH_H) $(BASIC_BLOCK_H) \
+	hard-reg-set.h $(TREE_DUMP_H) $(TREE_INLINE_H)
+
+c-family/c-lex.o : c-family/c-lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TM_H) $(TREE_H) $(FIXED_VALUE_H) debug.h $(C_COMMON_H) $(SPLAY_TREE_H) \
+	$(C_PRAGMA_H) $(INPUT_H) intl.h $(FLAGS_H) $(TOPLEV_H) output.h \
+	$(CPPLIB_H) $(TARGET_H) $(TIMEVAR_H)
+
+c-family/c-omp.o : c-family/c-omp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TREE_H) $(C_COMMON_H) $(TOPLEV_H) $(GIMPLE_H) langhooks.h
+
+c-family/c-opts.o : c-family/c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
         $(TREE_H) $(C_PRAGMA_H) $(FLAGS_H) $(TOPLEV_H) langhooks.h \
         $(DIAGNOSTIC_H) intl.h debug.h $(C_COMMON_H)	\
-        opts.h options.h $(MKDEPS_H) incpath.h cppdefault.h $(C_TREE_H)
+        opts.h options.h $(MKDEPS_H) incpath.h cppdefault.h
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
 		$< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
 
-c-cppbuiltin.o : c-cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-	$(TREE_H) version.h $(C_COMMON_H) $(C_PRAGMA_H) $(FLAGS_H) \
-	$(TOPLEV_H) output.h $(EXCEPT_H) $(TREE_H) $(TARGET_H) $(TM_P_H) \
-	$(BASEVER) debug.h
+c-family/c-pch.o : c-family/c-pch.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(CPPLIB_H) $(TREE_H) $(C_COMMON_H) output.h $(TOPLEV_H) $(C_PRAGMA_H) \
+	$(GGC_H) debug.h langhooks.h $(FLAGS_H) hosthooks.h version.h \
+	$(TARGET_H) opts.h $(TIMEVAR_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
-		-DBASEVER=$(BASEVER_s) $< $(OUTPUT_OPTION)
+	  -DHOST_MACHINE=\"$(host)\" -DTARGET_MACHINE=\"$(target)\" \
+	  $< $(OUTPUT_OPTION)
 
-# A file used by all variants of C and some other languages.
+c-family/c-ppoutput.o : c-family/c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) \
+	coretypes.h $(C_COMMON_H) $(TREE_H) $(CPPLIB_H) $(CPP_INTERNAL_H) \
+	$(C_PRAGMA_H)
 
-attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-	$(FLAGS_H) $(TOPLEV_H) output.h $(GGC_H) $(TM_P_H) \
-	$(TARGET_H) langhooks.h $(CPPLIB_H) $(PLUGIN_H)
+c-family/c-pragma.o: c-family/c-pragma.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+	$(TM_H) $(TREE_H) $(FUNCTION_H) $(C_PRAGMA_H) $(TOPLEV_H) output.h \
+	$(TM_P_H) $(C_COMMON_H) $(TARGET_H) $(CPPLIB_H) $(FLAGS_H) \
+	$(DIAGNOSTIC_H) opts.h $(PLUGINS_H) \
+	gt-c-family-c-pragma.h
 
-c-format.o : c-format.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) langhooks.h \
-	$(C_COMMON_H) $(FLAGS_H) $(TOPLEV_H) intl.h $(DIAGNOSTIC_CORE_H) alloc-pool.h \
-	c-format.h
+c-family/c-pretty-print.o : c-family/c-pretty-print.c $(C_PRETTY_PRINT_H) \
+	$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+	$(DIAGNOSTIC_H) tree-iterator.h intl.h tree-pretty-print.h
 
-c-semantics.o : c-semantics.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-	$(TREE_H) $(FLAGS_H) $(TOPLEV_H) output.h $(C_COMMON_H) $(FUNCTION_H) \
-	langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) tree-iterator.h
+c-family/c-semantics.o : c-family/c-semantics.c $(CONFIG_H) $(SYSTEM_H) \
+	coretypes.h $(TM_H) $(TREE_H) $(FLAGS_H) $(TOPLEV_H) output.h \
+	$(C_COMMON_H) $(FUNCTION_H) langhooks.h $(SPLAY_TREE_H) $(TIMEVAR_H) \
+	tree-iterator.h
 
-c-dump.o : c-dump.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-	$(C_TREE_H) $(TREE_DUMP_H)
+c-family/c-ada-spec.o : c-family/c-ada-spec.c c-family/c-ada-spec.h \
+	$(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(CPP_ID_DATA_H) $(TM_H) \
+	coretypes.h tree-iterator.h tree-pass.h output.h
+
+c-family/stub-objc.o : c-family/stub-objc.c $(CONFIG_H) $(SYSTEM_H) \
+	coretypes.h $(TREE_H) $(C_COMMON_H)
 
-c-pch.o : c-pch.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(CPPLIB_H) $(TREE_H) \
-	$(C_COMMON_H) output.h $(TOPLEV_H) $(C_PRAGMA_H) $(GGC_H) debug.h \
-	langhooks.h $(FLAGS_H) hosthooks.h version.h $(TARGET_H) opts.h \
-	$(TIMEVAR_H)
-	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
-	  -DHOST_MACHINE=\"$(host)\" -DTARGET_MACHINE=\"$(target)\" \
-	  $< $(OUTPUT_OPTION)
 
-c-omp.o : c-omp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
-	$(C_COMMON_H) $(TOPLEV_H) $(GIMPLE_H) langhooks.h
+# Files used by all variants of C and some other languages.
+
+attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+	$(FLAGS_H) $(TOPLEV_H) output.h $(GGC_H) $(TM_P_H) \
+	$(TARGET_H) langhooks.h $(CPPLIB_H) $(PLUGIN_H)
+
+incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
+		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
+		$(MACHMODE_H)
+
+prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \
+	Makefile $(BASEVER)
+	$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
+	-DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) \
+	  -c $(srcdir)/prefix.c $(OUTPUT_OPTION)
 
 # Language-independent files.
 
@@ -2216,12 +2261,6 @@ ggc-none.o: ggc-none.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) \
 stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 	$(TREE_H) $(GGC_H) gt-stringpool.h $(CPPLIB_H) $(SYMTAB_H)
 
-prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \
-	Makefile $(BASEVER)
-	$(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
-	-DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) \
-	  -c $(srcdir)/prefix.c $(OUTPUT_OPTION)
-
 convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
    $(FLAGS_H) convert.h $(TOPLEV_H) langhooks.h
 
@@ -2560,11 +2599,6 @@ tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
    $(TREE_INLINE_H) tree-mudflap.h $(GGC_H) graph.h $(CGRAPH_H) \
    $(TREE_PASS_H) $(CFGLOOP_H) $(EXCEPT_H) $(REGSET_H)
 
-c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) \
-   $(C_TREE_H) $(C_COMMON_H) $(DIAGNOSTIC_CORE_H) $(GIMPLE_H) \
-   $(FLAGS_H) langhooks.h $(TOPLEV_H) $(RTL_H) $(TREE_FLOW_H) $(LANGHOOKS_DEF_H) \
-   $(TM_H) coretypes.h $(C_PRETTY_PRINT_H) $(CGRAPH_H) $(BASIC_BLOCK_H) \
-   hard-reg-set.h $(TREE_DUMP_H) $(TREE_INLINE_H)
 gimplify.o : gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(GIMPLE_H) \
    $(DIAGNOSTIC_H) $(GIMPLE_H) $(TREE_INLINE_H) langhooks.h \
    $(LANGHOOKS_DEF_H) $(TREE_FLOW_H) $(CGRAPH_H) $(TIMEVAR_H) $(TM_H) \
@@ -2744,10 +2778,6 @@ tree-pretty-print.o : tree-pretty-print.c $(CONFIG_H) $(SYSTEM_H) \
    $(TREE_PASS_H) value-prof.h output.h tree-pretty-print.h
 tree-diagnostic.o : tree-diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
    $(TREE_H) $(DIAGNOSTIC_H) tree-diagnostic.h langhooks.h $(LANGHOOKS_DEF_H)
-c-ada-spec.o : c-ada-spec.c c-ada-spec.h $(CONFIG_H) $(SYSTEM_H) \
-   $(TREE_H) $(REAL_H) $(HASHTAB_H) $(TREE_FLOW_H) \
-   $(CPP_ID_DATA_H) $(TM_H) coretypes.h tree-iterator.h tree-pass.h \
-   value-prof.h fixed-value.h output.h
 fold-const.o : fold-const.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(TREE_H) $(FLAGS_H) $(TOPLEV_H) $(HASHTAB_H) $(EXPR_H) $(RTL_H) \
    $(GGC_H) $(TM_P_H) langhooks.h $(MD5_H) intl.h $(TARGET_H) \
@@ -3553,16 +3583,6 @@ $(simple_generated_c:insn-%.c=s-%): s-%: build/gen%$(build_exeext) \
 	$(SHELL) $(srcdir)/../move-if-change tmp-$*.c insn-$*.c
 	$(STAMP) s-$*
 
-generated_files = config.h tm.h $(TM_P_H) $(TM_H) multilib.h \
-       $(simple_generated_h) specs.h \
-       tree-check.h genrtl.h insn-modes.h tm-preds.h tm-constrs.h \
-       $(ALL_GTFILES_H) gtype-desc.c gtype-desc.h gcov-iov.h
-
-# In order for parallel make to really start compiling the expensive
-# objects from $(OBJS-common) as early as possible, build all their
-# prerequisites strictly before all objects.
-$(ALL_HOST_OBJS) : | $(generated_files)
-
 # genconstants needs to run before insn-conditions.md is available
 # (because the constants may be used in the conditions).
 insn-constants.h: s-constants; @true
@@ -3721,6 +3741,16 @@ s-gtype: build/gengtype$(build_exeext) $(filter-out [%], $(GTFILES)) \
 	$(RUN_GEN) build/gengtype$(build_exeext) $(srcdir) gtyp-input.list
 	$(STAMP) s-gtype
 
+generated_files = config.h tm.h $(TM_P_H) $(TM_H) multilib.h \
+       $(simple_generated_h) specs.h \
+       tree-check.h genrtl.h insn-modes.h tm-preds.h tm-constrs.h \
+       $(ALL_GTFILES_H) gtype-desc.c gtype-desc.h gcov-iov.h
+
+# In order for parallel make to really start compiling the expensive
+# objects from $(OBJS-common) as early as possible, build all their
+# prerequisites strictly before all objects.
+$(ALL_HOST_OBJS) : | $(generated_files)
+
 #
 # How to compile object files to run on the build machine.
 
diff --git a/gcc/c-config-lang.in b/gcc/c-config-lang.in
index d3cd6f9efeab..2565186b10d2 100644
--- a/gcc/c-config-lang.in
+++ b/gcc/c-config-lang.in
@@ -22,4 +22,4 @@
 # files used by C that have garbage collection GTY macros in them
 # which therefore need to be scanned by gengtype.c.
 
-gtfiles="\$(srcdir)/c-lang.c \$(srcdir)/c-tree.h \$(srcdir)/c-decl.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-pragma.h \$(srcdir)/c-pragma.c \$(srcdir)/c-objc-common.c \$(srcdir)/c-parser.c \$(srcdir)/c-lang.h"
+gtfiles="\$(srcdir)/c-lang.c \$(srcdir)/c-tree.h \$(srcdir)/c-decl.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/c-objc-common.c \$(srcdir)/c-parser.c \$(srcdir)/c-lang.h"
diff --git a/gcc/c-convert.c b/gcc/c-convert.c
index 09638d5b151c..4de3cdb1c57b 100644
--- a/gcc/c-convert.c
+++ b/gcc/c-convert.c
@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "flags.h"
 #include "convert.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "c-tree.h"
 #include "langhooks.h"
 #include "toplev.h"
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index cda6ce3ca774..2485bf44c107 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -45,8 +45,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "debug.h"
 #include "opts.h"
 #include "timevar.h"
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "c-lang.h"
 #include "langhooks.h"
 #include "tree-mudflap.h"
@@ -58,7 +58,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks-def.h"
 #include "pointer-set.h"
 #include "plugin.h"
-#include "c-ada-spec.h"
+#include "c-family/c-ada-spec.h"
 
 /* In grokdeclarator, distinguish syntactic contexts of declarators.  */
 enum decl_context
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
new file mode 100644
index 000000000000..f250139ed4d5
--- /dev/null
+++ b/gcc/c-family/ChangeLog
@@ -0,0 +1,31 @@
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* c-common.c: Moved to here from parent directory. 
+	* c-common.def: Likewise.
+	* c-common.h: Likewise.
+	* c-cppbuiltin.c: Likewise.
+	* c-dump.c: Likewise.
+	* c-format.c: Likewise.
+	* c-format.h : Likewise.
+	* c-gimplify.c: Likewise.
+	* c-lex.c: Likewise.
+	* c-omp.c: Likewise.
+	* c.opt: Likewise.
+	* c-opts.c: Likewise.
+	* c-pch.c: Likewise.
+	* c-ppoutput.c: Likewise.
+	* c-pragma.c: Likewise.
+	* c-pragma.h: Likewise.
+	* c-pretty-print.c: Likewise.
+	* c-pretty-print.h: Likewise.
+	* c-semantics.c: Likewise.
+	* stub-objc.c: Likewise.
+
+	* c-common.c: Include gt-c-family-c-common.h.
+	* c-pragma.c: Include gt-c-family-c-pragma.h.
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/gcc/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
similarity index 100%
rename from gcc/c-ada-spec.c
rename to gcc/c-family/c-ada-spec.c
diff --git a/gcc/c-ada-spec.h b/gcc/c-family/c-ada-spec.h
similarity index 100%
rename from gcc/c-ada-spec.h
rename to gcc/c-family/c-ada-spec.h
diff --git a/gcc/c-common.c b/gcc/c-family/c-common.c
similarity index 99%
rename from gcc/c-common.c
rename to gcc/c-family/c-common.c
index 1c511183529b..1053c2bfaecf 100644
--- a/gcc/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -9463,4 +9463,4 @@ make_tree_vector_copy (const VEC(tree,gc) *orig)
   return ret;
 }
 
-#include "gt-c-common.h"
+#include "gt-c-family-c-common.h"
diff --git a/gcc/c-common.def b/gcc/c-family/c-common.def
similarity index 100%
rename from gcc/c-common.def
rename to gcc/c-family/c-common.def
diff --git a/gcc/c-common.h b/gcc/c-family/c-common.h
similarity index 100%
rename from gcc/c-common.h
rename to gcc/c-family/c-common.h
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
similarity index 100%
rename from gcc/c-cppbuiltin.c
rename to gcc/c-family/c-cppbuiltin.c
diff --git a/gcc/c-dump.c b/gcc/c-family/c-dump.c
similarity index 100%
rename from gcc/c-dump.c
rename to gcc/c-family/c-dump.c
diff --git a/gcc/c-format.c b/gcc/c-family/c-format.c
similarity index 100%
rename from gcc/c-format.c
rename to gcc/c-family/c-format.c
diff --git a/gcc/c-format.h b/gcc/c-family/c-format.h
similarity index 100%
rename from gcc/c-format.h
rename to gcc/c-family/c-format.h
diff --git a/gcc/c-gimplify.c b/gcc/c-family/c-gimplify.c
similarity index 100%
rename from gcc/c-gimplify.c
rename to gcc/c-family/c-gimplify.c
diff --git a/gcc/c-lex.c b/gcc/c-family/c-lex.c
similarity index 100%
rename from gcc/c-lex.c
rename to gcc/c-family/c-lex.c
diff --git a/gcc/c-omp.c b/gcc/c-family/c-omp.c
similarity index 100%
rename from gcc/c-omp.c
rename to gcc/c-family/c-omp.c
diff --git a/gcc/c-opts.c b/gcc/c-family/c-opts.c
similarity index 100%
rename from gcc/c-opts.c
rename to gcc/c-family/c-opts.c
diff --git a/gcc/c-pch.c b/gcc/c-family/c-pch.c
similarity index 100%
rename from gcc/c-pch.c
rename to gcc/c-family/c-pch.c
diff --git a/gcc/c-ppoutput.c b/gcc/c-family/c-ppoutput.c
similarity index 100%
rename from gcc/c-ppoutput.c
rename to gcc/c-family/c-ppoutput.c
diff --git a/gcc/c-pragma.c b/gcc/c-family/c-pragma.c
similarity index 99%
rename from gcc/c-pragma.c
rename to gcc/c-family/c-pragma.c
index 526d5fdfe924..a48bf4fc50e6 100644
--- a/gcc/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -1333,4 +1333,4 @@ init_pragma (void)
   invoke_plugin_callbacks (PLUGIN_PRAGMAS, NULL);
 }
 
-#include "gt-c-pragma.h"
+#include "gt-c-family-c-pragma.h"
diff --git a/gcc/c-pragma.h b/gcc/c-family/c-pragma.h
similarity index 100%
rename from gcc/c-pragma.h
rename to gcc/c-family/c-pragma.h
diff --git a/gcc/c-pretty-print.c b/gcc/c-family/c-pretty-print.c
similarity index 100%
rename from gcc/c-pretty-print.c
rename to gcc/c-family/c-pretty-print.c
diff --git a/gcc/c-pretty-print.h b/gcc/c-family/c-pretty-print.h
similarity index 100%
rename from gcc/c-pretty-print.h
rename to gcc/c-family/c-pretty-print.h
diff --git a/gcc/c-semantics.c b/gcc/c-family/c-semantics.c
similarity index 100%
rename from gcc/c-semantics.c
rename to gcc/c-family/c-semantics.c
diff --git a/gcc/c.opt b/gcc/c-family/c.opt
similarity index 100%
rename from gcc/c.opt
rename to gcc/c-family/c.opt
diff --git a/gcc/stub-objc.c b/gcc/c-family/stub-objc.c
similarity index 100%
rename from gcc/stub-objc.c
rename to gcc/c-family/stub-objc.c
diff --git a/gcc/c-lang.c b/gcc/c-lang.c
index 14d4eacf366d..45a764f20e21 100644
--- a/gcc/c-lang.c
+++ b/gcc/c-lang.c
@@ -26,13 +26,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "c-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "langhooks.h"
 #include "langhooks-def.h"
 #include "tree-inline.h"
 #include "diagnostic-core.h"
 #include "c-objc-common.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 
 enum c_language_kind c_language = clk_c;
 
diff --git a/gcc/c-lang.h b/gcc/c-lang.h
index beed5071c66c..c0bdc7cb9e5b 100644
--- a/gcc/c-lang.h
+++ b/gcc/c-lang.h
@@ -21,7 +21,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_C_LANG_H
 #define GCC_C_LANG_H
 
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "ggc.h"
 
 struct GTY(()) lang_type {
diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c
index 7694a38d999f..0bb252f5765e 100644
--- a/gcc/c-objc-common.c
+++ b/gcc/c-objc-common.c
@@ -24,7 +24,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "c-tree.h"
 #include "intl.h"
-#include "c-pretty-print.h"
+#include "c-family/c-pretty-print.h"
 #include "flags.h"
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 21f5675cdbb7..56d5d83eccdf 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -46,13 +46,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "cpplib.h"
 #include "timevar.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "c-tree.h"
 #include "flags.h"
 #include "output.h"
 #include "toplev.h"
 #include "ggc.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "vec.h"
 #include "target.h"
 #include "cgraph.h"
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index 1921e1932f71..a607ecdeda6d 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_C_TREE_H
 #define GCC_C_TREE_H
 
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "toplev.h"
 #include "diagnostic.h"
 
diff --git a/gcc/config/arm/arm-c.c b/gcc/config/arm/arm-c.c
index 4e2a9cbe51a1..786a7a3587fd 100644
--- a/gcc/config/arm/arm-c.c
+++ b/gcc/config/arm/arm-c.c
@@ -23,7 +23,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "tree.h"
 #include "output.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 
 
 /* Output C specific EABI object attributes.  These can not be done in
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index b34086f40787..31c13543e908 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -45,7 +45,7 @@
 #include "cgraph.h"
 #include "ggc.h"
 #include "except.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"	/* ??? */
 #include "integrate.h"
 #include "tm_p.h"
 #include "target.h"
diff --git a/gcc/config/avr/avr-c.c b/gcc/config/avr/avr-c.c
index c2c1dd5d4c3e..22724c1de635 100644
--- a/gcc/config/avr/avr-c.c
+++ b/gcc/config/avr/avr-c.c
@@ -26,7 +26,7 @@
 #include "tm_p.h"
 #include "cpplib.h"
 #include "tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 
 /* Not included in avr.c since this requires C front end.  */
 
diff --git a/gcc/config/darwin-c.c b/gcc/config/darwin-c.c
index 0e2f8067b4ba..6221ab3be1be 100644
--- a/gcc/config/darwin-c.c
+++ b/gcc/config/darwin-c.c
@@ -25,9 +25,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "cpplib.h"
 #include "tree.h"
-#include "c-pragma.h"
 #include "incpath.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "toplev.h"
 #include "flags.h"
 #include "tm_p.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 4136eb016885..5773fb15b51e 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -39,7 +39,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "function.h"
 #include "optabs.h"
 #include "toplev.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"	/* ??? */
 #include "tm_p.h"
 #include "ggc.h"
 #include "target.h"
diff --git a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c
index b33fc86ea980..1b89a0b428fa 100644
--- a/gcc/config/i386/i386-c.c
+++ b/gcc/config/i386/i386-c.c
@@ -25,12 +25,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "tm_p.h"
 #include "flags.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
 #include "cpplib.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 
 static bool ix86_pragma_target_parse (tree, tree);
 static void ix86_target_macros_internal
diff --git a/gcc/config/i386/msformat-c.c b/gcc/config/i386/msformat-c.c
index af5c0f95f94d..635c2ca6b62b 100644
--- a/gcc/config/i386/msformat-c.c
+++ b/gcc/config/i386/msformat-c.c
@@ -25,12 +25,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "flags.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "toplev.h"
 #include "intl.h"
 #include "diagnostic.h"
 #include "langhooks.h"
-#include "c-format.h"
+#include "c-family/c-format.h"
 #include "alloc-pool.h"
 
 /* Mingw specific format attributes ms_printf, ms_scanf, and ms_strftime.  */
diff --git a/gcc/config/ia64/ia64-c.c b/gcc/config/ia64/ia64-c.c
index c89a83cd99b0..7a0bdd7a3cd3 100644
--- a/gcc/config/ia64/ia64-c.c
+++ b/gcc/config/ia64/ia64-c.c
@@ -24,8 +24,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cpplib.h"
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "toplev.h"
 #include "tm_p.h"
 
diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64
index db7a8298d177..212bef7cfabe 100644
--- a/gcc/config/ia64/t-ia64
+++ b/gcc/config/ia64/t-ia64
@@ -46,7 +46,7 @@ LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \
   $(srcdir)/unwind-c.c
 
 ia64-c.o: $(srcdir)/config/ia64/ia64-c.c $(CONFIG_H) $(SYSTEM_H) \
-    coretypes.h $(TM_H) $(TREE_H) $(CPPLIB_H) $(C_COMMON_H) c-pragma.h toplev.h
+    coretypes.h $(TM_H) $(TREE_H) $(CPPLIB_H) $(C_COMMON_H) $(C_PRAGMA_H) toplev.h
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 		$(srcdir)/config/ia64/ia64-c.c
 
diff --git a/gcc/config/m32c/m32c-pragma.c b/gcc/config/m32c/m32c-pragma.c
index 4e3093774658..e2fef7e571c1 100644
--- a/gcc/config/m32c/m32c-pragma.c
+++ b/gcc/config/m32c/m32c-pragma.c
@@ -26,7 +26,7 @@
 #include "tree.h"
 #include "rtl.h"
 #include "toplev.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "cpplib.h"
 #include "hard-reg-set.h"
 #include "output.h"
diff --git a/gcc/config/mep/mep-pragma.c b/gcc/config/mep/mep-pragma.c
index 3f9fc5a70715..1d79a3bd19f7 100644
--- a/gcc/config/mep/mep-pragma.c
+++ b/gcc/config/mep/mep-pragma.c
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "toplev.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "cpplib.h"
 #include "hard-reg-set.h"
 #include "output.h"
diff --git a/gcc/config/mep/t-mep b/gcc/config/mep/t-mep
index 5fd7f9441167..9608d6c46d32 100644
--- a/gcc/config/mep/t-mep
+++ b/gcc/config/mep/t-mep
@@ -33,7 +33,7 @@ CRTSTUFF_CFLAGS = -O0 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
 TCFLAGS = -mlibrary
 
 mep-pragma.o: $(srcdir)/config/mep/mep-pragma.c $(CONFIG_H) $(SYSTEM_H) \
-	coretypes.h $(TM_H) $(TREE_H) $(RTL_H) toplev.h c-pragma.h \
+	coretypes.h $(TM_H) $(TREE_H) $(RTL_H) toplev.h $(C_PRAGMA_H) \
 	$(CPPLIB_H) hard-reg-set.h output.h $(srcdir)/config/mep/mep-protos.h \
 	function.h insn-config.h reload.h $(TARGET_H)
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $<
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index 7a197c1fbcc2..20f594a33e98 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -27,8 +27,8 @@
 #include "tm.h"
 #include "cpplib.h"
 #include "tree.h"
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "toplev.h"
 #include "tm_p.h"
 #include "target.h"
diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000
index 773d710fa3ff..8066c890eb11 100644
--- a/gcc/config/rs6000/t-rs6000
+++ b/gcc/config/rs6000/t-rs6000
@@ -32,7 +32,7 @@ rs6000.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
     $(srcdir)/config/rs6000/rs6000-protos.h \
     $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(CPPLIB_H) \
-    $(TM_P_H) c-pragma.h errors.h coretypes.h $(TM_H)
+    $(TM_P_H) $(C_PRAGMA_H) errors.h coretypes.h $(TM_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 		$(srcdir)/config/rs6000/rs6000-c.c
 
diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c
index 0b322d1f80fb..f53fc32acced 100644
--- a/gcc/config/sol2-c.c
+++ b/gcc/config/sol2-c.c
@@ -26,12 +26,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "toplev.h"
 
-#include "c-format.h"
+#include "c-family/c-format.h"
 #include "intl.h"
 
 #include "cpplib.h"
-#include "c-pragma.h"
-#include "c-common.h"
+#include "c-family/c-pragma.h"
+#include "c-family/c-common.h"
 
 /* cmn_err only accepts "l" and "ll".  */
 static const format_length_info cmn_err_length_specs[] =
diff --git a/gcc/config/spu/spu-c.c b/gcc/config/spu/spu-c.c
index a4f2274d92d1..ce5f92d94db6 100644
--- a/gcc/config/spu/spu-c.c
+++ b/gcc/config/spu/spu-c.c
@@ -20,8 +20,8 @@
 #include "tm.h"
 #include "cpplib.h"
 #include "tree.h"
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "tm_p.h"
 #include "langhooks.h"
 
diff --git a/gcc/config/t-darwin b/gcc/config/t-darwin
index 4e0a00e27ce1..b538ccfa4052 100644
--- a/gcc/config/t-darwin
+++ b/gcc/config/t-darwin
@@ -26,7 +26,7 @@ darwin.o: $(srcdir)/config/darwin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h     \
 		$(srcdir)/config/darwin.c
 
 darwin-c.o: $(srcdir)/config/darwin-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-  $(TM_H) $(CPPLIB_H) $(TREE_H) c-pragma.h toplev.h $(TM_P_H) \
+  $(TM_H) $(CPPLIB_H) $(TREE_H) $(C_PRAGMA_H) toplev.h $(TM_P_H) \
   incpath.h flags.h $(C_COMMON_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 		$(srcdir)/config/darwin-c.c $(PREPROCESSOR_DEFINES)
diff --git a/gcc/config/t-sol2 b/gcc/config/t-sol2
index 526ae4073820..6112f2db8b52 100644
--- a/gcc/config/t-sol2
+++ b/gcc/config/t-sol2
@@ -18,8 +18,8 @@
 
 # Solaris-specific format checking and pragmas
 sol2-c.o: $(srcdir)/config/sol2-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-  tree.h c-format.h intl.h $(CPPLIB_H) c-pragma.h $(TM_H) $(TM_P_H) \
-  toplev.h $(C_COMMON_H)
+  tree.h c-family/c-format.h $(C_PRAGMA_H) $(C_COMMON_H) $(CPPLIB_H) \
+  intl.h $(TM_H) $(TM_P_H) toplev.h
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 	  $(srcdir)/config/sol2-c.c
 
diff --git a/gcc/config/v850/t-v850 b/gcc/config/v850/t-v850
index 5c893d802e3c..139ec5b40d5d 100644
--- a/gcc/config/v850/t-v850
+++ b/gcc/config/v850/t-v850
@@ -108,7 +108,7 @@ MULTILIB_MATCHES  = mv850e=mv850e1
 TCFLAGS = -mno-app-regs -msmall-sld -Wa,-mwarn-signed-overflow -Wa,-mwarn-unsigned-overflow
 
 v850-c.o: $(srcdir)/config/v850/v850-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-  $(TM_H) $(CPPLIB_H) $(TREE_H) c-pragma.h toplev.h $(GGC_H) $(TM_P_H)
+  $(TM_H) $(CPPLIB_H) $(TREE_H) $(C_PRAGMA_H) toplev.h $(GGC_H) $(TM_P_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 		$(srcdir)/config/v850/v850-c.c 
 
diff --git a/gcc/config/v850/t-v850e b/gcc/config/v850/t-v850e
index 9fcd897bb17b..f0e9c6f6e5c7 100644
--- a/gcc/config/v850/t-v850e
+++ b/gcc/config/v850/t-v850e
@@ -106,7 +106,7 @@ INSTALL_LIBGCC    = install-multilib
 TCFLAGS = -mno-app-regs -msmall-sld -Wa,-mwarn-signed-overflow -Wa,-mwarn-unsigned-overflow
 
 v850-c.o: $(srcdir)/config/v850/v850-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-  $(TM_H) $(CPPLIB_H) $(TREE_H) c-pragma.h toplev.h $(GGC_H) $(TM_P_H)
+  $(TM_H) $(CPPLIB_H) $(TREE_H) $(C_PRAGMA_H) toplev.h $(GGC_H) $(TM_P_H)
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 		$(srcdir)/config/v850/v850-c.c 
 
diff --git a/gcc/config/v850/v850-c.c b/gcc/config/v850/v850-c.c
index 0d53a72db5cc..c3c3815492ee 100644
--- a/gcc/config/v850/v850-c.c
+++ b/gcc/config/v850/v850-c.c
@@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "cpplib.h"
 #include "tree.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "toplev.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/configure b/gcc/configure
index ea79930b808f..97642e8a164a 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -26906,7 +26906,7 @@ case ${CONFIG_HEADERS} in
   echo > cstamp-h ;;
 esac
 # Make sure all the subdirs exist.
-for d in $subdirs doc build
+for d in $subdirs doc build c-family
 do
     test -d $d || mkdir $d
 done
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 27cb45c9a9dd..ebf291040c9c 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4638,7 +4638,7 @@ case ${CONFIG_HEADERS} in
   echo > cstamp-h ;;
 esac
 # Make sure all the subdirs exist.
-for d in $subdirs doc build
+for d in $subdirs doc build c-family
 do
     test -d $d || mkdir $d
 done
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9c4ad0ae569a..d75030e8c06b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,23 @@
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* typeck.c: Update include path for moved files.
+	* decl.c: Likewise.
+	* rtti.c: Likewise.
+	* cp-gimplify.c: Likewise.
+	* cp-lang.c: Likewise.
+	* pt.c: Likewise.
+	* semantics.c: Likewise.
+	* cxx-pretty-print.h: Likewise.
+	* decl2.c: Likewise.
+	* parser.c: Likewise.
+	* cp-objcp-common.c: Likewise.
+	* cp-tree.h: Likewise.
+	* name-lookup.c: Likewise.
+	* lex.c: Likewise.
+	* name-lookup.h: Likewise.
+	* config-lang.in: Update paths in gtfiles for files in c-family/.
+	* Make-lang.in: Likewise.
+
 2010-06-04  Magnus Fromreide  <magfr@lysator.liu.se>
 
 	* cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index d726ead2d801..bfccd72d5d82 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -71,10 +71,8 @@ g++-cross$(exeext): g++$(exeext)
 
 # The compiler itself.
 # Shared with C front end:
-CXX_C_OBJS = attribs.o c-common.o c-format.o c-pragma.o c-semantics.o c-lex.o \
-	c-dump.o $(CXX_TARGET_OBJS) c-pretty-print.o c-opts.o c-pch.o \
-	incpath.o c-ppoutput.o c-cppbuiltin.o prefix.o \
-	c-gimplify.o c-omp.o c-ada-spec.o
+CXX_C_OBJS = attribs.o incpath.o prefix.o \
+	$(C_COMMON_OBJS) $(CXX_TARGET_OBJS)
 
 # Language-specific object files for C++ and Objective C++.
 CXX_AND_OBJCXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \
@@ -85,7 +83,7 @@ CXX_AND_OBJCXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \
  cp/cp-gimplify.o tree-mudflap.o $(CXX_C_OBJS)
 
 # Language-specific object files for C++.
-CXX_OBJS = cp/cp-lang.o stub-objc.o $(CXX_AND_OBJCXX_OBJS)
+CXX_OBJS = cp/cp-lang.o c-family/stub-objc.o $(CXX_AND_OBJCXX_OBJS)
 
 c++_OBJS = $(CXX_OBJS) dummy-checksum.o cc1plus-checksum.o cp/g++spec.o
 
@@ -260,7 +258,7 @@ cp/decl.o: cp/decl.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h \
 cp/decl2.o: cp/decl2.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) cp/decl.h \
   output.h $(EXCEPT_H) toplev.h $(C_COMMON_H) gt-cp-decl2.h $(CGRAPH_H) \
   $(C_PRAGMA_H) $(TREE_DUMP_H) intl.h $(TARGET_H) $(GIMPLE_H) $(POINTER_SET_H) \
-  $(SPLAY_TREE_H) c-ada-spec.h
+  $(SPLAY_TREE_H) c-family/c-ada-spec.h
 cp/cp-objcp-common.o : cp/cp-objcp-common.c $(CONFIG_H) $(SYSTEM_H) \
   coretypes.h $(TM_H) $(TREE_H) $(CXX_TREE_H) $(C_COMMON_H) toplev.h \
   langhooks.h $(LANGHOOKS_DEF_H) $(DIAGNOSTIC_H) debug.h \
diff --git a/gcc/cp/config-lang.in b/gcc/cp/config-lang.in
index c6d7b38b31f7..a15c7e247056 100644
--- a/gcc/cp/config-lang.in
+++ b/gcc/cp/config-lang.in
@@ -30,4 +30,4 @@ compilers="cc1plus\$(exeext)"
 
 target_libs="target-libstdc++-v3"
 
-gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-lex.c \$(srcdir)/c-pragma.h \$(srcdir)/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/cp-lang.c"
+gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/cp-lang.c"
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 2e3f11d09466..f45d714780fa 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "toplev.h"
 #include "tree-iterator.h"
 #include "gimple.h"
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index a08f0dd71d06..541e9adcdeb8 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "toplev.h"
 #include "langhooks.h"
 #include "langhooks-def.h"
diff --git a/gcc/cp/cp-objcp-common.c b/gcc/cp/cp-objcp-common.c
index 35654c5f07a0..63ce56b3c302 100644
--- a/gcc/cp/cp-objcp-common.c
+++ b/gcc/cp/cp-objcp-common.c
@@ -24,7 +24,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "toplev.h"
 #include "langhooks.h"
 #include "langhooks-def.h"
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 6b292b66f731..986194609272 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -42,7 +42,7 @@ c-common.h, not after.
 #endif
 #include "toplev.h"
 #include "diagnostic.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 
 #include "name-lookup.h"
 
diff --git a/gcc/cp/cxx-pretty-print.h b/gcc/cp/cxx-pretty-print.h
index a88d4c5ccdb9..5a51f44bdb88 100644
--- a/gcc/cp/cxx-pretty-print.h
+++ b/gcc/cp/cxx-pretty-print.h
@@ -21,7 +21,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_CXX_PRETTY_PRINT_H
 #define GCC_CXX_PRETTY_PRINT_H
 
-#include "c-pretty-print.h"
+#include "c-family/c-pretty-print.h"
 
 #undef pp_c_base
 #define pp_c_base(PP) (&(PP)->c_base)
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index ef00a11b21b3..d534ea3bf9b7 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -45,8 +45,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "hashtab.h"
 #include "tm_p.h"
 #include "target.h"
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "diagnostic.h"
 #include "intl.h"
 #include "debug.h"
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 33e0e265819b..070bc3efdc3a 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -42,18 +42,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "timevar.h"
 #include "cpplib.h"
 #include "target.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "tree-mudflap.h"
 #include "cgraph.h"
 #include "tree-inline.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "tree-dump.h"
 #include "intl.h"
 #include "gimple.h"
 #include "pointer-set.h"
 #include "splay-tree.h"
 #include "langhooks.h"
-#include "c-ada-spec.h"
+#include "c-family/c-ada-spec.h"
 
 extern cpp_reader *parse_in;
 
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index 041e391f5432..1bae86fd6926 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -32,7 +32,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "cp-tree.h"
 #include "cpplib.h"
 #include "flags.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "toplev.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index 3236b64e73c6..0c759c6404a0 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "toplev.h"
 #include "diagnostic-core.h"
 #include "debug.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 
 /* The bindings for a particular name in a particular scope.  */
 
diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h
index 08514810ab0b..e5190eba93fc 100644
--- a/gcc/cp/name-lookup.h
+++ b/gcc/cp/name-lookup.h
@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_CP_NAME_LOOKUP_H
 #define GCC_CP_NAME_LOOKUP_H
 
-#include "c-common.h"
+#include "c-family/c-common.h"
 
 /* The type of dictionary used to map names to types declared at
    a given scope.  */
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index a33330ce5665..eb347e24bae7 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -27,7 +27,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "cp-tree.h"
 #include "intl.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 #include "decl.h"
 #include "flags.h"
 #include "diagnostic-core.h"
@@ -35,7 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "target.h"
 #include "cgraph.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "plugin.h"
 
 
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index d7c038217715..b95fdf728bd0 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -35,7 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "pointer-set.h"
 #include "flags.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "cp-objcp-common.h"
 #include "tree-inline.h"
 #include "decl.h"
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 62aa92129295..12d1784f2067 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "toplev.h"
 #include "convert.h"
 #include "target.h"
-#include "c-pragma.h"
+#include "c-family/c-pragma.h"
 
 /* C++ returns type information to the user in struct type_info
    objects. We also use type information to implement dynamic_cast and
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 2d02690a7177..3e75240d0346 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -30,7 +30,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "tree-inline.h"
 #include "tree-mudflap.h"
 #include "except.h"
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index 53e84cf5a405..a43c432bd22d 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -39,7 +39,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "intl.h"
 #include "target.h"
 #include "convert.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "params.h"
 
 static tree pfn_from_ptrmemfunc (tree);
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 65bb8d1cfc8a..90e643493656 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1657,13 +1657,21 @@ get_file_langdir (const char *f)
 
   int lang_index;
   const char * srcdir_relative_path = get_file_srcdir_relative_path (f);
+  const char * r;
 
   if (!srcdir_relative_path)
     return NULL;
 
   lang_index = get_prefix_langdir_index (srcdir_relative_path);
+  if (lang_index < 0
+      && strncmp (srcdir_relative_path, "c-family", 8) == 0)
+    r = "c-family";
+  else if (lang_index >= 0)
+    r = lang_dir_names [lang_index];
+  else
+    r = NULL;
 
-  return (lang_index >= 0) ? lang_dir_names [lang_index] : NULL;
+  return r;
 }
 
 /* The gt- output file name for F.  */
@@ -1743,8 +1751,10 @@ get_output_file_with_visibility (const char *input_file)
      (and gengtype doesn't know how to direct spewage into multiple
      gtype-<lang>.h headers at this time).  Instead, we pair up these
      headers with source files (and their special purpose gt-*.h headers).  */
-  else if (strcmp (basename, "c-common.h") == 0)
-    output_name = "gt-c-common.h", for_name = "c-common.c";
+  else if (strncmp (basename, "c-family", 8) == 0
+	   && IS_DIR_SEPARATOR (basename[8])
+	   && strcmp (basename + 9, "c-common.h") == 0)
+    output_name = "gt-c-family-c-common.h", for_name = "c-family/c-common.c";
   else if (strcmp (basename, "c-lang.h") == 0)
     output_name = "gt-c-decl.h", for_name = "c-decl.c";
   else if (strcmp (basename, "c-tree.h") == 0)
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 1a4241cc8abb..9934f24d126f 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* objc-act.c: Update include path for moved files.
+	* objc-lang.c: Likewise.
+	* config-lang.in: Update paths in gtfiles for files in c-family/.
+
 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
 
 	* objc-act.c (build_next_objc_exception_stuff): Give setjmp a
diff --git a/gcc/objc/config-lang.in b/gcc/objc/config-lang.in
index 760b87a19238..1a02b7fe7b17 100644
--- a/gcc/objc/config-lang.in
+++ b/gcc/objc/config-lang.in
@@ -33,4 +33,4 @@ target_libs=target-libobjc
 # Most of the object files for cc1obj actually come from C.
 lang_requires="c"
 
-gtfiles="\$(srcdir)/objc/objc-act.h \$(srcdir)/c-parser.c \$(srcdir)/c-tree.h \$(srcdir)/c-decl.c \$(srcdir)/c-objc-common.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-pragma.h \$(srcdir)/c-pragma.c \$(srcdir)/objc/objc-act.c"
+gtfiles="\$(srcdir)/objc/objc-act.h \$(srcdir)/c-parser.c \$(srcdir)/c-tree.h \$(srcdir)/c-decl.c \$(srcdir)/c-objc-common.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/objc/objc-act.c"
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 37289a28d2bf..f10592fed1e0 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -53,8 +53,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "c-lang.h"
 #endif
 
-#include "c-common.h"
-#include "c-pragma.h"
+#include "c-family/c-common.h"
+#include "c-family/c-pragma.h"
 #include "flags.h"
 #include "langhooks.h"
 #include "objc-act.h"
diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c
index 04cea974f45c..fa7496475fb6 100644
--- a/gcc/objc/objc-lang.c
+++ b/gcc/objc/objc-lang.c
@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "c-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "ggc.h"
 #include "objc-act.h"
 #include "langhooks.h"
diff --git a/gcc/objcp/ChangeLog b/gcc/objcp/ChangeLog
index 8623bb591048..e6fbad598411 100644
--- a/gcc/objcp/ChangeLog
+++ b/gcc/objcp/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* objcp-lang.c: Update include path for moved files.
+	* config-lang.in: Update paths in gtfiles for files in c-family/.
+
 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
 
 	* objcp-decl.c: Do not include tm.h, rtl.h, expr.h, c-common.h,
diff --git a/gcc/objcp/config-lang.in b/gcc/objcp/config-lang.in
index 3d9232e4b919..febcb635da70 100644
--- a/gcc/objcp/config-lang.in
+++ b/gcc/objcp/config-lang.in
@@ -37,4 +37,4 @@ build_by_default="no"
 lang_requires="objc c++"
 subdir_requires="objc cp"
 
-gtfiles="\$(srcdir)/objcp/objcp-decl.c \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-act.h \$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-common.c \$(srcdir)/c-common.h \$(srcdir)/c-lex.c \$(srcdir)/c-pragma.h \$(srcdir)/c-pragma.c \$(srcdir)/cp/cp-objcp-common.c"
+gtfiles="\$(srcdir)/objcp/objcp-decl.c \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-act.h \$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/cp-objcp-common.c"
diff --git a/gcc/objcp/objcp-lang.c b/gcc/objcp/objcp-lang.c
index 4708229f2616..91e5c7e693cf 100644
--- a/gcc/objcp/objcp-lang.c
+++ b/gcc/objcp/objcp-lang.c
@@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm.h"
 #include "tree.h"
 #include "cp-tree.h"
-#include "c-common.h"
+#include "c-family/c-common.h"
 #include "objc-act.h"
 #include "langhooks.h"
 #include "langhooks-def.h"
diff --git a/gcc/po/exgettext b/gcc/po/exgettext
index a85f705f820d..e0658302ac87 100644
--- a/gcc/po/exgettext
+++ b/gcc/po/exgettext
@@ -84,7 +84,7 @@ echo "scanning for keywords, %e and %n strings..." >&2
 
 ( cd $srcdir
   lang_subdirs=`echo */config-lang.in */*/config-lang.in | sed -e 's|config-lang\.in||g'`
-  { for dir in "" config/ config/*/ $lang_subdirs
+  { for dir in "" c-family/ config/ config/*/ $lang_subdirs
     do  for glob in '*.c' '*.h' '*.def'
         do  eval echo $dir$glob
         done
-- 
GitLab