diff --git a/ChangeLog b/ChangeLog index ecdf0f7aefc..493ef682577 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-06-29 Steven Bosscher + + * configure.ac: Skip C if explicitly selected. + * configure: Regenerate. + 2012-06-28 Christophe Lyon * configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Make sure diff --git a/configure b/configure index 1ab12dba8a4..5eba95c0739 100755 --- a/configure +++ b/configure @@ -6310,8 +6310,11 @@ if test -d ${srcdir}/gcc; then case ,${enable_languages}, in *,${language},*) - # Language was explicitly selected; include it. - add_this_lang=yes + # Language was explicitly selected; include it + # unless it is C, which is enabled by default. + if test "$language" != "c"; then + add_this_lang=yes + fi ;; *,all,*) # 'all' was selected, select it if it is a default language diff --git a/configure.ac b/configure.ac index 82dbe4ce50c..2ddd040d0e9 100644 --- a/configure.ac +++ b/configure.ac @@ -1816,8 +1816,11 @@ if test -d ${srcdir}/gcc; then case ,${enable_languages}, in *,${language},*) - # Language was explicitly selected; include it. - add_this_lang=yes + # Language was explicitly selected; include it + # unless it is C, which is enabled by default. + if test "$language" != "c"; then + add_this_lang=yes + fi ;; *,all,*) # 'all' was selected, select it if it is a default language diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b45840fda7e..7a1c4cc9b84 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2012-06-29 Steven Bosscher + + * configure.ac: Remove special gtfiles case for C. + * configure: Regenerate. + * Makefile.in: Remove C front-end hooks and build hooks that + will be picked up from c/Make-lang.in now. + Add tree-mudflap to C_COMMON_OBJS. + * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c. + * config/vms/vms.c: Look for c-tree.h in c/. + * doc/gty.texi: Remove reference to c-config-lang.in. + * doc/sourcebuild.texi: Document the c/ subdirectory. + 2012-06-29 Steven Bosscher * system.h (CASE_USE_BIT_TESTS): Poison. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index c400e02b1c9..afea4f38622 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -502,8 +502,8 @@ host_xm_defines=@host_xm_defines@ xm_file_list=@xm_file_list@ xm_include_list=@xm_include_list@ xm_defines=@xm_defines@ -lang_checks=check-gcc -lang_checks_parallelized=check-gcc +lang_checks= +lang_checks_parallelized= dg_target_exps:=alpha.exp,arm.exp,avr.exp,bfin.exp,cris.exp,frv.exp dg_target_exps:=$(dg_target_exps),i386.exp,ia64.exp,m68k.exp,microblaze.exp dg_target_exps:=$(dg_target_exps),mips.exp,powerpc.exp,rx.exp,s390.exp,sh.exp @@ -717,11 +717,11 @@ GENERATED_MANPAGES = @GENERATED_MANPAGES@ OTHER_FIXINCLUDES_DIRS= # A list of all the language-specific executables. -COMPILERS = cc1$(exeext) @all_compilers@ +COMPILERS = @all_compilers@ # List of things which should already be built whenever we try to use xgcc # to compile anything (without linking). -GCC_PASSES=xgcc$(exeext) cc1$(exeext) specs +GCC_PASSES=xgcc$(exeext) specs # Directory to link to, when using the target `maketest'. DIR = ../gcc @@ -1133,23 +1133,18 @@ CXX_TARGET_OBJS=@cxx_target_objs@ # Target specific, Fortran specific object file FORTRAN_TARGET_OBJS=@fortran_target_objs@ -# Object files for gcc driver. +# Object files for gcc many-languages driver. GCC_OBJS = gcc.o ggc-none.o # Language-specific object files shared by all C-family front ends. +# FIXME: tree-mudflap is C-family only, but it is also part of the middle-end. +# The mudflap machinery should be properly separated from the front ends, and +# perhaps turned into a plugin. 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-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 c-family/stub-objc.o $(C_AND_OBJC_OBJS) + c-family/c-semantics.o c-family/c-ada-spec.o tree-mudflap.o # Language-independent object files. # We put the insn-*.o files first so that a parallel make will build @@ -1475,11 +1470,10 @@ OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \ opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o # This lists all host objects for the front ends. -ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \ - $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) +ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ - $(OBJS-libcommon-target) @TREEBROWSER@ main.o gccspec.o cppspec.o \ + $(OBJS-libcommon-target) @TREEBROWSER@ main.o c-family/cppspec.o \ $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) # This lists all host object files, whether they are included in this @@ -1496,7 +1490,7 @@ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ tm-preds.h tm-constrs.h checksum-options \ tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \ genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-input.list \ - xgcc$(exeext) cpp$(exeext) cc1$(exeext) \ + xgcc$(exeext) cpp$(exeext) \ $(EXTRA_PROGRAMS) gcc-cross$(exeext) \ $(SPECS) collect2$(exeext) gcc-ar$(exeext) gcc-nm$(exeext) \ gcc-ranlib$(exeext) \ @@ -1740,12 +1734,6 @@ ifeq ($(enable_plugin),yes) native: gengtype$(exeext) endif -# Define the names for selecting languages in LANGUAGES. -c: cc1$(exeext) - -# Tell GNU make these are phony targets. -.PHONY: c - # On the target machine, finish building a cross compiler. # This does the things that can't be done on the host machine. rest.cross: specs @@ -1773,19 +1761,19 @@ libcommon.a: $(OBJS-libcommon) # We call this executable `xgcc' rather than `gcc' # to avoid confusion if the current directory is in the path # and CC is `gcc'. It is renamed to `gcc' when it is installed. -xgcc$(exeext): $(GCC_OBJS) gccspec.o libcommon-target.a $(LIBDEPS) \ +xgcc$(exeext): $(GCC_OBJS) c/gccspec.o libcommon-target.a $(LIBDEPS) \ $(EXTRA_GCC_OBJS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ - gccspec.o $(EXTRA_GCC_OBJS) libcommon-target.a \ + c/gccspec.o $(EXTRA_GCC_OBJS) libcommon-target.a \ $(EXTRA_GCC_LIBS) $(LIBS) -# cpp is to cpp0 as gcc is to cc1. -# The only difference from xgcc is that it's linked with cppspec.o -# instead of gccspec.o. -cpp$(exeext): $(GCC_OBJS) cppspec.o libcommon-target.a $(LIBDEPS) \ +# cpp is to cpp0 as e.g. g++ is to cc1plus: Just another driver. +# It is part of c-family because the handled extensions are hard-coded +# and only contain c-family extensions (see known_suffixes). +cpp$(exeext): $(GCC_OBJS) c-family/cppspec.o libcommon-target.a $(LIBDEPS) \ $(EXTRA_GCC_OBJS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ - cppspec.o $(EXTRA_GCC_OBJS) libcommon-target.a \ + c-family/cppspec.o $(EXTRA_GCC_OBJS) libcommon-target.a \ $(EXTRA_GCC_LIBS) $(LIBS) # Dump a specs file to make -B./ read these specs over installed ones. @@ -1803,19 +1791,6 @@ checksum-options: echo "$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS)" > checksum-options.tmp \ && $(srcdir)/../move-if-change checksum-options.tmp checksum-options -# compute checksum over all object files and the options -cc1-checksum.c : build/genchecksum$(build_exeext) checksum-options \ - $(C_OBJS) $(BACKEND) $(LIBDEPS) - build/genchecksum$(build_exeext) $(C_OBJS) $(BACKEND) $(LIBDEPS) \ - checksum-options > cc1-checksum.c.tmp && \ - $(srcdir)/../move-if-change cc1-checksum.c.tmp cc1-checksum.c - -cc1-checksum.o : cc1-checksum.c $(CONFIG_H) $(SYSTEM_H) - -cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS) - +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \ - cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS) - # # Build libgcc.a. @@ -1865,52 +1840,6 @@ srcextra: gcc.srcextra lang.srcextra gcc.srcextra: gengtype-lex.c -cp -p $^ $(srcdir) -# 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) - -c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ - $(TREE_H) $(C_TREE_H) $(FLAGS_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) $(LANGHOOKS_DEF_H) \ - $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) $(DIAGNOSTIC_CORE_H) \ - $(INPUT_H) langhooks.h pointer-set.h tree-iterator.h \ - $(PLUGIN_H) c-family/c-ada-spec.h c-family/c-objc.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) \ - gt-c-parser.h langhooks.h \ - $(VEC_H) $(TARGET_H) $(CGRAPH_H) $(PLUGIN_H) \ - c-family/c-objc.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 \ - langhooks.h tree-iterator.h $(BITMAP_H) $(GIMPLE_H) \ - c-family/c-objc.h - - - graph.o: graph.c $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(DIAGNOSTIC_CORE_H) $(FLAGS_H) \ $(RTL_H) $(FUNCTION_H) hard-reg-set.h $(BASIC_BLOCK_H) graph.h $(OBSTACK_H) \ $(CONFIG_H) $(EMIT_RTL_H) @@ -1987,7 +1916,10 @@ lto-wrapper$(exeext): lto-wrapper.o ggc-none.o libcommon-target.a $(LIBDEPS) lto-wrapper.o: lto-wrapper.c $(CONFIG_H) $(SYSTEM_H) coretypes.h intl.h \ $(OBSTACK_H) $(DIAGNOSTIC_H) $(OPTS_H) $(OPTIONS_H) -# Files used by all variants of C. +# Files used by all variants of C or by the stand-alone pre-processor. +c-family/cppspec.o: c-family/cppspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ + $(TM_H) $(GCC_H) $(OPTS_H) + 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) \ @@ -2107,16 +2039,6 @@ gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \ $(DRIVER_DEFINES) \ -c $(srcdir)/gcc.c $(OUTPUT_OPTION)) -gccspec.o: gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ - $(OPTS_H) - (SHLIB='$(SHLIB)'; \ - $(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \ - $(DRIVER_DEFINES) \ - -c $(srcdir)/gccspec.c $(OUTPUT_OPTION)) - -cppspec.o: cppspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ - $(OPTS_H) - specs.h : s-specs ; @true s-specs : Makefile lsf="$(lang_specs_files)"; for f in $$lsf; do \ @@ -4999,7 +4921,7 @@ site.exp: ./config.status Makefile -e '1,/^## All variables above are.*##/ d' >> site.exp -@rm -f ./site.tmp -CHECK_TARGETS = check-gcc @check_languages@ +CHECK_TARGETS = @check_languages@ check: $(CHECK_TARGETS) diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index dbab100bbf3..297439bae9a 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,7 @@ +2012-06-29 Steven Bosscher + + * cppspec.c: Moved from gcc/ to here. + 2012-06-27 Kai Tietz PR preprocessor/37215 diff --git a/gcc/cppspec.c b/gcc/c-family/cppspec.c similarity index 100% rename from gcc/cppspec.c rename to gcc/c-family/cppspec.c diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog new file mode 100644 index 00000000000..f8572aaa13f --- /dev/null +++ b/gcc/c/ChangeLog @@ -0,0 +1,25 @@ +2012-06-29 Steven Bosscher + + * Make-lang.in: New file, rules migrated from gcc/Makefile.in + and add language Makefile hooks. + * config-lang.in: New file. + * c-config-lang.in: Moved from gcc/config-lang.in to here, and + add the required "normal" config-lang.in rules. + * c-lang.h: Moved from gcc/ to here. + * c-tree.h: Likewise. + * c-objc-common.c: Likewise. + * c-objc-common.h: Likewise. + * c-typeck.c: Likewise. + * c-convert.c: Likewise. + * c-lang.c: Likewise. + * c-aux-info.c: Likewise. + * c-errors.c: Likewise. + * gccspec.c: Likewise. + * c-decl.c: Likewise. Include gt-c-c-decl.h, not gt-c-decl.h. + * c-parser.c: Likewise. Include gt-c-c-parser.h, not gt-c-parser.h. + +Copyright (C) 2012 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/Make-lang.in b/gcc/c/Make-lang.in new file mode 100644 index 00000000000..08b1ba1a919 --- /dev/null +++ b/gcc/c/Make-lang.in @@ -0,0 +1,196 @@ +# Top level -*- makefile -*- fragment for GNU C - C language. +# Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2007, 2008, 2009, 2010, 2011, 2012 +# Free Software Foundation, Inc. + +#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. + +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# This file provides the language dependent support in the main Makefile. +# Each language makefile fragment must provide the following targets: +# +# foo.all.cross, foo.start.encap, foo.rest.encap, +# foo.install-common, foo.install-man, foo.install-info, foo.install-pdf, +# foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall, +# foo.mostlyclean, foo.clean, foo.distclean, +# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 +# +# where `foo' is the name of the language. +# +# It should also provide rules for: +# +# - making any compiler driver (eg: gcc) +# - the compiler proper (eg: cc1) +# - define the names for selecting the language in LANGUAGES. + +# +# Define the names for selecting c in LANGUAGES. +c: cc1$(exeext) + +# Tell GNU make to ignore these if they exist. +.PHONY: c gcc + +# The C front end driver. This is different from the drivers for other +# front ends, because there is no C language specific driver (i.e. nothing +# is to cc1 as e.g. g++ is to cc1plus, or gfortran is to f951). +c/gccspec.o: c/gccspec.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ + $(OPTS_H) + (SHLIB='$(SHLIB)'; \ + $(COMPILER) $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \ + $(DRIVER_DEFINES) \ + -c $(srcdir)/c/gccspec.c $(OUTPUT_OPTION)) + +# The C compiler itself. + +# Language-specific object files for C and Objective C. +C_AND_OBJC_OBJS = attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o \ + c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o \ + $(C_COMMON_OBJS) $(C_TARGET_OBJS) + +# Language-specific object files for C. +C_OBJS = c/c-lang.o c-family/stub-objc.o $(C_AND_OBJC_OBJS) +c_OBJS = $(C_OBJS) cc1-checksum.o c/gccspec.o + +# Use strict warnings for this front end. +c-warn = $(STRICT_WARN) + +# compute checksum over all object files and the options +cc1-checksum.c : build/genchecksum$(build_exeext) checksum-options \ + $(C_OBJS) $(BACKEND) $(LIBDEPS) + build/genchecksum$(build_exeext) $(C_OBJS) $(BACKEND) $(LIBDEPS) \ + checksum-options > cc1-checksum.c.tmp && \ + $(srcdir)/../move-if-change cc1-checksum.c.tmp cc1-checksum.c + +cc1-checksum.o : cc1-checksum.c $(CONFIG_H) $(SYSTEM_H) + +cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS) + +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \ + cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS) +# +# Build hooks: + +c.info: +c.dvi: +c.pdf: +c.html: +c.install-info: +c.install-pdf: +c.install-html: +c.all.cross: +c.start.encap: +c.rest.encap: +c.srcinfo: +c.srcextra: gengtype-lex.c + -cp -p $^ $(srcdir) +c.tags: force + cd $(srcdir)/c; etags -o TAGS.sub *.c *.h; \ + etags --include TAGS.sub --include ../TAGS.sub +c.man: +c.srcman: + +# List of targets that can use the generic check- rule and its // variant. +lang_checks += check-gcc +lang_checks_parallelized += check-gcc + +# 'make check' in gcc/ looks for check-c. Redirect it to check-gcc. +check-c : check-gcc + +# +# Install hooks: +# cc1 is installed elsewhere as part of $(COMPILERS). + +c.install-common: +c.install-man: +c.install-plugin: +c.uninstall: + +# +# Clean hooks: +# A lot of the ancillary files are deleted by the main makefile. +# We just have to delete files specific to us. + +c.mostlyclean: + -rm -f cc1$(exeext) + -rm -f c/*$(objext) + -rm -f c/*$(coverageexts) +c.clean: +c.distclean: + -rm -f c/config.status c/Makefile +c.maintainer-clean: +# +# Stage hooks: +# The main makefile has already created stage?/cp. + +c.stage1: stage1-start + -mv c/*$(objext) stage1/c +c.stage2: stage2-start + -mv c/*$(objext) stage2/c +c.stage3: stage3-start + -mv c/*$(objext) stage3/c +c.stage4: stage4-start + -mv c/*$(objext) stage4/c +c.stageprofile: stageprofile-start + -mv c/*$(objext) stageprofile/c +c.stagefeedback: stagefeedback-start + -mv c/*$(objext) stagefeedback/c + +# +# .o: .h dependencies. +# C language specific files. +C_TREE_H = c/c-tree.h $(C_COMMON_H) $(DIAGNOSTIC_H) +c/c-aux-info.o : c/c-aux-info.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ + $(C_TREE_H) $(TREE_H) $(FLAGS_H) + +c/c-convert.o : c/c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ + $(TREE_H) $(C_TREE_H) $(FLAGS_H) $(C_COMMON_H) convert.h \ + langhooks.h $(TARGET_H) + +c/c-decl.o : c/c-decl.c 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-c-decl.h $(CGRAPH_H) \ + $(HASHTAB_H) $(LANGHOOKS_DEF_H) \ + $(TREE_DUMP_H) $(C_COMMON_H) $(CPPLIB_H) $(DIAGNOSTIC_CORE_H) \ + $(INPUT_H) langhooks.h pointer-set.h tree-iterator.h \ + $(PLUGIN_H) c-family/c-ada-spec.h c-family/c-objc.h + +c/c-errors.o: c/c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ + $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H) + +c/c-lang.o : c/c-lang.c 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/c-objc-common.o : c/c-objc-common.c 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/c-parser.o : c/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) \ + gt-c-c-parser.h langhooks.h \ + $(VEC_H) $(TARGET_H) $(CGRAPH_H) $(PLUGIN_H) \ + c-family/c-objc.h + +c/c-typeck.o : c/c-typeck.c c/c-lang.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ + $(TREE_H) $(C_TREE_H) $(TARGET_H) $(FLAGS_H) intl.h \ + langhooks.h tree-iterator.h $(BITMAP_H) $(GIMPLE_H) \ + c-family/c-objc.h + diff --git a/gcc/c-aux-info.c b/gcc/c/c-aux-info.c similarity index 100% rename from gcc/c-aux-info.c rename to gcc/c/c-aux-info.c diff --git a/gcc/c-convert.c b/gcc/c/c-convert.c similarity index 100% rename from gcc/c-convert.c rename to gcc/c/c-convert.c diff --git a/gcc/c-decl.c b/gcc/c/c-decl.c similarity index 99% rename from gcc/c-decl.c rename to gcc/c/c-decl.c index bbb437d8231..711b2dd1750 100644 --- a/gcc/c-decl.c +++ b/gcc/c/c-decl.c @@ -10152,4 +10152,4 @@ c_register_addr_space (const char *word, addr_space_t as) ridpointers [rid] = id; } -#include "gt-c-decl.h" +#include "gt-c-c-decl.h" diff --git a/gcc/c-errors.c b/gcc/c/c-errors.c similarity index 100% rename from gcc/c-errors.c rename to gcc/c/c-errors.c diff --git a/gcc/c-lang.c b/gcc/c/c-lang.c similarity index 100% rename from gcc/c-lang.c rename to gcc/c/c-lang.c diff --git a/gcc/c-lang.h b/gcc/c/c-lang.h similarity index 100% rename from gcc/c-lang.h rename to gcc/c/c-lang.h diff --git a/gcc/c-objc-common.c b/gcc/c/c-objc-common.c similarity index 100% rename from gcc/c-objc-common.c rename to gcc/c/c-objc-common.c diff --git a/gcc/c-objc-common.h b/gcc/c/c-objc-common.h similarity index 100% rename from gcc/c-objc-common.h rename to gcc/c/c-objc-common.h diff --git a/gcc/c-parser.c b/gcc/c/c-parser.c similarity index 99% rename from gcc/c-parser.c rename to gcc/c/c-parser.c index b4135eedea5..2237749e4a3 100644 --- a/gcc/c-parser.c +++ b/gcc/c/c-parser.c @@ -10837,4 +10837,4 @@ c_parse_file (void) the_parser = NULL; } -#include "gt-c-parser.h" +#include "gt-c-c-parser.h" diff --git a/gcc/c-tree.h b/gcc/c/c-tree.h similarity index 100% rename from gcc/c-tree.h rename to gcc/c/c-tree.h diff --git a/gcc/c-typeck.c b/gcc/c/c-typeck.c similarity index 100% rename from gcc/c-typeck.c rename to gcc/c/c-typeck.c diff --git a/gcc/c-config-lang.in b/gcc/c/config-lang.in similarity index 54% rename from gcc/c-config-lang.in rename to gcc/c/config-lang.in index 5e14002bed8..46c7e477471 100644 --- a/gcc/c-config-lang.in +++ b/gcc/c/config-lang.in @@ -1,5 +1,6 @@ # Top level configure fragment for GNU C - C language. -# Copyright (C) 1994, 1995, 1997, 1998, 2000, 2001, 2002, 2005, 2007, 2010 +# Copyright (C) 1994, 1995, 1997, 1998, 2000, 2001, 2002, 2005, 2007, +# 2010, 2012 # Free Software Foundation, Inc. #This file is part of GCC. @@ -18,9 +19,16 @@ #along with GCC; see the file COPYING3. If not see #. -# This file c-config-lang.c is a special pseudo config-lang.in file -# for the language C. It has limited use, specifically to record the -# files used by C that have garbage collection GTY macros in them -# which therefore need to be scanned by gengtype.c. +# Configure looks for the existence of this file to auto-config each language. +# We define several parameters used by configure: +# +# language - name of language as it would appear in $(LANGUAGES) +# compilers - value to add to $(COMPILERS) -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-objc.h \$(srcdir)/c-family/c-cppbuiltin.c \$(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" +language="c" + +compilers="cc1\$(exeext)" + +target_libs= + +gtfiles="\$(srcdir)/c/c-lang.c \$(srcdir)/c/c-tree.h \$(srcdir)/c/c-decl.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/c/c-objc-common.c \$(srcdir)/c/c-parser.c \$(srcdir)/c/c-lang.h" diff --git a/gcc/gccspec.c b/gcc/c/gccspec.c similarity index 100% rename from gcc/gccspec.c rename to gcc/c/gccspec.c diff --git a/gcc/config/vms/vms-c.c b/gcc/config/vms/vms-c.c index 09172b261ab..733932336a9 100644 --- a/gcc/config/vms/vms-c.c +++ b/gcc/config/vms/vms-c.c @@ -27,7 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #include "c-family/c-pragma.h" #include "c-family/c-common.h" -#include "c-tree.h" +#include "c/c-tree.h" #include "toplev.h" #include "ggc.h" #include "tm_p.h" diff --git a/gcc/configure b/gcc/configure index 1fdf0af80ca..0bdbece6ae8 100755 --- a/gcc/configure +++ b/gcc/configure @@ -26964,11 +26964,6 @@ $as_echo "#define ENABLE_LTO 1" >>confdefs.h esac done -# Pick up gtfiles for c -gtfiles= -. ${srcdir}/c-config-lang.in -all_gtfiles="$all_gtfiles [c] $gtfiles" - check_languages= for language in $all_selected_languages do diff --git a/gcc/configure.ac b/gcc/configure.ac index 22dab55a24a..7891fcc39da 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4838,11 +4838,6 @@ changequote([,])dnl esac done -# Pick up gtfiles for c -gtfiles= -. ${srcdir}/c-config-lang.in -all_gtfiles="$all_gtfiles [[c]] $gtfiles" - check_languages= for language in $all_selected_languages do diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 00e9ca07cf8..9b5b7c163d6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2012-06-29 Steven Bosscher + + * Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS. + 2012-06-27 Jason Merrill * parser.c (cp_parser_check_for_invalid_template_id): tag_type parm. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index af355f05079..f09ff36a743 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -82,7 +82,7 @@ CXX_AND_OBJCXX_OBJS = cp/call.o cp/decl.o cp/expr.o cp/pt.o cp/typeck2.o \ cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o \ cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o \ cp/mangle.o cp/cp-objcp-common.o cp/name-lookup.o cp/cxx-pretty-print.o \ - cp/cp-gimplify.o tree-mudflap.o $(CXX_C_OBJS) + cp/cp-gimplify.o $(CXX_C_OBJS) # Language-specific object files for C++. CXX_OBJS = cp/cp-lang.o c-family/stub-objc.o $(CXX_AND_OBJCXX_OBJS) @@ -237,6 +237,7 @@ c++.mostlyclean: c++.clean: c++.distclean: -rm -f cp/config.status cp/Makefile + -rm -f cxxmain.c c++.maintainer-clean: # # Stage hooks: diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi index 03bcbf813cd..cff3ffdfc5d 100644 --- a/gcc/doc/gty.texi +++ b/gcc/doc/gty.texi @@ -491,7 +491,7 @@ For files shared by all front ends, add the filename to the @item For files that are part of one front end, add the filename to the @code{gtfiles} variable defined in the appropriate -@file{config-lang.in}. For C, the file is @file{c-config-lang.in}. +@file{config-lang.in}. Headers should appear before non-headers in this list. @item diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index dc5cc47c33a..84fcc23e55a 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -168,10 +168,11 @@ The @file{gcc} directory contains the following subdirectories: @item @var{language} Subdirectories for various languages. Directories containing a file @file{config-lang.in} are language subdirectories. The contents of -the subdirectories @file{cp} (for C++), @file{lto} (for LTO), -@file{objc} (for Objective-C) and @file{objcp} (for Objective-C++) are -documented in this manual (@pxref{Passes, , Passes and Files of the -Compiler}); those for other languages are not. @xref{Front End, , +the subdirectories @file{c} (for C), @file{cp} (for C++), +@file{objc} (for Objective-C), @file{objcp} (for Objective-C++), +and @file{lto} (for LTO) are documented in this +manual (@pxref{Passes, , Passes and Files of the Compiler}); +those for other languages are not. @xref{Front End, , Anatomy of a Language Front End}, for details of the files in these directories. @@ -483,7 +484,7 @@ why isn't this part of this manual or of the GCC Coding Conventions? @end table FIXME: document such files in subdirectories, at least @file{config}, -@file{cp}, @file{objc}, @file{testsuite}. +@file{c}, @file{cp}, @file{objc}, @file{testsuite}. @node Front End @subsection Anatomy of a Language Front End @@ -615,10 +616,9 @@ codes. @node Front End Config @subsubsection The Front End @file{config-lang.in} File -Each language subdirectory contains a @file{config-lang.in} file. In -addition the main directory contains @file{c-config-lang.in}, which -contains limited information for the C language. This file is a shell -script that may define some variables describing the language: +Each language subdirectory contains a @file{config-lang.in} file. +This file is a shell script that may define some variables describing +the language: @table @code @item language diff --git a/gcc/gengtype.c b/gcc/gengtype.c index cd1a32c27e7..96c75b3ebb2 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -1786,12 +1786,12 @@ struct file_rule_st files_rules[] = { REG_EXTENDED, NULL_REGEX, "gt-c-family-$3.h", "c-family/$3.h", NULL_FRULACT}, - /* Both c-lang.h & c-tree.h gives gt-c-decl.h for c-decl.c ! */ - { DIR_PREFIX_REGEX "c-lang\\.h$", - REG_EXTENDED, NULL_REGEX, "gt-c-decl.h", "c-decl.c", NULL_FRULACT}, + /* Both c-lang.h & c-tree.h gives gt-c-c-decl.h for c-decl.c ! */ + { DIR_PREFIX_REGEX "c/c-lang\\.h$", + REG_EXTENDED, NULL_REGEX, "gt-c-c-decl.h", "c/c-decl.c", NULL_FRULACT}, - { DIR_PREFIX_REGEX "c-tree\\.h$", - REG_EXTENDED, NULL_REGEX, "gt-c-decl.h", "c-decl.c", NULL_FRULACT}, + { DIR_PREFIX_REGEX "c/c-tree\\.h$", + REG_EXTENDED, NULL_REGEX, "gt-c-c-decl.h", "c/c-decl.c", NULL_FRULACT}, /* cp/cp-tree.h gives gt-cp-tree.h for cp/tree.c ! */ { DIR_PREFIX_REGEX "cp/cp-tree\\.h$", diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 5ca44c36dfd..e8ef7bb347d 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,16 @@ +2012-06-29 Steven Bosscher + + * Make-ang.in: Adjust for move of C front-end files. + * config-lang.in: Likewise. + * objc-encoding.c: Look for cp-tree.h in cp/, and for c-tree.h + and c-lang.h in c/. + * objc-runtime-shared-support.c: Likewise. + * objc-next-runtime-abi-01.c: Likewise. + * objc-next-runtime-abi-02.c: Likewise. + * objc-gnu-runtime-abi-01.c: Likewise. + * objc-act.c: Likewise. + * objc-lang.c: Likewise. + 2012-06-19 Steven Bosscher * objc-next-runtime-abi-01.c: Do not include tm.h and output.h. diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in index 94a462b00aa..05ddec639ff 100644 --- a/gcc/objc/Make-lang.in +++ b/gcc/objc/Make-lang.in @@ -44,7 +44,7 @@ objc: cc1obj$(exeext) .PHONY: objc START_HDRS = $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \ - c-lang.h langhooks.h c-family/c-objc.h objc/objc-act.h + c/c-lang.h langhooks.h c-family/c-objc.h objc/objc-act.h # Use maximal warnings for this front end. objc-warn = $(STRICT_WARN) @@ -83,7 +83,7 @@ objc/objc-lang.o : objc/objc-lang.c \ $(START_HDRS) \ $(GGC_H) \ $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h \ - c-objc-common.h + c/c-objc-common.h objc/objc-runtime-shared-support.o : objc/objc-runtime-shared-support.c \ gt-objc-objc-runtime-shared-support.h \ diff --git a/gcc/objc/config-lang.in b/gcc/objc/config-lang.in index 48f8582d74c..9a4ede65318 100644 --- a/gcc/objc/config-lang.in +++ b/gcc/objc/config-lang.in @@ -36,4 +36,4 @@ lang_requires="c" # Order is important. If you change this list, make sure you test # building without C++ as well; that is, remove the gcc/cp directory, # and build with --enable-languages=c,objc. -gtfiles="\$(srcdir)/objc/objc-map.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c-parser.c \$(srcdir)/c-tree.h \$(srcdir)/c-decl.c \$(srcdir)/c-lang.h \$(srcdir)/c-objc-common.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c" +gtfiles="\$(srcdir)/objc/objc-map.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c/c-parser.c \$(srcdir)/c/c-tree.h \$(srcdir)/c/c-decl.c \$(srcdir)/c/c-lang.h \$(srcdir)/c/c-objc-common.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c" diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 14e1d5f0599..5c924bf736c 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -27,10 +27,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "c-family/c-common.h" diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c index 10171fdd2c5..8d4a9c758b7 100644 --- a/gcc/objc/objc-encoding.c +++ b/gcc/objc/objc-encoding.c @@ -25,10 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "c-family/c-common.h" diff --git a/gcc/objc/objc-gnu-runtime-abi-01.c b/gcc/objc/objc-gnu-runtime-abi-01.c index 63a8c5b2e31..6bdffac10e7 100644 --- a/gcc/objc/objc-gnu-runtime-abi-01.c +++ b/gcc/objc/objc-gnu-runtime-abi-01.c @@ -24,10 +24,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "langhooks.h" diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c index b1bbb9e1fc0..9aa9bb3731c 100644 --- a/gcc/objc/objc-lang.c +++ b/gcc/objc/objc-lang.c @@ -25,15 +25,15 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" -#include "c-tree.h" +#include "c/c-tree.h" #include "c-family/c-common.h" #include "c-family/c-objc.h" #include "ggc.h" #include "objc-act.h" #include "langhooks.h" #include "langhooks-def.h" -#include "c-objc-common.h" -#include "c-lang.h" +#include "c/c-objc-common.h" +#include "c/c-lang.h" enum c_language_kind c_language = clk_objc; diff --git a/gcc/objc/objc-next-runtime-abi-01.c b/gcc/objc/objc-next-runtime-abi-01.c index b60bd468000..cf245911b90 100644 --- a/gcc/objc/objc-next-runtime-abi-01.c +++ b/gcc/objc/objc-next-runtime-abi-01.c @@ -29,10 +29,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "langhooks.h" #include "c-family/c-objc.h" diff --git a/gcc/objc/objc-next-runtime-abi-02.c b/gcc/objc/objc-next-runtime-abi-02.c index ee6a0a3fbf7..4f47a579087 100644 --- a/gcc/objc/objc-next-runtime-abi-02.c +++ b/gcc/objc/objc-next-runtime-abi-02.c @@ -32,10 +32,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "langhooks.h" #include "c-family/c-objc.h" diff --git a/gcc/objc/objc-runtime-shared-support.c b/gcc/objc/objc-runtime-shared-support.c index 7d478d97bea..0b6f93716b8 100644 --- a/gcc/objc/objc-runtime-shared-support.c +++ b/gcc/objc/objc-runtime-shared-support.c @@ -25,10 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #ifdef OBJCPLUS -#include "cp-tree.h" +#include "cp/cp-tree.h" #else -#include "c-tree.h" -#include "c-lang.h" +#include "c/c-tree.h" +#include "c/c-lang.h" #endif #include "langhooks.h" #include "c-family/c-objc.h"