mike@rad.wustl.edu (Mike Ehlers) (09/26/90)
I have been trying to compile GNU emacs under SUNOS 4.1 (on both sparc and sun3 models. The problem is that xemacs gets built but runs aborts with Fatal Error (6). The dbx traceback looks like: program terminated by signal ABRT (abort) (dbx) kill(0x278, 0x6) at 0x407ec abort() at 0x427a9 malloc(n = 5), line 515 in "malloc.c" yp_unbind() at 0x45dc3 yp_get_default_domain(0xe586a) at 0x45dfd setpwent() at 0x414e3 getpwuid(0x0) at 0x41369 init_editfns(), line 69 in "editfns.c" main(argc = 1, argv = 0xdffff2c, envp = 0xdffff34), line 361 in "emacs.c" start1(ignore = 0, argc = 1, xargv = 0xdffff58 "xemacs"), line 395 in "crt0.c" warning: object file read error: text address not found warning: core file read error: data space address too high warning: core file read error: data space address too high _start(), line 373 in "crt0.c" Any ideas/suggestions appreciated. thanks mike ------------------------------------------------------------ Michael Ehlers mike@wucs1.wustl.edu Department of Computer Science uunet!wucs1!mike Washington University (314)-889-6429 Box 1045, Bryan 509 1 Brookings Drive St. Louis, MO 63130 USA ------------------------------------------------------------ Michael Ehlers mike@wucs1.wustl.edu Department of Computer Science uunet!wucs1!mike Washington University (314)-889-6429
denio@beno.CSS.GOV (Dennis O'Neill) (09/27/90)
In article <1990Sep26.163734.4471@cec1.wustl.edu> mike@rad.wustl.edu (Mike Ehlers) writes: >I have been trying to compile GNU emacs under SUNOS 4.1 (on both >sparc and sun3 models. The problem is that xemacs gets built but >runs aborts with Fatal Error (6). The dbx traceback looks like: > ... I also got ... >program terminated by signal ABRT (abort) >(dbx) kill(0x278, 0x6) at 0x407ec >abort() at 0x427a9 >malloc(n = 5), line 515 in "malloc.c" >yp_unbind() at 0x45dc3 >yp_get_default_domain(0xe586a) at 0x45dfd >setpwent() at 0x414e3 >getpwuid(0x0) at 0x41369 >init_editfns(), line 69 in "editfns.c" >main(argc = 1, argv = 0xdffff2c, envp = 0xdffff34), line 361 in "emacs.c" ... but I didn't get the following ... >start1(ignore = 0, argc = 1, xargv = 0xdffff58 "xemacs"), line 395 in "crt0.c" >warning: object file read error: text address not found >warning: core file read error: data space address too high >warning: core file read error: data space address too high >_start(), line 373 in "crt0.c" I also tried compiling with the X stuff enabled; same error messages,but the traceback showed a different path, to wit: (dbx) where kill() at 0x7ceb0 abort() at 0x80d4c malloc(n = 5), line 515 in "malloc.c" copystring() at 0x7995c _XConnectDisplay() at 0x79a14 XOpenDisplay() at 0x703d8 x_term_init(), line 1534 in "x11term.c" init_display(), line 1411 in "dispnew.c" main(argc = 1, argv = 0xf7fffb4c, envp = 0xf7fffb54), line 357 in "emacs.c" System info: o Sun SparcStation 1+ o Sun OS 4.1 o X Version 11 Release 4 Patchlevel 14, generic o window manager twm o C compiler is "cc" Options set in src/config.h are: #include "s-sunos4.h" #include "m-sparc.h" #define HAVE_X_WINDOWS #define X11 #define HAVE_X_MENU So, Mike is not alone. Any ideas? Dennis O'Neill denio@seismo.css.gov
djm@eng.umd.edu (David J. MacKenzie) (09/27/90)
There are several bugs and incompatibilities involved; some are in
SunOS 4.1, and some are in emacs. Here are diffs from 18.55 that make
it work (also a patch for an Ultrix bug on Decstations).
diff -2rc dist-18.55.dist/src/alloc.c dist-18.55/src/alloc.c
*** dist-18.55.dist/src/alloc.c Mon Feb 13 05:23:35 1989
--- dist-18.55/src/alloc.c Mon Nov 27 23:30:13 1989
***************
*** 665,673 ****
#define NSTATICS 200
- char staticvec1[NSTATICS * sizeof (Lisp_Object *)] = {0};
-
int staticidx = 0;
#define staticvec ((Lisp_Object **) staticvec1)
/* Put an entry in staticvec, pointing at the variable whose address is given */
--- 665,676 ----
#define NSTATICS 200
int staticidx = 0;
+ #ifdef __GNUC__
+ Lisp_Object *staticvec[NSTATICS] = {0};
+ #else
+ char staticvec1[NSTATICS * sizeof (Lisp_Object *)] = {0};
#define staticvec ((Lisp_Object **) staticvec1)
+ #endif
/* Put an entry in staticvec, pointing at the variable whose address is given */
diff -2rc dist-18.55.dist/src/m-pmax.h dist-18.55/src/m-pmax.h
*** dist-18.55.dist/src/m-pmax.h Thu Jun 8 11:53:55 1989
--- dist-18.55/src/m-pmax.h Fri Jul 13 19:16:29 1990
***************
*** 2,3 ****
--- 2,5 ----
#undef LIBS_MACHINE
#undef BIG_ENDIAN
+ #define DATA_START 0x10000000
+ #define DATA_SEG_BITS 0x10000000
diff -2rc dist-18.55.dist/src/malloc.c dist-18.55/src/malloc.c
*** dist-18.55.dist/src/malloc.c Fri Apr 7 21:12:10 1989
--- dist-18.55/src/malloc.c Wed Jul 11 16:11:15 1990
***************
*** 477,481 ****
--- 477,486 ----
Both the beginning of the header and the beginning of the
block should be on an eight byte boundary. */
+ #ifdef sun
+ /* SunOS 4.1 localtime scribbles on the ninth byte. */
+ nbytes = (n + ((sizeof *p + 15) & ~15) + EXTRA + 15) & ~15;
+ #else
nbytes = (n + ((sizeof *p + 7) & ~7) + EXTRA + 7) & ~7;
+ #endif
{
register unsigned int shiftr = (nbytes - 1) >> 2;
diff -2rc dist-18.55.dist/src/process.c dist-18.55/src/process.c
*** dist-18.55.dist/src/process.c Sun Aug 6 17:01:31 1989
--- dist-18.55/src/process.c Fri Jul 13 19:18:25 1990
***************
*** 1032,1035 ****
--- 1032,1038 ----
ioctl (j, TIOCNOTTY, 0);
close (j);
+ #ifndef USG
+ setpgrp (0, 0);
+ #endif
}
#endif /* TIOCNOTTY */
diff -2rc dist-18.55.dist/src/x11term.c dist-18.55/src/x11term.c
*** dist-18.55.dist/src/x11term.c Wed Aug 2 21:56:42 1989
--- dist-18.55/src/x11term.c Fri Jul 13 19:22:32 1990
***************
*** 1213,1216 ****
--- 1213,1218 ----
#endif /* not sun */
+ static XComposeStatus status;
+
internal_socket_read(bufp, numchars)
register unsigned char *bufp;
***************
*** 1223,1227 ****
BLOCK_INPUT_DECLARE ();
XEvent event;
- XComposeStatus status;
KeySym keysym;
--- 1225,1228 ----
***************
*** 1330,1334 ****
nbytes = XLookupString (&event,
mapping_buf, 20, &keysym,
! 0);
/* Someday this will be unnecessary as we will
be able to use XRebindKeysym so XLookupString
--- 1331,1335 ----
nbytes = XLookupString (&event,
mapping_buf, 20, &keysym,
! &status);
/* Someday this will be unnecessary as we will
be able to use XRebindKeysym so XLookupString
--
David J. MacKenzie <djm@eng.umd.edu> <djm@ai.mit.edu>