home *** CD-ROM | disk | FTP | other *** search
- Information for ISC Users
-
- Michael Rohleder
-
- 05 March 2000
-
- 1. X11R6/XFree86 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@stadt-frankfurt.de>
-
- 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.
-
- Please note:
- XFree86 Version 4.0 will be the last version which is known
- to compile on Interactive Unix.
- I've only tested this version on Interactive Unix, Version 4.1mu.
-
- 2. Things needed for compiling the sources
-
- gcc
- 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,
- 2.6.3 and 2.7.2. Current: 2.8.1
-
- Since 2.6.3 the current source tree should be able to compile
- with a little bit more Optimization:
- #define DefaultCDebugFlags -O3 -fomit-frame-pointer inside
- xf86site.def to overwrite the default -O2.
-
- With 2.7.x you must specify #define UsePosix YES
- inside xf86site.def. This is necessary to build the sources suc-
- cessfully. Versions prior to 2.7.0 could define it, but don't
- need it for a clean build.
-
- With 2.8.1 on Pentium CPU we can use special 586 Optimization.
- Try the following define inside your host.def.
-
- #define DefaultGcc2i386Opt \
- -O2 -march=pentium -mpentium -Wall -Wno-implicit-int \
- -fno-strength-reduce
- /* default with 2.8.1, so not really needed
- -malign-loops=2 -malign-jumps=2 -malign-functions=2
- */
-
- libg++-2.x.x
- The needed g++ Libraries for use with g++ 2.x.x. As this is only
- necessary for Fresco, it isn't needed anymore since X11R6.1.
-
- binutils
- You could use the assembler and linker the assembler is most pre-
- ferred,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. Current: 2.8.1.0.15 (Used:
- as, ld, ar, strip)
-
- gnu-malloc
- Due to better memory usage we should use GNU's malloc library on
- systems where possible.
-
- Enable #define UseGnuMalloc YES inside xf86site.def or within the
- Linkkit site.def.
-
- Enable and set #define GnuMallocLibrary to your needs, if it
- isn't like the default -L/usr/local/lib -lgmalloc.
-
- inline-math (optional)
- This is the "original" inline-math package available at your
- favorite Linux Mirror.
-
- Use #define UseInlineMath YES inside host.def to enable it.
- Please note the changes section what else to do, to use this
- package.
-
- 3. Changes to the System Header Files
-
- You have to change some of the standard header files supplied with your ver-
- sion 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
-
- 3.5 /usr/include/sys/un.h
-
- such a file does not exist on Interactive. You may like to generate it, if
- you don't like a warning from depend. It isn't needed to compile the sources
- successfully.
-
- You could use the following to produce it:
-
- #ifndef X_NO_SYS_UN
- struct sockaddr_un {
- short sun_family; /* AF_UNIX */
- char sun_path[108]; /* path name (gag) */
- };
- #endif
-
- 3.6 /usr/include/math.h
-
- To use the Inline Math package you have to change your existing math.h.
- Please note, the way I include the new Header file, is different than sug-
- gested in inline-math's README.
-
- Please add the following at the bottom of math.h, before the last #endif
-
- #if defined(UseInlineMath)
-
- /* Needed on ISC __CONCAT, PI */
- #ifndef __CONCAT
- /*
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
- * in between its arguments. __CONCAT can also concatenate double-quoted
- * strings produced by the __STRING macro, but this only works with ANSI C.
- */
- #if defined(__STDC__) || defined(__cplusplus)
- #define __CONCAT(x,y) x ## y
- #define __STRING(x) #x
- #else /* !(__STDC__ || __cplusplus) */
- #define __CONCAT(x,y) x/**/y
- #define __STRING(x) "x"
- #endif /* !(__STDC__ || __cplusplus) */
- #endif
-
- #ifndef PI
- #define PI M_PI
- #endif
-
- #include "/usr/local/include/i386/__math.h"
- #endif
-
- 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 Has-
- SymLinks to Yes ('cause symbolic linking were only supported from
- Version 4.x using the S5L Filesystem)
-
- If you could use long filenames, you could enable the installa-
- tion of expanded Manual Pages by including
- #define ExpandManNames YES inside xf86site.def.
-
- A build on ISC 4.x only needs -DISC40 defined in the BOOT-
- STRAPCFLAGS ( -DISC30 will be included automatically ).
-
- Note: due to some incompatibilities between ISC 4.0 and 4.1, the
- default is to build for ISC4.0, even if you build on 4.1. If you
- want to build only for 4.1 you should set #define IscCompileVer-
- sion 410 inside your host.def.
-
- (the fchmod function isn't available on 4.0, so it won't compile,
- and binaries from 4.1 won't run cause of the unsupported System
- call The libraries build for 4.1 couldn't be used with 4.0 Sys-
- tems, due to some functions not available on 4.0)
-
- -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.
-
- 5. linear Addressing
-
- o Compiling ...
-
- 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
-
- or
-
- /usr/X11R6/lib/X11/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.
-
- The new loadable X Server is not tested to work without linear addressing.
-
- 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...
-
- I could only test these cards on Interactive UNIX
-
- o Spea/V7 Vega - clgd5428 - VLB - (old)
-
- 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.
-
- o ATI GUP - mach32 - VLB - (old)
-
- with 32MB MainMemory installed I could map the CardMemory at Mem-
- Base 0x07c00000. I could work with all clients until I try to acti-
- vate a Motif 1.1.1 InputField inside a Motif Client like Mosaic-2.4
- or xplan. This results in a crash of the XServer.
-
- !!! You could work around this !!!
-
- Expand your .Xdefaults with
-
- *blinkRate: 0
- *cursorPositionVisible: false
-
- This bug seems to be fixed since 3.1.2, and therefore the
- workaround is not needed anymore.
-
- o ELSA Winner 2000PRO/X Revision G
-
- if you experience a Problem with this Card you could try to use the
- older Chipset Driver instead "newmmio".
-
- If you declare
-
- Chipset "mmio_928"
-
- inside your XF86Config, it may be alright again.
-
- With the current XF86_S3 I don't encounter any problem.
-
- o Diamond FireGL 1000
-
- 3Dlabs GLINT Permedia rev 1
- 3Dlabs GLINT Delta rev 1
-
- 6. Multibuffer Extension
-
- This is an obsolete Extension. Anyway, if you want to include this Extension
- inside your build, you have to add: #define BuildMultibuffer YES
- inside xf86site.def Please note, this Extension should be disabled when
- building the Loader Server.
-
- 7. Default Definitions
-
- These are default options defined inside isc.cf. You can redefine them
- inside host.def.
-
- Here is a sample host.def (the one I use for XFree86 4.0):
-
- /* Disable the use of /var/X11 and /etc/X11 */
- #define HasVarDirectory NO
- #define UseEtcX11 NO
-
- /* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
- /* should be available on your favorite linux ftp */
- # define UseInlineMath YES
-
- /* Use cbrt from liboptm.a (Interactive icc Compiler) */
- # define HasCbrt YES
-
- /* Use GNUs MallocLibrary (and the Location for the Lib) */
- # define UseGnuMalloc YES
-
- /* Expand Manual Pages (needs S5L) */
- # define ExpandManNames YES
-
- /* if you have groff or the TextProcessingWorkbench - don't preformat*/
- # define FormattedManPages NO
-
- /* XF86Setup Util */
- # define HasTk YES
- # define HasTcl YES
-
- /* use doctools */
- # define HasSgmlFmt YES
- # define BuildAllDocs YES
- # define BuildLinuxDocText NO
- # define BuildLinuxDocPS NO
-
- #define GlxBuiltInMesa YES
-
- 8. 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 directory maybe in
- another filesystem.
-
- make install.man
-
- to install the compressed nroff versions of the manual pages into
- /usr/X11R6/man. This directory will be generated if it doesn't exist.
-
- You should 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.
-
- This is now a menu driven config tool for XFree86 on IUS For the first setup
- you should go from 1 to x step by step. Here is its main screen
-
- X11R6 XFree86 Version (version)
- -------------------------------------------------------------------------------
-
- Check dependencies: 1
- Make XFree86 Label 2
- Install Remove script 3
- Setup node.d + sdevice.d Files 4
- Tune Kernel Variables 5
- Tune PseudoTerminals 6
- Install xterm terminal entries 7
- Install VGA font 8
- Save current KernelConfig 9
-
- Exit X
-
- Your Choice [1-9]?<enter>:
-
- You also should increase MAXUMEM to its maximum, else programs may die with:
-
- X Error of failed request: BadAlloc (insufficient resources for operation)
- Major opcode of failed request: 53 (X_CreatePixmap)
- Serial number of failed request: 37791
- Current serial number in output stream: 37822
- Widget hierarchy of resource: unknown
-
- You could do this automatically with menu entry no. 5.
-
- 9. Using ...
-
- o Xprt:
-
- The new Xprint Server is configured to use lpr as its print helper so
- you have to install and configure lpr to use Xprt.
-
- o xpcterm:
-
- if you want to get the German 'Umlaut' inside your ISC X11R4 client xpc-
- term 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.
-
- o ISC Streams Pipes
-
- The old path to the pipes on ISC's R4 /tmp/.X11-unix has changed to
- /dev/X/ISCCONN. For compatibility reasons on ISC, the pipes in the new
- directory will be linked to a file inside the old. This will normally
- be a hard link, so it can't go across filesystems. On ISC Version 4.x
- this is now allowed. But you should use the new S5L on both filesystems.
- ISC30 systems should take care that the two directories are on the same
- FS. Else if you are using a ISC40 compiled binary, the Server could
- maybe abort due to a SIGSYS. We tried to catch this signal, so if it
- dumps please send me a note.
-
- o Warnings you may see:
-
- o Since 3.2A, you could see a warning from pre X11R6.3 clients.
-
- Warning: Unable to load any usable fontset
-
- The case are the new gzipped fonts, but the Warning isn't serious.
-
- o If you start a server you may see the following message:
-
- _XSERVTransOpen: transport open failed for named/enigma:0
- _XSERVTransMakeAllCOTSServerListeners: failed to open listener for named
-
- This message either isn't critical. Interactive doesn't support
- this kind of connection.
-
- 10. 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 con-
- tribute to this excellent piece of free software.
-
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
-
-