  Information for ISC Users
  Michael Rohleder
  24 January 1995

  1.  X11R6/XFree86[TM] on Interactive Unix


  This document provides some additional information about compiling and
  using X11R6 and XFree86 on your Interactive Unix, also referred to as
  ISC.

  If you have any suggestions, comments, fixes or ideas regarding
  X11R6/XFree86 on Interactive Unix, send e-mail to

  michael.rohleder%iktffm.uucp@Germany.EU.net

  Bug Reports should be sent to

  XFree86@XFree86.Org

  Questions or anything else should be posted to the NewsGroup

  comp.windows.x.i386unix


  There is currently no support for shared Libraries so it will be
  filespace consuming if you want to build X11-clients with X11R6. Best
  you mix X11R6 Server with X11R5 and X11R4 clients. And only compile
  clients who need the new facilities provided in the X11R6 Libraries
  against them.


  2.  Things needed for compiling the sources



      gcc-2.6.x
        Use the highest number for x you found.  Fresco will only build
        2.6.3 and later.

        I'd tried gcc Version 2.5.8, 2.6.0, 2.6.2 and 2.6.3.

        2.6.2 and 2.6.3 had some problems compiling 3.1.  2.6.3 builds
        since 3.1.0A (beta) without problem.

      libg++-2.6.x
        The needed g++ Libraries for use with g++ 2.6.x

      binutils-2.5.2
        You could use the assembler and linker the assembler is most
        preferred,and the linker is needed at least if you want to link
        libFresco.a within a Program.  Don't use strip and ar/ranlib,
        the first generates buggy binaries when stripping (at least on
        my machines) and the last requires the use of ranlib after
        creating an archive, this is not configured.



  3.  Changes to the System Header Files


  You have to change some of the standard header files supplied with
  your version of Interactive. You also need to change some of the
  include files in the gcc-lib/include directory.

  Let us say the gcc-files are in directory
  /usr/local/lib/gcc-lib/i[345]86-isc[34].[0-9]/2.6.x

  referred to as "gcc-lib"


  3.1.  /usr/include/sys/limits.h

  and gcc-lib/include/sys/limits.h

            #ifndef OPEN_MAX
            #ifdef ISC
            #define OPEN_MAX        256
            #else
            #define OPEN_MAX        20
            #endif
            #endif


  OPEN_MAX had to be increased to prevent Xlib Errors (max no. of
  clients reached).


  3.2.  /usr/include/sys/ioctl.h

  surrounded by
          #ifndef _IOCTL_H
          #define _IOCTL_H
          ...
          #endif


  to prevent multiple includes.


  3.3.  /usr/include/errno.h

  (and the corresponding gcc-include-file) add
          #include <net/errno.h>


  because of EWOULDBLOCK undefined in several places regarding lbx.
  Surround /usr/include/net/errno.h with

          #ifndef _NET_ERRNO_H
          #define _NET_ERRNO_H
          ...
          #endif



  to prevent multiple includes were <net/errno.h> is explicit included
  from the sources.


  3.4.  /usr/include/rpc/types.h

  copy this file to gcc-lib/include/rpc/types.h and change the
  declaration of malloc() to

           #if !defined(__cplusplus)
           extern char *malloc();
           #endif



  Note that this is only necessary if you want to build Fresco
  4.  make World

  ______________________________________________________________________
  BOOTSTRAPCFLAGS="-DISC [-DISC30 | -DISC40] -DSYSV [-Di386]"
  ______________________________________________________________________



     -DISC -DISC30
        these two defines are necessary to build the release I don't
        know if the build will succeed for ISC versions prior than 3.x


     -DISC40
        are only for getting the ISC version and therefore set the
        HasSymLinks to Yes ('cause symbolic linking were only supported
        from Version 4.x using the S5L Filesystem)

        A build on ISC 4.x only needs -DISC40 defined in the
        BOOTSRAPCFLAGS -- the -DISC30 will be included automatically.


     -DSYSV [-Di386]
        standard defines for SystemV Release3 on x86 platform.  You
        don't need to explicitly define -Di386 because this is pre-
        defined in /lib/cpp.


  ______________________________________________________________________
    You maybe got some warnings from makedepend regarding that it can
    not find the file <sys/mman.h>.
    Don't worry about it, the actual compile will be alright.
    If you don't want to see this, generate an empty file sys/mman.h
    under /usr/include
  ______________________________________________________________________



  5.  linear Addressing



     o  Compiling ...

        If you want to include support for linear addressing into the
        server binaries, you have to define
        #define HasSVR3mmapDrv          YES

     in xf86site.def.  This is necessary to get the correct setup to be
     defined for the build.

     You need the mmap-2.2.3 driver installed on your system.  If you
     don't have the mmap-2.2.3 driver installed, you could use the
     driver source in the file
     xc/programs/Xserver/hw/xfree86/etc/mmapSVR3.shar

     Build and install the driver as instructed. You'll need the file
     /usr/include/sys/mmap.h for compiling the X11R6/XFree86 source
     tree, with linear addressing enabled.


     o  Using ...


        To use the linear address-mapping of the framebuffer you need
        the mmap Driver by Thomas Wolfram (Version 2.2.3) installed in
        your Kernel.  If you have installed it, most servers will use
        linear addressing by default.  Others may require setting the
        Option "linear"

     in your XF86Config.   Check the appropriate manual pages for
     details.  Maybe you need also the MemBase specified in XF86Config.
     Please refer to the appropriate README of your Card/Server, for How
     to use...  Note that the P9000 server will not work at all unless
     linear addressing is available.

     I could only test two cards against the linear addressing.

        +  Spea/V7 Vega - clgd5428 - VLB

           with 32MB MainMemory installed I couldn't use it.  My tests
           with different mappings into the address space results in no
           Graphics displayed or a spontaneous reboot.


        +  ATI GUP      - mach32   - VLB

           with 32MB MainMemory installed I could map the CardMemory at
           MemBase 0x06400000   100MB. I could work with all clients
           until I try to activate a Motif 1.1.1 InputField inside a
           Motif Client like Mosaic-2.4 or xplan. This results in a
           crash of the XServer.



  6.  Fresco



     o  Compiling ...

        If you want to include the build of the Fresco library, you have
        to setup
        #define BuildFresco             YES

     in either xf86site.def (just uncomment the appropriate definition.


     o  Using ...


        To use the library you need the gnu-ld installed.  The standard
        ISC ld couldn't link libFresco.a inside a program.

        I could test the Lib. with the sample Fresco Application fdraw,
        which compiled without problem.  It seems that Fresco
        applications has some problems running with display :0.0 on
        Interactive. (I test it only against standard XLOCAL transport
        mechanism, this could maybe improved by using another XLOCAL
        configuration).  The fdraw window is closed with the following
        message:
        XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"

     As a workaround you could specify local-machinename:0 to the -dis-
     play Argument when starting the Fresco application. On TCP/IP
     transport you got a workable Fresco App.






  7.  Installation


  After your make World BOOTSTRAPCFLAGS="... succeed,
  make install

  to install in /usr/X11R6. Make sure you have enough space, and
  /usr/X11R6 exists either as a directory or a symlink to another direc-
  tory maybe in another filesystem.
  make install.man

  to install the compressed nroff versions of the manual pages into
  /usr/X11R6/man. This directory will by generated if it doesn't exist.
  make install.linkkit

  to install the server binary LinkKit into /usr/X11R6/lib/Server.

  ______________________________________________________________________
         You could tune the Kernel using the command-file

         /usr/X11R6/lib/X11/etc/xf86install

         This will increase the available pseudo devices,
         some Tunable Parameters and install some files
         to use inside sysadm. You could also install
         some additional Fonts and Terminal files.
  ______________________________________________________________________



  8.  Using ...



     o  Keyboard:

        You don't need any modmap-File to get your keyboard working with
        any iso-8859-1 Font. Simply enable


        +  LeftAlt  Meta

        +  RightAlt ModeShift

        +  RightCtl Compose

        in your XF86Config - Section "Keyboard"


     o  xpcterm:

        if you want to get the German 'Umlaut' inside your ISC X11R4
        client xpcterm when you are using the ega/vga font. Set up the
        user's .Xdefaults to contain:
                 XEga*AT386.Translations: #override \
                           Shift<Key>odiaeresis: string(0x99) \n\
                                <Key>odiaeresis: string(0x94) \n\
                           Shift<Key>adiaeresis: string(0x8e) \n\
                                <Key>adiaeresis: string(0x84) \n\
                           Shift<Key>udiaeresis: string(0x9a) \n\
                                <Key>udiaeresis: string(0x81) \n\
                           Shift<Key>ssharp: string(0x3f) \n\
                            Meta<Key>ssharp: string(0x5c)  \n\
                                <Key>ssharp: string(0xe1)


     The only disadvantage is that you have to use Alt instead of AltGr
     to get the \ Backslash (on a German Keyboard)

     You have to call your xpcterm with the option -name XEga -fn ega


     o  Switching between X11R5 and X11R6 configuration

        to compile X11-Clients as either R6 or R5 clients, should be as
        easy as you only switch the PATH components so that either
        /usr/X11R6/bin/xmkmf or /usr/X386/bin/xmkmf would make the new
        Makefile.



  9.  Acknowledgements


  All thanks should go to the members of the XFree86 Team for their
  great work and the X Consortium for their Public Release of X11R6, as
  to all who contribute to this excellent piece of free software.


  Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.3 1995/01/27 04:51:55 dawes Exp $











































$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.7 1995/01/27 10:30:40 dawes Exp $
$XConsortium: README.isc,v 1.5 95/01/27 15:58:21 kaleb Exp $
