[comp.sys.ibm.pc.rt] CTeX 2.93 under IBM AOS 4.3 Release 2?

ehrlich@shire.cs.psu.edu (03/01/89)

Has anyone gotten CTeX 2.93 (i.e. the latest from Washington) running
on an IBM RT/PC under AOS 4.3 Release 2 (Sept or Dec ship)?  We have
tried using the two different versions of the C compiler that are
included with AOS 4.3 but still can not get triptex to run correctly.
Does anyone have any suggestions or pointers as too what we might try
next?  Thanks in advance.

Dan Ehrlich <ehrlich@shire.cs.psu.edu> | Disclaimer: The opinions expressed are
The Pennsylvania State University      | my own, and should not be attributed
Department of Computer Science         | to anyone else, living or dead.
University Park, PA   16802            |
Dan Ehrlich <ehrlich@shire.cs.psu.edu> | Disclaimer: The opinions expressed are
The Pennsylvania State University      | my own, and should not be attributed
Department of Computer Science         | to anyone else, living or dead.
University Park, PA   16802            |

ehrlich@shire.cs.psu.edu (Daniel R. Ehrlich) (03/02/89)

First I would like to thank all of the people who took the time to
respond to my plea for help.  After mulling over all of the
suggestions and comments I went back and reread the tex82/README.  In
there are mentioned some hints about unsigned char types and others
useful info.  All that I ended up needing to do was to add a few
`pragma' statements to tell MetaWare High-C to behave a bit more like
the portable C compiler.  Attached is a context diff for site.h that
actually got TeX to compile.  It even passes TripTeX now.  One other
point I failed to mention in my original message was that BIGTEX.PATCH
had been applied to ctex.ch and that `glueratio' was changed from a
float to a double in site.h.  An oversight on my part.

The next problem is to try and figure out why undump doesn't work
properly on the RT.  Undump on the RT is setting the data segment
length to zero so it's not saving any of the preloaded format
information.  Anyone have any thoughts on this one?

Thanks again for all the help.

*** site.h.orig	Tue Feb  7 15:01:38 1989
--- site.h	Wed Mar  1 09:16:01 1989
***************
*** 5,14 ****
   */
  
  /*
   * Default editor command string: %d expands to the line number where
   * TeX or Metafont found an error, and %s expands to the name of the file.
   */
! #define	EDITOR		"/usr/local/gemacs +%d %s"
  
  /*
   * If the type "int" is at least 32 bits (including a sign bit), this
--- 5,28 ----
   */
  
  /*
+  * Totally gross and disgusting hack to get around High-C on an IBM RT
+  * treating `char' differently than most other compilers.  Along with
+  * assorted other things.
+  */
+ 
+ #if	defined(__HIGHC__) && defined(ibm032)
+ pragma	Off(Char_default_unsigned);
+ pragma	On(Char_is_rep);
+ pragma	On(Parm_warnings);
+ pragma	On(Pointers_compatible);
+ pragma	On(Pointers_compatible_with_ints);
+ #endif	/* defined(__HIGHC__) */
+ 
+ /*
   * Default editor command string: %d expands to the line number where
   * TeX or Metafont found an error, and %s expands to the name of the file.
   */
! #define	EDITOR		"/usr/ucb/vi +%d %s"
  
  /*
   * If the type "int" is at least 32 bits (including a sign bit), this
***************
*** 39,45 ****
   * type available.  ANSI C compilers may need to use "signed char".
   * If you don't have signed characters, then use "short".
   */
! typedef	char schar;
  
  /*
   * The type "integer" must be a signed integer capable of holding at
--- 53,59 ----
   * type available.  ANSI C compilers may need to use "signed char".
   * If you don't have signed characters, then use "short".
   */
! typedef	signed char schar;
  
  /*
   * The type "integer" must be a signed integer capable of holding at
***************
*** 55,75 ****
   * The type glueratio should be a floating-point type which meets
   * the following restriction: sizeof(glueratio) <= sizeof(integer).
   */
! typedef float glueratio;
  
  /* Real can by any convenient floating-point type */
  typedef double real;
  
  /* TeX search paths: This is what we use at UCI. */
! #define	TEXINPUTS	".:/usr/local/lib/tex/inputs"
! #define	TEXFONTS	".:/usr/local/lib/tex/fonts/"
! #define	TEXPOOL		".:/usr/local/lib/tex"
! #define	TEXFORMATS	".:/usr/local/lib/tex"
  
  /* Metafont search paths */
! #define	MFINPUTS	".:/usr/local/lib/mf/inputs"
! #define	MFBASES		".:/usr/local/lib/mf/bases"
! #define	MFPOOL		".:/usr/local/lib/mf"
  
  /*
   * Metafont Window Support: More than one may be defined.  At UCI,
--- 69,89 ----
   * The type glueratio should be a floating-point type which meets
   * the following restriction: sizeof(glueratio) <= sizeof(integer).
   */
! typedef double glueratio;
  
  /* Real can by any convenient floating-point type */
  typedef double real;
  
  /* TeX search paths: This is what we use at UCI. */
! #define	TEXINPUTS	".:/usr/new/lib/tex/inputs"
! #define	TEXFONTS	".:/usr/new/lib/tex/fonts/"
! #define	TEXPOOL		".:/usr/new/lib/tex"
! #define	TEXFORMATS	".:/usr/new/lib/tex/inputs"
  
  /* Metafont search paths */
! #define	MFINPUTS	".:/usr/new/lib/mf/inputs"
! #define	MFBASES		".:/usr/new/lib/mf/bases"
! #define	MFPOOL		".:/usr/new/lib/mf"
  
  /*
   * Metafont Window Support: More than one may be defined.  At UCI,
Dan Ehrlich <ehrlich@shire.cs.psu.edu> | Disclaimer: The opinions expressed are
The Pennsylvania State University      | my own, and should not be attributed
Department of Computer Science         | to anyone else, living or dead.
University Park, PA   16802            |

papa@pollux.usc.edu (Marco Papa) (03/03/89)

In article <4330@psuvax1.cs.psu.edu> ehrlich@shire.cs.psu.edu (Daniel R. Ehrlich) writes:
>
>The next problem is to try and figure out why undump doesn't work
>properly on the RT.  Undump on the RT is setting the data segment
>length to zero so it's not saving any of the preloaded format
>information.  Anyone have any thoughts on this one?

Interesting.  When I did the RT port of CTeX for Tomas Rokicki way back,
undump was one of the few files needing changes.  This is due to the different
format of core.  If you want to know the details, compare the man pages
of core(5) for 4.3/RT and the VAX BSD version.

The fix is simple.  You need to add an extra line to position at the right 
place. This is the correct RT version of read_u for 4.3/RT:

read_u(core)
FILE *core;
{
#ifdef ibm032
	(void) fseek(core, (long) (UPAGES * NBPG - sizeof u), 0);
#endif
	if (fread(&u, sizeof u, 1, core) != 1)
	{
		perror("Couldn't read user structure from core file");
		exit(1);
	}
}

Enjoy.

-- Marco Papa 'Doc'
USC Advanced Computing Support Center
and Felsina Software
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
uucp:...!pollux!papa       BIX:papa       ARPAnet:pollux!papa@oberon.usc.edu
 "There's Alpha, Beta, Gamma and Diga!" -- Leo Schwab [quoting Rick Unland]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=