From xemacs-m  Tue Sep 23 22:11:53 1997
Received: from black-ice.cc.vt.edu (black-ice.cc.vt.edu [128.173.14.71])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id WAA25479
	for <xemacs-beta@xemacs.org>; Tue, 23 Sep 1997 22:11:53 -0500 (CDT)
Received: from black-ice.cc.vt.edu (LOCALHOST [127.0.0.1])
	by black-ice.cc.vt.edu (8.8.7/8.8.7) with ESMTP id XAA19804
	for <xemacs-beta@xemacs.org>; Tue, 23 Sep 1997 23:11:51 -0400
Message-Id: <199709240311.XAA19804@black-ice.cc.vt.edu>
To: xemacs-beta@xemacs.org
Subject: 20.3-b32 build mostly OK on AIX 4.2.1
From: Valdis.Kletnieks@vt.edu
X-URL: http://black-ice.cc.vt.edu/~valdis/
Pgp-Action: PGP/MIME-signclear; rfc822=off; originator="<Valdis.Kletnieks@vt.edu>"
X-Face-Viewer: See ftp://cs.indiana.edu/pub/faces/index.html to decode picture
X-Face: 34C9$Ewd2zeX+\!i1BA\j{ex+$/V'JBG#;3_noWWYPa"|,I#`R"{n@w>#:{)FXyiAS7(8t(
 ^*w5O*!8O9YTe[r{e%7(yVRb|qxsRYw`7J!`AM}m_SHaj}f8eb@d^L>BrX7iO[<!v4-0bVIpaxF#-)
 %9#a9h6JXI|T|8o6t\V?kGl]Q!1V]GtNliUtz:3},0"hkPeBuu%E,j(:\iOX-P,t7lRR#
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <25428.875070706.1@black-ice.cc.vt.edu>
Date: Tue, 23 Sep 1997 23:11:47 -0400

AIX 4.2.1, xlc 3.1.4.7, 20.3-b23 with Kyle's 2 speed patches.  Executive summary:
Builds mostly clean, feels fast, no "crash&burn before finished loading .emacs".
Basic editing works, gnuclient to open a new frame works, gnus works....
Seems to be sensitive to exact compiler options at high optimization.

Caveat 1: Still needed a tweak to src/m/ibmrs6000.h to get it to compile.. I
know the *right* thing is to fix Configure, and I  hope to have more disk space
Real Soon Now (am stealing about 4G from a machine that was replaced this weekend),
so the Configure Gods can poke around and find what they need.;)

Caveat 2: IBM supplies 2 flavors of C compiler (cc and xlc). The 'cc' invocation
is more Berkeleyish, the 'xlc' flavor is hard-line ANSI.  The biggest distinction
between the 2 is that 'cc' assumes the equivalent of gcc's -fwritable-strings,
and 'xlc' assumes a lot of ANSI-ish things about side effects.  The one that
nails XEmacs is '-qansialias' (set by default for xlc).  When set, this tells the
compiler that if it has a pointer to something, it can optimize without worrying
that there's another pointer to the object via a different type pointer (i.e.
that there are no cases where a 'struct FOO *a;' and 'struct BAR *b;' point at
the same memory locations).  XEmacs obviously breaks this rule someplace. ;)

Caveat 3: Configure managed to trip over an IBM compiler bug if trying to compile
with '-O3 -qlibansi' (high optimisation, and assume anything that's called the same
as an ANSI function is side-effect compatible, and optimize accordingly).  Resulted
in -lm not being auto-detected. Bad. Bad. Bad Naughty Compiler.  I've reported it to IBM.

Kudos  to Glynn Clements, who created the diffs to xlmenu.c that seem to have
fixed the problem with incredibly quick death under AIX 4.2.1 unless --with-menubar=no
was given.

-O3 seems to be safe, as long as you use -qnoansialias (see above).

Still outstanding bugs (been there for a while, but everything else is stable
enough now that I can chase them):

1) There seems to be a XGrabKeyboard() without a matching ungrab in the
lwlib/xlscrollbar.c code, with the following X resource:
Emacs*XlwScrollBar.translations: #override \n\
  <Btn1Down>:     PageDownOrRight()    \n\
  <Btn3Down>:     PageUpOrLeft() 
Paging up will lock up the keyboard. Not sure why, I have to debug a bit mroe.

2) There may still be a bug lurking in lwlib/xlmenu.c near map_event_to_widget_value().
I'm not sure if the bug is there or in motion_even_is_in_menu(), or elsewhere, but there
seems to be a off-by-one error for cascading menus that get drawn to the left, where
trying to slide the mouse over will cause the menu(s) to drop off and end up 
selecting a parent menu that was buried under the one you were trying to get to.
Sounds confusing, I know.  Sometimes if you move the mouse REALLY fast, it won't generate
a motion event in the one-pixel dead zone and Things Work...
It appears that somebody already looked at this code a bit, as map_event_to_widget_value()
now runs the for(;;) loop in the opposite direction from what I remember when last
I started looking at this.  I'll have to tread carefully here.. ;)

Enough rambling for now..

/Valdis

uname -a: AIX black-ice 2 4 003260504C00

./configure  '-with-gcc=no' '--compiler=xlc' '--cflags=-O3 -ma -qnoansialias -qlibansi -qarch=com -DNO_ANSI_KEYWORDS' '--dynamic=yes' '--debug=no' '--error-checking=none' '--with-mule' '--site-includes=/usr/local/include' '--site-libraries=/usr/local/lib'


Configured for `powerpc-ibm-aix4.2.1.0'.

  Where should the build process find the source code?    /home/spd/valdis/src/xemacs-20.3-b23/src
  What installation prefix should install use?		  /usr/local
  Where should XEmacs look for packages?		  ~/.xemacs:/usr/local/lib/xemacs/packages
  What operating system and machine description files should XEmacs use?
        `s/aix4-2.h' and `m/ibmrs6000.h'
  What compiler should XEmacs be built with?              xlc -O3 -ma -qnoansialias -qlibansi -qarch=com -DNO_ANSI_KEYWORDS
  Should XEmacs use the GNU version of malloc?            yes
  Should XEmacs use the relocating allocator for buffers? yes
  What window system should XEmacs use?                   x11
  Where do we find X Windows header files?                /usr/dt/include 
  Where do we find X Windows libraries?                   /usr/dt/lib 
  Additional header files:                                /usr/local/include
  Additional libraries:                                   /usr/local/lib
  Compiling in support for XAUTH.
  Compiling in support for GIF image conversion.
  Compiling in support for XPM images.
  Compiling in support for X-Face message headers.
  Compiling in support for JPEG image conversion.
  Compiling in support for GNU DBM.
  Compiling in Mule (multi-lingual) support.
  Compiling in support for CDE.
  Compiling in support for ToolTalk.
  Compiling in support for proper session-management.
  Using Lucid menubars.
  Using Lucid scrollbars.
  Using Motif dialog boxes.
  movemail will use "lockf" for locking mail spool files.

