Article View: gnu.emacs.bug
Article #99818Problems with lispref on VMS (v5.2-1) and GNU C (v1.36)
From: Roland Roberts
Date: Fri, 11 May 1990 16:45
Date: Fri, 11 May 1990 16:45
59 lines
3402 bytes
3402 bytes
I just retrieved the file lispref.tar.Z and moved everything to our VAX/VMS system. However, I found a couple of problems. First, make-permuted-index is referred to in the README file. Is this supposed to be permute-index? If not, where can I obtain it? MAKEINFO.C: The first was that makeinfo had to be be modified to compile under gcc (version 1.36) on VMS. I'm sending the context diffs to the this file separately. Part of the problem lies in a VAXC RTL routine (stat) that lies about the file size. The value of the field st_size is always larger than the number of bytes you can read. I spent a day trying to understand the systematics of the difference but haven't yet figured it out. Additionally, `read' will not cross an record boundary (i.e., a newline for "normal" VMS files), so I used the same technique found in the Emacs source fileio.c and bagged the comparison with the value of st_size. Converting the files to STREAM_LF or something similar *might* work, but there is supposedly a limit of 32767 bytes/record which is smaller than several of the file sizes. Everything is appropriately `#ifdef'd. The last change was to change the hardwired exit codes to macros which are `#defined' inside an `#ifdef VMS' block. Once this was done, the files lispref, and lispref-* were all created and running info on them was fine except for the node Index. For some reason, any attempt to get to the node `Index' Wrong type argument: integer-or-marker-p, Top^?1009 The cure here was to run makeinfo with the +no-split flag set and then manually run M-x Info-tagify and M-x Info-split. makeinfo did issue an error message (which, from looking at the texinfo source, I assume was deliberate), lispref.texinfo:107: Node `Top''s Next field not pointed back to. intro.texinfo:171: This node (`Introduction') is the one with the bad `Prev'. TEXINDEX.C: I also found texindex.c needed some changes to compile under gcc 1.36. I am sending the context diff's for this as well. Most of the changes were to avoid a name conflict with a global symbol in the VAXCRTL shareable image library. For some reason, there is a symbol called `LINES'. I have no idea what it is, but I changed all references in texindex.c from `lines' to `nlines'. I added #ifdef's to define `noshare' to an empty string if VAX11C is not defined, and instead `#include <perror.h>'. This keeps gcc happy. Inside the function bzero, one of the arguments is declared register and then has its address taken. I changed this to keep the value as register, but copy the value to another variable before calling LIB$MOVC5. Perhaps VAXC lets you get away with taking the address of a register variable, but gcc won't, so I don't.
Technical Details
Message-ID:
<9005111645.AA08641@uhura.cc.rochester.edu>Path:
arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!tut.cis.ohio-state.edu!UHURA.CC.ROCHESTER.EDU!rbr4Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fb2f1,859d6ec0060c35de,start X-Google-Attributes: gidfb2f1,public X-Google-ArrivalTime: 1990-05-11 10:48:55 PST Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!tut.cis.ohio-state.edu!UHURA.CC.ROCHESTER.EDU!rbr4 From: rbr4@UHURA.CC.ROCHESTER.EDU (Roland Roberts) Newsgroups: gnu.emacs.bug Subject: Problems with lispref on VMS (v5.2-1) and GNU C (v1.36) Message-ID: <9005111645.AA08641@uhura.cc.rochester.edu> Date: 11 May 90 16:45:27 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 59 Posted: Fri May 11 17:45:27 1990