Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!mips!sgi!shinobu!odin!sgi.com!scotth From: scotth@corp.sgi.com (Scott Henry) Newsgroups: comp.sys.sgi Subject: Re: gnuemacs, plp and cops for sgi irix 3.3.1 Message-ID: Date: 26 Nov 90 15:04:17 GMT References: <1990Nov20.045536.3965@comp.vuw.ac.nz> Sender: news@odin.corp.sgi.com (Net News) Reply-To: scotth@sgi.com (Scott Henry) Organization: Silicon Graphics Inc, Mountain View, CA Lines: 55 In-Reply-To: Frank.Jansen@comp.vuw.ac.nz's message of 20 Nov 90 04:55:36 GMT 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 / Traveller on Dragon Wings Information Services, / Help! My disclaimer is missing! Silicon Graphics, Inc / Politicians no baka!