gnuemacs, plp and cops for sgi irix 3.3.1

Scott Henry scotth at corp.sgi.com
Tue Nov 27 02:04:17 AEST 1990


I think it's time to re-post the patches to Gnu Emacs 18.55 that allow you
to build and run it on Irix 3.3 and later:

Between 3.2.* and 3.3, the loader no longer ignored errors in the a.out
header that GNU Emacs took advantage of. I am told that that was un-done
in 3.3.1. It mostly meant that a _stripped_ 3.2 binary would fail to load
under 3.3, an unstripped one would appear to work fine. In addition, a
change was made in libc.a for POSIX compliance: getwd() was defined, but
in terms of getcwd() (or something like that). Emacs assumes by default
that a system doesn't have getcwd(), and defines one interms of getwd().
Hence, an inifinite recursion loop is generated, and Emacs core-dumps when
it hits process limits while building the final executable.

2 solutions:

1) Get 18.56 (should be available any day now, I understand) -- I tested
   it to ensure that it compiles out-of-the-box under 3.3.1.

2) Add the following lines to .../src/config.h:

/*
 * Irix 3.3 defines this, and causes an infinite loop when trying to dump.
 */
#define HAVE_GETWD

and (if you are running 3.3 unstead of 3.3.1), apply the following patch
to .../src/unexmips.c (a 1-line change):

*** unexmips.c.orig	Thu Jan 12 16:14:05 1989
--- unexmips.c	Mon Jul 30 22:10:10 1990
***************
*** 255,261 ****
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - DATA_START;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
--- 255,261 ----
    rdata_section->s_size = data_start - DATA_START;
    data_section->s_vaddr = data_start;
    data_section->s_paddr = data_start;
!   data_section->s_size = brk - data_start;
    data_section->s_scnptr = rdata_section->s_scnptr + rdata_section->s_size;
    vaddr = data_section->s_vaddr + data_section->s_size;
    scnptr = data_section->s_scnptr + data_section->s_size;
***************

 --
--
 Scott Henry <scotth at sgi.com> / Traveller on Dragon Wings
 Information Services,       / Help! My disclaimer is missing!
 Silicon Graphics, Inc      / Politicians no baka!



More information about the Comp.sys.sgi mailing list