[comp.sys.sgi] gnuemacs, plp and cops for sgi irix 3.3.1

Frank.Jansen@comp.vuw.ac.nz (Frank Jansen - CSC) (11/20/90)

We will be setting up a SG 4D/340S running IRIX 3.3.1 and would like to 
know of sites from whom we can ftp the patches for: plp, cops and gnuemacs.
Thanks in advance.  

scotth@corp.sgi.com (Scott Henry) (11/26/90)

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@sgi.com> / Traveller on Dragon Wings
 Information Services,       / Help! My disclaimer is missing!
 Silicon Graphics, Inc      / Politicians no baka!