On Tue, May 16, 2006 at 02:08:13PM -0400, Andrew Pinski wrote: > > > > > > > > On Tue, May 16, 2006 at 10:41:22AM -0700, Andrew Pinski wrote: > > > > > > > > On May 16, 2006, at 10:39 AM, H. J. Lu wrote: > > > > > > > > > > > > > >I assume that -fno-common is added by hand since I didn't see it > > > > >in my build logs on Linux/x86, Linux/x86-64 and Linux/ia64. > > > > > > > > No it is not added by hand. It is used when checking is turned on. > > > > Now I see you did not have checking on which is wrong for development. > > > > > > > > > > Here is a patch to force commoncommon symbols in options.o. > > > > This is wrong. > > Please read: > http://gcc.gnu.org/ml/gcc-patches/2002-08/msg01057.html > > What you need is a options.c that is only for the driver. > > I think both patches should be revert and went back to the drawning boards. >
Here is a patch to compile gcc-options.o from options.c. I have to update gcc/java/lang.opt since flag_emit_class_files isn't defined in any files. H.J. ---- gcc/ 2006-05-16 H.J. Lu <[EMAIL PROTECTED]> * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o. (gcc-options.o): New rule. * optc-gen.awk: Protect variables for gcc-options.o with #ifdef GCC_DRIVER/#endif. gcc/java/ 2006-05-16 H.J. Lu <[EMAIL PROTECTED]> * lang.opt(femit-class-file): Remove VarExists. --- gcc/Makefile.in.common 2006-05-16 09:26:43.000000000 -0700 +++ gcc/Makefile.in 2006-05-16 11:53:20.000000000 -0700 @@ -961,7 +961,7 @@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ # Object files for gcc driver. -GCC_OBJS = gcc.o opts-common.o options.o +GCC_OBJS = gcc.o opts-common.o gcc-options.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 \ @@ -1767,6 +1767,9 @@ s-options-h: optionlist $(srcdir)/opt-fu options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h +gcc-options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) opts.h intl.h + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(OUTPUT_OPTION) -DGCC_DRIVER options.c + dumpvers: dumpvers.c version.o: version.c version.h $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE) --- gcc/java/lang.opt.common 2006-04-25 18:49:30.000000000 -0700 +++ gcc/java/lang.opt 2006-05-16 12:08:34.000000000 -0700 @@ -119,7 +119,7 @@ fcompile-resource= Java Joined RejectNegative femit-class-file -Java Var(flag_emit_class_files) VarExists +Java Var(flag_emit_class_files) Output a class file femit-class-files --- gcc/optc-gen.awk.common 2006-05-16 09:23:04.000000000 -0700 +++ gcc/optc-gen.awk 2006-05-16 11:57:46.000000000 -0700 @@ -62,7 +62,9 @@ for (i = 1; i <= n_headers; i++) print "#include " quote "opts.h" quote print "#include " quote "intl.h" quote print "" +print "#ifdef GCC_DRIVER" print "int target_flags;" +print "#endif /* GCC_DRIVER */" print "" for (i = 0; i < n_opts; i++) { @@ -75,6 +77,7 @@ for (i = 0; i < n_opts; i++) { if (name in var_seen) continue; init = "" + gcc_driver = 1 } else { init = opt_args("Init", flags[i]) @@ -82,11 +85,16 @@ for (i = 0; i < n_opts; i++) { init = " = " init; else if (name in var_seen) continue; + gcc_driver = 0 } + if (gcc_driver == 1) + print "#ifdef GCC_DRIVER" print "/* Set by -" opts[i] "." print " " help[i] " */" print var_type(flags[i]) name init ";" + if (gcc_driver == 1) + print "#endif /* GCC_DRIVER */" print "" var_seen[name] = 1;