home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 August - Disc 2 / chip_20018102_hu.iso / linux / X-4.1.0 / doc / readme.isc < prev    next >
Text File  |  2001-06-27  |  18KB  |  491 lines

  1.                           Information for ISC Users
  2.  
  3.                               Michael Rohleder
  4.  
  5.                                 05 March 2000
  6.  
  7. 1.  X11R6/XFree86 on Interactive Unix
  8.  
  9. This document provides some additional information about compiling and using
  10. X11R6 and XFree86 on your Interactive Unix, also referred to as ISC.
  11.  
  12. If you have any suggestions, comments, fixes or ideas regarding X11R6/XFree86
  13. on Interactive Unix, send e-mail to
  14.  
  15. <michael.rohleder@stadt-frankfurt.de>
  16.  
  17. Bug Reports should be sent to
  18.  
  19. <XFree86@XFree86.Org>
  20.  
  21. Questions or anything else should be posted to the NewsGroup
  22.  
  23. comp.windows.x.i386unix
  24.  
  25. There is currently no support for shared Libraries so it will be filespace
  26. consuming if you want to build X11-clients with X11R6. Best you mix X11R6
  27. Server with X11R5 and X11R4 clients. And only compile clients who need the
  28. new facilities provided in the X11R6 Libraries against them.
  29.  
  30.      Please note:
  31.             XFree86 Version 4.0 will be the last version which is known
  32.             to compile on Interactive Unix.
  33.             I've only tested this version on Interactive Unix, Version 4.1mu.
  34.  
  35. 2.  Things needed for compiling the sources
  36.  
  37.       gcc
  38.             Use the highest number for x you found.  Fresco will only build
  39.             2.6.3 and later.  I'd tried gcc Version 2.5.8, 2.6.0, 2.6.2,
  40.             2.6.3 and 2.7.2.  Current: 2.8.1
  41.  
  42.             Since 2.6.3 the current source tree should be able to compile
  43.             with a little bit more Optimization:
  44.              #define DefaultCDebugFlags -O3 -fomit-frame-pointer inside
  45.             xf86site.def to overwrite the default -O2.
  46.  
  47.             With 2.7.x you must specify #define UsePosix               YES
  48.             inside xf86site.def.  This is necessary to build the sources suc-
  49.             cessfully.  Versions prior to 2.7.0 could define it, but don't
  50.             need it for a clean build.
  51.  
  52.             With 2.8.1 on Pentium CPU we can use special 586 Optimization.
  53.             Try the following define inside your host.def.
  54.  
  55.                            #define DefaultGcc2i386Opt    \
  56.                                      -O2 -march=pentium -mpentium -Wall -Wno-implicit-int \
  57.                                      -fno-strength-reduce
  58.                            /* default with 2.8.1, so not really needed
  59.                               -malign-loops=2 -malign-jumps=2 -malign-functions=2
  60.                            */
  61.  
  62.       libg++-2.x.x
  63.             The needed g++ Libraries for use with g++ 2.x.x. As this is only
  64.             necessary for Fresco, it isn't needed anymore since X11R6.1.
  65.  
  66.       binutils
  67.             You could use the assembler and linker the assembler is most pre-
  68.             ferred,and the linker is needed at least if you want to link
  69.             libFresco.a within a Program.  Don't use strip and ar/ranlib, the
  70.             first generates buggy binaries when stripping (at least on my
  71.             machines) and the last requires the use of ranlib after creating
  72.             an archive, this is not configured.  Current: 2.8.1.0.15 (Used:
  73.             as, ld, ar, strip)
  74.  
  75.       gnu-malloc
  76.             Due to better memory usage we should use GNU's malloc library on
  77.             systems where possible.
  78.  
  79.             Enable #define UseGnuMalloc YES inside xf86site.def or within the
  80.             Linkkit site.def.
  81.  
  82.             Enable and set #define GnuMallocLibrary to your needs, if it
  83.             isn't like the default -L/usr/local/lib -lgmalloc.
  84.  
  85.       inline-math (optional)
  86.             This is the "original" inline-math package available at your
  87.             favorite Linux Mirror.
  88.  
  89.             Use #define UseInlineMath YES inside host.def to enable it.
  90.             Please note the changes section what else to do, to use this
  91.             package.
  92.  
  93. 3.  Changes to the System Header Files
  94.  
  95. You have to change some of the standard header files supplied with your ver-
  96. sion of Interactive. You also need to change some of the include files in the
  97. gcc-lib/include directory.
  98.  
  99. Let us say the gcc-files are in directory
  100.  
  101. /usr/local/lib/gcc-lib/i[345]86-isc[34].[0-9]/2.6.x
  102.  
  103. referred to as "gcc-lib"
  104.  
  105. 3.1  /usr/include/sys/limits.h
  106.  
  107. and gcc-lib/include/sys/limits.h
  108.  
  109.                #ifndef OPEN_MAX
  110.                #ifdef ISC
  111.                #define OPEN_MAX        256
  112.                #else
  113.                #define OPEN_MAX        20
  114.                #endif
  115.                #endif
  116.  
  117. OPEN_MAX had to be increased to prevent Xlib Errors (max no. of clients
  118. reached).
  119.  
  120. 3.2  /usr/include/sys/ioctl.h
  121.  
  122. surrounded by
  123.  
  124.              #ifndef _IOCTL_H
  125.              #define _IOCTL_H
  126.              ...
  127.              #endif
  128.  
  129. to prevent multiple includes.
  130.  
  131. 3.3  /usr/include/errno.h
  132.  
  133. (and the corresponding gcc-include-file) add
  134.  
  135.              #include <net/errno.h>
  136.  
  137. because of EWOULDBLOCK undefined in several places regarding lbx.  Surround
  138. /usr/include/net/errno.h with
  139.  
  140.              #ifndef _NET_ERRNO_H
  141.              #define _NET_ERRNO_H
  142.              ...
  143.              #endif
  144.  
  145. to prevent multiple includes were <net/errno.h> is explicit included from the
  146. sources.
  147.  
  148. 3.4  /usr/include/rpc/types.h
  149.  
  150. copy this file to gcc-lib/include/rpc/types.h and change the declaration of
  151. malloc() to
  152.  
  153.               #if !defined(__cplusplus)
  154.               extern char *malloc();
  155.               #endif
  156.  
  157. Note that this is only necessary if you want to build Fresco
  158.  
  159. 3.5  /usr/include/sys/un.h
  160.  
  161. such a file does not exist on Interactive. You may like to generate it, if
  162. you don't like a warning from depend. It isn't needed to compile the sources
  163. successfully.
  164.  
  165. You could use the following to produce it:
  166.  
  167.               #ifndef X_NO_SYS_UN
  168.               struct  sockaddr_un {
  169.                       short   sun_family;             /* AF_UNIX */
  170.                       char    sun_path[108];          /* path name (gag) */
  171.               };
  172.               #endif
  173.  
  174. 3.6  /usr/include/math.h
  175.  
  176. To use the Inline Math package you have to change your existing math.h.
  177. Please note, the way I include the new Header file, is different than sug-
  178. gested in inline-math's README.
  179.  
  180. Please add the following at the bottom of math.h, before the last #endif
  181.  
  182.      #if defined(UseInlineMath)
  183.  
  184.      /* Needed on ISC __CONCAT, PI */
  185.      #ifndef __CONCAT
  186.      /*
  187.       * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
  188.       * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
  189.       * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
  190.       * in between its arguments.  __CONCAT can also concatenate double-quoted
  191.       * strings produced by the __STRING macro, but this only works with ANSI C.
  192.       */
  193.      #if defined(__STDC__) || defined(__cplusplus)
  194.      #define __CONCAT(x,y)   x ## y
  195.      #define __STRING(x)     #x
  196.      #else   /* !(__STDC__ || __cplusplus) */
  197.      #define __CONCAT(x,y)   x/**/y
  198.      #define __STRING(x)     "x"
  199.      #endif  /* !(__STDC__ || __cplusplus) */
  200.      #endif
  201.  
  202.      #ifndef PI
  203.      #define PI M_PI
  204.      #endif
  205.  
  206.      #include "/usr/local/include/i386/__math.h"
  207.      #endif
  208.  
  209. 4.  make World
  210.  
  211.      BOOTSTRAPCFLAGS="-DISC [-DISC30 | -DISC40] -DSYSV [-Di386]"
  212.  
  213.       -DISC -DISC30
  214.             these two defines are necessary to build the release I don't know
  215.             if the build will succeed for ISC versions prior than 3.x
  216.  
  217.       -DISC40
  218.             are only for getting the ISC version and therefore set the Has-
  219.             SymLinks to Yes ('cause symbolic linking were only supported from
  220.             Version 4.x using the S5L Filesystem)
  221.  
  222.             If you could use long filenames, you could enable the installa-
  223.             tion of expanded Manual Pages by including
  224.              #define ExpandManNames  YES inside xf86site.def.
  225.  
  226.             A build on ISC 4.x only needs -DISC40 defined in the BOOT-
  227.             STRAPCFLAGS ( -DISC30 will be included automatically ).
  228.  
  229.             Note: due to some incompatibilities between ISC 4.0 and 4.1, the
  230.             default is to build for ISC4.0, even if you build on 4.1.  If you
  231.             want to build only for 4.1 you should set  #define IscCompileVer-
  232.             sion       410  inside your host.def.
  233.  
  234.             (the fchmod function isn't available on 4.0, so it won't compile,
  235.             and binaries from 4.1 won't run cause of the unsupported System
  236.             call The libraries build for 4.1 couldn't be used with 4.0 Sys-
  237.             tems, due to some functions not available on 4.0)
  238.  
  239.       -DSYSV [-Di386]
  240.             standard defines for SystemV Release3 on x86 platform.  You don't
  241.             need to explicitly define -Di386 because this is pre-defined in
  242.             /lib/cpp.
  243.  
  244. 5.  linear Addressing
  245.  
  246.    o Compiling ...
  247.  
  248.      You need the mmap-2.2.3 driver installed on your system.  If you don't
  249.      have the mmap-2.2.3 driver installed, you could use the driver source in
  250.      the file
  251.  
  252.           xc/programs/Xserver/hw/xfree86/etc/mmapSVR3.shar
  253.  
  254.      or
  255.  
  256.           /usr/X11R6/lib/X11/etc/mmapSVR3.shar
  257.  
  258.      Build and install the driver as instructed. You'll need the file
  259.      /usr/include/sys/mmap.h for compiling the X11R6/XFree86 source tree,
  260.      with linear addressing enabled.
  261.  
  262.           The new loadable X Server is not tested to work without linear addressing.
  263.  
  264.    o Using ...
  265.  
  266.      To use the linear address-mapping of the framebuffer you need the mmap
  267.      Driver by Thomas Wolfram (Version 2.2.3) installed in your Kernel.  If
  268.      you have installed it, most servers will use linear addressing by
  269.      default.  Others may require setting the
  270.  
  271.           Option "linear"
  272.  
  273.      in your XF86Config.   Check the appropriate manual pages for details.
  274.      Maybe you need also the MemBase specified in XF86Config. Please refer to
  275.      the appropriate README of your Card/Server, for How to use...
  276.  
  277.      I could only test these cards on Interactive UNIX
  278.  
  279.         o Spea/V7 Vega - clgd5428 - VLB - (old)
  280.  
  281.           with 32MB MainMemory installed I couldn't use it.  My tests with
  282.           different mappings into the address space results in no Graphics
  283.           displayed or a spontaneous reboot.
  284.  
  285.         o ATI GUP      - mach32   - VLB - (old)
  286.  
  287.           with 32MB MainMemory installed I could map the CardMemory at Mem-
  288.           Base 0x07c00000. I could work with all clients until I try to acti-
  289.           vate a Motif 1.1.1 InputField inside a Motif Client like Mosaic-2.4
  290.           or xplan. This results in a crash of the XServer.
  291.  
  292.                           !!! You could work around this !!!
  293.  
  294.           Expand your .Xdefaults with
  295.  
  296.                           *blinkRate:             0
  297.                           *cursorPositionVisible: false
  298.  
  299.           This bug seems to be fixed since 3.1.2, and therefore the
  300.           workaround is not needed anymore.
  301.  
  302.         o ELSA Winner 2000PRO/X Revision G
  303.  
  304.           if you experience a Problem with this Card you could try to use the
  305.           older Chipset Driver instead "newmmio".
  306.  
  307.           If you declare
  308.  
  309.                           Chipset "mmio_928"
  310.  
  311.           inside your XF86Config, it may be alright again.
  312.  
  313.           With the current XF86_S3 I don't encounter any problem.
  314.  
  315.         o Diamond FireGL 1000
  316.  
  317.                        3Dlabs GLINT Permedia rev 1
  318.                        3Dlabs GLINT Delta rev 1
  319.  
  320. 6.  Multibuffer Extension
  321.  
  322. This is an obsolete Extension. Anyway, if you want to include this Extension
  323. inside your build, you have to add: #define BuildMultibuffer        YES
  324. inside xf86site.def Please note, this Extension should be disabled when
  325. building the Loader Server.
  326.  
  327. 7.  Default Definitions
  328.  
  329. These are default options defined inside isc.cf.  You can redefine them
  330. inside host.def.
  331.  
  332. Here is a sample host.def (the one I use for XFree86 4.0):
  333.  
  334.      /* Disable the use of /var/X11  and /etc/X11 */
  335.      #define HasVarDirectory         NO
  336.      #define UseEtcX11               NO
  337.  
  338.      /* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
  339.      /* should be available on your favorite linux ftp                */
  340.      # define UseInlineMath        YES
  341.  
  342.      /* Use cbrt from liboptm.a (Interactive icc Compiler) */
  343.      # define HasCbrt         YES
  344.  
  345.      /* Use GNUs MallocLibrary (and the Location for the Lib)             */
  346.      # define UseGnuMalloc         YES
  347.  
  348.      /* Expand Manual Pages (needs S5L)                                   */
  349.      # define ExpandManNames       YES
  350.  
  351.      /* if you have groff or the TextProcessingWorkbench - don't preformat*/
  352.      # define FormattedManPages      NO
  353.  
  354.      /* XF86Setup Util */
  355.      # define HasTk           YES
  356.      # define HasTcl               YES
  357.  
  358.      /* use doctools */
  359.      # define HasSgmlFmt             YES
  360.      # define BuildAllDocs            YES
  361.      # define BuildLinuxDocText       NO
  362.      # define BuildLinuxDocPS         NO
  363.  
  364.      #define GlxBuiltInMesa         YES
  365.  
  366. 8.  Installation
  367.  
  368. After your make World BOOTSTRAPCFLAGS="... succeed,
  369.  
  370.      make install
  371.  
  372. to install in /usr/X11R6. Make sure you have enough space, and /usr/X11R6
  373. exists either as a directory or a symlink to another directory maybe in
  374. another filesystem.
  375.  
  376.      make install.man
  377.  
  378. to install the compressed nroff versions of the manual pages into
  379. /usr/X11R6/man. This directory will be generated if it doesn't exist.
  380.  
  381.             You should tune the Kernel using the command-file
  382.  
  383.             /usr/X11R6/lib/X11/etc/xf86install
  384.  
  385.             This will increase the available pseudo devices,
  386.             some Tunable Parameters and install some files
  387.             to use inside sysadm. You could also install
  388.             some additional Fonts and Terminal files.
  389.  
  390. This is now a menu driven config tool for XFree86 on IUS For the first setup
  391. you should go from 1 to x step by step.  Here is its main screen
  392.  
  393.      X11R6 XFree86 Version (version)
  394.      -------------------------------------------------------------------------------
  395.  
  396.                          Check dependencies:                   1
  397.                          Make XFree86 Label                    2
  398.                          Install Remove script                 3
  399.                          Setup node.d + sdevice.d Files        4
  400.                          Tune Kernel Variables                 5
  401.                          Tune PseudoTerminals                  6
  402.                          Install xterm terminal entries        7
  403.                          Install VGA font                      8
  404.                          Save current KernelConfig             9
  405.  
  406.                          Exit                                  X
  407.  
  408.      Your Choice [1-9]?<enter>:
  409.  
  410. You also should increase MAXUMEM to its maximum, else programs may die with:
  411.  
  412.      X Error of failed request:  BadAlloc (insufficient resources for operation)
  413.        Major opcode of failed request:  53 (X_CreatePixmap)
  414.        Serial number of failed request:  37791
  415.        Current serial number in output stream:  37822
  416.        Widget hierarchy of resource: unknown
  417.  
  418. You could do this automatically with menu entry no. 5.
  419.  
  420. 9.  Using ...
  421.  
  422.    o Xprt:
  423.  
  424.      The new Xprint Server is configured to use lpr as its print helper so
  425.      you have to install and configure lpr to use Xprt.
  426.  
  427.    o xpcterm:
  428.  
  429.      if you want to get the German 'Umlaut' inside your ISC X11R4 client xpc-
  430.      term when you are using the ega/vga font. Set up the user's .Xdefaults
  431.      to contain:
  432.  
  433.                    XEga*AT386.Translations: #override \
  434.                              Shift<Key>odiaeresis: string(0x99) \n\
  435.                                   <Key>odiaeresis: string(0x94) \n\
  436.                              Shift<Key>adiaeresis: string(0x8e) \n\
  437.                                   <Key>adiaeresis: string(0x84) \n\
  438.                              Shift<Key>udiaeresis: string(0x9a) \n\
  439.                                   <Key>udiaeresis: string(0x81) \n\
  440.                              Shift<Key>ssharp: string(0x3f) \n\
  441.                               Meta<Key>ssharp: string(0x5c)  \n\
  442.                                   <Key>ssharp: string(0xe1)
  443.  
  444.      The only disadvantage is that you have to use Alt instead of AltGr to
  445.      get the \ Backslash (on a German Keyboard)
  446.  
  447.      You have to call your xpcterm with the option -name XEga -fn ega
  448.  
  449.    o Switching between X11R5 and X11R6 configuration
  450.  
  451.      to compile X11-Clients as either R6 or R5 clients, should be as easy as
  452.      you only switch the PATH components so that either /usr/X11R6/bin/xmkmf
  453.      or /usr/X386/bin/xmkmf would make the new Makefile.
  454.  
  455.    o ISC Streams Pipes
  456.  
  457.      The old path to the pipes on ISC's R4 /tmp/.X11-unix has changed to
  458.      /dev/X/ISCCONN. For compatibility reasons on ISC, the pipes in the new
  459.      directory will be linked to a file inside the old.  This will normally
  460.      be a hard link, so it can't go across filesystems. On ISC Version 4.x
  461.      this is now allowed. But you should use the new S5L on both filesystems.
  462.      ISC30 systems should take care that the two directories are on the same
  463.      FS. Else if you are using a ISC40 compiled binary, the Server could
  464.      maybe abort due to a SIGSYS.  We tried to catch this signal, so if it
  465.      dumps please send me a note.
  466.  
  467.    o Warnings you may see:
  468.  
  469.         o Since 3.2A, you could see a warning from pre X11R6.3 clients.
  470.  
  471.                           Warning: Unable to load any usable fontset
  472.  
  473.           The case are the new gzipped fonts, but the Warning isn't serious.
  474.  
  475.         o If you start a server you may see the following message:
  476.  
  477.                        _XSERVTransOpen: transport open failed for named/enigma:0
  478.                        _XSERVTransMakeAllCOTSServerListeners: failed to open listener for named
  479.  
  480.           This message either isn't critical. Interactive doesn't support
  481.           this kind of connection.
  482.  
  483. 10.  Acknowledgements
  484.  
  485. All thanks should go to the members of the XFree86 Team for their great work
  486. and the X Consortium for their Public Release of X11R6, as to all who con-
  487. tribute to this excellent piece of free software.
  488.  
  489.      Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
  490.  
  491.