Karl Kleinpaste <karl(a)justresearch.com> wrote:
Darryl Okahata <darrylo(a)sr.hp.com> writes:
> This was with HP's cc (the *unbundled* one)
...
> [ Note: I had to hand-edit the Makefiles to use profile-based optimization
...
>> BTW, using HPUX' own cc was an even bigger waste of time than most efforts
.
> Only if it's the bundled one good only for kernel building.
I don't think it's reasonable to suggest that building XEmacs be made
dependent on (or even suggest the use of) a compiler that is neither
gcc nor HPUX' own typically-bundled kernel, especially if there are
circumstances which require further hand-editing of makefiles in order
to make everything fly.
If hand-editing was required, I would agree with you.
However, hand-editing is NOT required.
Note that the "hand-editing" is only required to use the profile-based
optimization (which is really nice) of the unbundled compiler. You can
still compile XEmacs with "-g" (or whatever) without having to do any
hand-editing whatsoever (but with the unbundled compiler). It'll still
compile, but the performance won't be as good as that from profile-based
optimization.
[ Note: for those people unfamiliar with it, profile-based optimization
is a three step process:
1. Compile and dump XEmacs using special flags to add special
optimization instrumentation code.
2. Run XEmacs. Use XEmacs in the way you normally do. You also want
to exercise those parts of XEmacs which seem to run slowly. When
you exit XEmacs, a special file containing profile data is dumped
to disk.
3. Relink XEmacs using some more special flags, and redump. At this
point, the compiler/linker will optimize the machine code using the
profile data gathered in step #2 (I think HP's linker actually
calls the compiler to recompile the modules at this stage). The
resulting binary performs much better than if plain optimization
was used.
Because this method is a three-step process (instead of just one),
this isn't well-suited for the normal "./configure" process;
hand-editing of Makefiles is generally required. ]
I imagine that "most" folks building XEmacs will have gcc;
anyone who
wants it can have it. A set of documented options which is sure to
build a working XEmacs in that environment ought to be provided.
Granted, gcc is free and, well, ubiquitous. While I haven't done
any benchmarks, I feel that using HP's profile-based optimization
results in a faster XEmacs. I use (lazy) font-lock and setnu modes, and
I want all the speed I can get. A co-worker uses VM, and VM is much
more usable with large VM mail files if profile-based optimization is
used. I guess you get what you pay for.
OK, I just built the latest XEmacs 21.0-b62 "Pyrenean", under HP-UX
10.20 with the *unbundled* compiler. It was a very simple matter of
running "configure" followed by "make". No muss, no fuss. Here is
the
configure line:
./configure --without-gcc \
--site-includes=/usr/local/include:/opt/audio/include \
--site-libraries=/usr/local/lib:/opt/audio/lib \
--with-site-lisp=yes \
--gung-ho=yes \
--verbose \
--cflags='-g +DAportable' \
--prefix=/opt/hp \
--with-xpm=yes \
--with-xface=yes \
--rel-alloc=yes --memory-usage-stats \
--dynamic=yes --with-xmu=no \
--package-path='/users/darrylo/d0/gnu/outside-XEmacs/packages:/usr/local/lib/xemacs/packages:~/.xemacs'
(Sorry, I generally don't use gcc, as profile-based optimization results
in a faster XEmacs.)
[ Hmmm. Mumble, furble. ]
OK, I've just compiled Pyrenean using an old gcc 2.8.1, and it
seems to work fine. Here's what was used (just run "configure" and
"make"):
./configure --with-gcc=yes \
--site-includes=/usr/local/include:/opt/audio/include \
--site-libraries=/usr/local/lib:/opt/audio/lib \
--with-site-lisp=yes \
--gung-ho=yes \
--verbose \
--cflags='-g' \
--prefix=/opt/hp \
--with-xpm=yes \
--with-xface=yes \
--rel-alloc=yes --memory-usage-stats \
--dynamic=yes --with-xmu=no \
--package-path='/users/darrylo/d0/gnu/outside-XEmacs/packages:/usr/local/lib/xemacs/packages:~/.xemacs'
I'm sure that some of the above options are redundant, and not
required.
[ Hey, I generally don't use gcc, and so I have little incentive to keep
it up-to-date (or use egcs). I only keep gcc around to compile ddd
and to occasionally play with kde. ]
--
Darryl Okahata
darrylo(a)sr.hp.com
DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion, or policy of Hewlett-Packard, or of the
little green men that have been following him all day.