emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [patch] combined build


From: Dan Nicolaescu
Subject: Re: [patch] combined build
Date: Thu, 15 Nov 2007 08:28:33 -0800

Dmitry Antipov <address@hidden> writes:

  > This patch provides a minimal support for compiling (the most of) emacs C 
code at once using
  > -combine option supported by never versions of GCC. Since an almost 
everything is compiled
  > each time when the compiler is invoked, this mode is not suitable for 
developers. But it might
  > be useful for package builders and other peoples who just wants to do 
'./configure && make &&
  > make install' sequence. This feature also gives GCC a chance to optimize 
something during
  > inter-module analysis.
  > 
  > Notes:
  > 
  > 1. Compiling with -combine implies quite strict function declarations vs. 
definitions checking,
  >    so C code is touched in some places. In particular, current 'fatal' 
implementation bombs
  >    out combining compilation, and I've redone it with va_args. This might 
be non-portable or
  >    may break some ancient compiler.

I went through exactly this exercise 2 years ago, trying to fix all the
combine problems in the tree at that time. I had to undo a similar
"fatal" change for these concerns.

Now is a good time to reconsider, IMHO we should not support building
without varargs.

Please note that to get the full benefit of interprocedural optimization
you'd also need -fwhole-program, and that implies that the files in
lwlib should be added to the temacs compile line.


  > 2. For me, it doesn't work when using GTK toolkit. When using both GTK and 
-combine, I've got
  >    the following nasty error messages:
  > 
  >    In file included from /usr/include/gtk-2.0/gtk/gtk.h:74,
  >                     from xterm.h:46,
  >                     from fns.c:53:
  >    /usr/include/gtk-2.0/gtk/gtkcurve.h:104: error: conflicting types for 
'gtk_curve_get_vector'
  >    /usr/include/gtk-2.0/gtk/gtkcurve.h:104: error: previous declaration of 
'gtk_curve_get_vector' was here
  >    /usr/include/gtk-2.0/gtk/gtkcurve.h:106: error: conflicting types for 
'gtk_curve_set_vector'
  >    /usr/include/gtk-2.0/gtk/gtkcurve.h:106: error: previous declaration of 
'gtk_curve_set_vector' was here
  > 
  >    I suspect this is a bug in GCC. So I've installed an additional check in 
configure.in
  >    to avoid using both GTK and -combine simultaneously.

What version of Gtk is this?
If you are certain this is a gcc bug, please report it.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]