Bignum support still broken on powerpc (ping: Jerry James)

robert delius royar xemacs at frinabulax.org
Wed Apr 5 15:07:45 EDT 2006


Now that Jerry James is back, I wanted to report again that big number 
support appears to break something about the byte compiler when linking 
(on powerpc Mac) during the first pass at creating an XEmacs executable.

The breakage first began some months ago, and I reported it then.

I tried to build today with -enable-bignum=gmp.  I got the same 
breakage.

My system is Mac OS X 10.4.6 (both a G4 and a G5).  I compile with 
gcc4.01.  The error is

*** Error in XEmacs initialization
(wrong-type-argument sequencep 34)
*** Backtrace
   really-early-error-handler((wrong-type-argument sequencep 34))
   define-key(#<keymap global-map size 6 0x250f> 34 self-insert-command)
   # bind (n)

Right after the console says (I mean the lines below fall immediately 
before the block above)
Loading /Users/royar/src/xemacs/lisp/simple.elc...

Loading /Users/royar/src/xemacs/lisp/newcomment.elc...
Loading /Users/royar/src/xemacs/lisp/keydefs.elc...

There must be some character alignment issue because the error string 
switches the console xterm to what looks to be "line-drawing mode."  And 
the console has to be reset.

The error is early in linking.  The linking commands run right before 
the excerpt above are


gcc -Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts 
-Wpacked -Wpointer-arith -Wunused-parameter -g -Os -pipe -mcpu=970 
-mtune=970 -mpim-altivec -Os -pipe -mcpu=970 -mtune=970 -mpim-altivec 
-mpowerpc-gpopt   -L/opt/local/lib -L/usr/X11R6/lib -L/usr/lib 
-L/usr/X11R6/lib  -o temacs  abbrev.o alloc.o alloca.o balloon_help.o 
balloon-x.o blocktype.o buffer.o bytecode.o callint.o casefiddle.o 
casetab.o chartab.o filelock.o cmdloop.o cmds.o  console.o 
console-stream.o data.o database.o  device.o dired.o doc.o doprnt.o 
dynarr.o editfns.o elhash.o emacs.o emodules.o eval.o events.o 
event-stream.o event-unixoid.o dumper.o inline.o esd.o miscplay.o 
terminfo.o extents.o faces.o file-coding.o fileio.o  filemode.o 
floatfns.o fns.o font-lock.o frame.o gc.o general.o dgif_lib.o gif_io.o 
glyphs.o glyphs-eimage.o glyphs-shared.o glyphs-widget.o    gui.o 
menubar.o scrollbar.o dialog.o toolbar.o gutter.o hash.o imgproc.o 
indent.o insdel.o intl.o keymap.o  line-number.o  lread.o lstream.o 
macros.o marker.o md5.o minibuf.o   mule-ccl.o mule-charset.o 
mule-coding.o   number-gmp.o number.o objects.o opaque.o  print.o 
process.o process-unix.o profile.o rangetab.o realpath.o redisplay.o 
redisplay-output.o regex.o search.o select.o  sysdll.o signal.o sound.o 
specifier.o strftime.o  symbols.o syntax.o sysdep.o text.o 
console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o 
redisplay-tty.o cm.o undo.o unicode.o console-x.o device-x.o event-Xt.o 
frame-x.o glyphs-x.o objects-x.o redisplay-x.o select-x.o xgccache.o 
intl-x.o gui-x.o menubar-x.o scrollbar-x.o dialog-x.o toolbar-x.o 
toolbar-common.o widget.o window.o  lastfile.o   EmacsFrame.o 
EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o 
ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o   dump-id.o 
dump-data.o ../lwlib/liblw.a  -lXaw3d -ltiff -lpng -ljpeg -lz -lXpm 
-lXmu -lXt -lXext -lX11 -lSM -lICE -lgmp -ldb -lgdbm -lncurses 
-L/opt/local/lib -lesd -laudiofile -lm -lintl
./temacs -nd -no-packages -batch -l 
/Users/royar/src/xemacs/src/../lisp/update-elc.el

Loading /Users/royar/src/xemacs/src/../lisp/update-elc.el...
   Loading find-paths.el...
   Loading packages.el...
   Loading setup-paths.el...
   Loading /Users/royar/src/xemacs/lisp/dumped-lisp.el...
Wrote /Users/royar/src/xemacs/src/REBUILD_AUTOLOADS
if true ; then \
  ./temacs -nd -no-packages -batch -l 
/Users/royar/src/xemacs/src/../lisp/make-docfile.el -- \
         -o ../lib-src/DOC -d /Users/royar/src/xemacs/src -i 
../lib-src/../site-packages \
         abbrev.c alloc.c alloca.c balloon_help.c balloon-x.c blocktype.c 
buffer.c bytecode.c callint.c casefiddle.c casetab.c chartab.c 
filelock.c cmdloop.c cmds.c  console.c console-stream.c data.c 
database.c  device.c dired.c doc.c doprnt.c dynarr.c editfns.c elhash.c 
emacs.c emodules.c eval.c events.c event-stream.c event-unixoid.c 
dumper.c inline.c esd.c miscplay.c terminfo.c extents.c faces.c 
file-coding.c fileio.c  filemode.c floatfns.c fns.c font-lock.c frame.c 
gc.c general.c dgif_lib.c gif_io.c glyphs.c glyphs-eimage.c 
glyphs-shared.c glyphs-widget.c    gui.c menubar.c scrollbar.c dialog.c 
toolbar.c gutter.c hash.c imgproc.c indent.c insdel.c intl.c keymap.c 
line-number.c  lread.c lstream.c   macros.c marker.c md5.c minibuf.c 
mule-ccl.c mule-charset.c mule-coding.c   number-gmp.c number.c 
objects.c opaque.c  print.c process.c process-unix.c profile.c 
rangetab.c realpath.c redisplay.c redisplay-output.c regex.c search.c 
select.c  sysdll.c signal.c sound.c specifier.c strftime.c  symbols.c 
syntax.c sysdep.c text.c  console-tty.c device-tty.c event-tty.c 
frame-tty.c objects-tty.c redisplay-tty.c cm.c undo.c unicode.c 
console-x.c device-x.c event-Xt.c frame-x.c glyphs-x.c objects-x.c 
redisplay-x.c select-x.c xgccache.c intl-x.c gui-x.c menubar-x.c 
scrollbar-x.c dialog-x.c toolbar-x.c toolbar-common.c widget.c window.c 
\
          ; fi

Loading /Users/royar/src/xemacs/src/../lisp/make-docfile.el...
   Loading find-paths.el...
   Loading packages.el...
   Loading setup-paths.el...
   Loading raw-process.el...
     Requiring custom...
       Requiring widget...
     Loading process...
   Loading /Users/royar/src/xemacs/lisp/dumped-lisp.el...
Spawning make-docfile ...
Spawning make-docfile ...done
./temacs -nd -no-packages -batch -l 
/Users/royar/src/xemacs/src/../lisp/loadup.el dump

Loading /Users/royar/src/xemacs/src/../lisp/loadup.el...
Using load-path (/Users/royar/src/xemacs/lisp/)
Using module-load-path (/Users/royar/src/xemacs/modules)

In compiling I see a few of these gmp-related warnings:
data.c: In function 'Flsh':
data.c:2412: warning: control may reach end of non-void function '__gmpz_get_ui' being inlined
floatfns.c: In function 'Fexpt':
floatfns.c:505: warning: control may reach end of non-void function '__gmpz_get_ui' being inlined
number.c: In function 'bignum_hash':
number.c:70: warning: control may reach end of non-void function '__gmpz_get_ui' being inlined

I have tried with no optimization, no union type, and many simple 
configurations.  The outcome is always the same.

-- 
Dr. Robert Delius Royar                   Associate Professor of English
Morehead State University                             Morehead, Kentucky




More information about the XEmacs-Beta mailing list