[backport r171214 to unbreak bootstrap w/ obj-c++ enabled ] gcc/ 2011-03-21 Nicola Pero PR bootstrap/48167 * gengtype.c (files_rules): Added rule for cp/parser.h. gcc/objcp/ 2011-03-21 Nicola Pero PR bootstrap/48167 * Make-lang.in (START_HDRS): Added CXX_PARSER_H and CXX_PRETTY_PRINT_H. * config-lang.in (gtfiles): Added cp/parser.h and reorganized list so that it is more obvious that it is identical to the C++ one with the addition of some files at the end. --- gcc-4.7-20110319/gcc/gengtype.c.~1~ 2011-03-16 09:35:31.000000000 +0100 +++ gcc-4.7-20110319/gcc/gengtype.c 2011-03-21 16:21:15.000000000 +0100 @@ -1761,6 +1761,12 @@ static outf_p source_dot_c_frul (input_f matters, so change with extreme care! */ struct file_rule_st files_rules[] = { + /* The general rule assumes that files in subdirectories belong to a + particular front-end, and files not in subdirectories are shared. + The following rules deal with exceptions - files that are in + subdirectories and yet are shared, and files that are top-level, + but are not shared. */ + /* the c-family/ source directory is special. */ { DIR_PREFIX_REGEX "c-family/([[:alnum:]_-]*)\\.c$", REG_EXTENDED, NULL_REGEX, @@ -1792,7 +1798,12 @@ struct file_rule_st files_rules[] = { REG_EXTENDED, NULL_REGEX, "gt-cp-name-lookup.h", "cp/name-lookup.c", NULL_FRULACT }, - /* objc/objc-act.h fives gt-objc-objc-act.h for objc/objc-act.c ! */ + /* cp/parser.h gives gt-cp-parser.h for cp/parser.c ! */ + { DIR_PREFIX_REGEX "cp/parser\\.h$", + REG_EXTENDED, NULL_REGEX, + "gt-cp-parser.h", "cp/parser.c", NULL_FRULACT }, + + /* objc/objc-act.h gives gt-objc-objc-act.h for objc/objc-act.c ! */ { DIR_PREFIX_REGEX "objc/objc-act\\.h$", REG_EXTENDED, NULL_REGEX, "gt-objc-objc-act.h", "objc/objc-act.c", NULL_FRULACT }, --- gcc-4.7-20110319/gcc/objcp/Make-lang.in.~1~ 2011-02-18 01:07:38.000000000 +0100 +++ gcc-4.7-20110319/gcc/objcp/Make-lang.in 2011-03-21 16:21:15.000000000 +0100 @@ -45,7 +45,7 @@ obj-c++: cc1objplus$(exeext) .PHONY: obj-c++ START_HDRS = $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(CXX_TREE_H) \ - langhooks.h c-family/c-objc.h objc/objc-act.h + $(CXX_PARSER_H) $(CXX_PRETTY_PRINT_H) langhooks.h c-family/c-objc.h objc/objc-act.h # Use maximal warnings for this front end. Also, make ObjC and C++ # headers accessible. @@ -78,7 +78,7 @@ cc1objplus$(exeext): $(OBJCXX_OBJS) cc1o objcp/objcp-lang.o : objcp/objcp-lang.c $(START_HDRS) \ $(C_COMMON_H) $(LANGHOOKS_DEF_H) cp/cp-objcp-common.h \ - $(TARGET_H) gtype-objcp.h + $(TARGET_H) gtype-objcp.h objcp/objcp-decl.o : objcp/objcp-decl.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(CXX_TREE_H) \ --- gcc-4.7-20110319/gcc/objcp/config-lang.in.~1~ 2011-02-20 18:22:02.000000000 +0100 +++ gcc-4.7-20110319/gcc/objcp/config-lang.in 2011-03-21 16:21:15.000000000 +0100 @@ -37,5 +37,14 @@ build_by_default="no" lang_requires="objc c++" subdir_requires="objc cp" -gtfiles="\$(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)/cp/call.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/method.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/parser.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/rtti.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c " +# When you add to this gtfiles list a header which comes from a +# directory belonging to another language (ie, C++ or ObjC), you need +# to also edit gengtype.c adding a special rule for the header to +# avoid having the GC stuff from that header being added to gtype-cp.h +# or gtype-objc.h. + +# This list is separated in two parts: the first one is identical to +# the C++ one, the second one contains our ObjC++ additions. +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.h \$(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-objc.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)/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-family/c-cppbuiltin.c"