------------------------------------------------------------------------------- Xsun core dumps now and again xdm note: Running Xsun with xdm has a funny peculiar problem. The keyboard driver will erroneously report an unknown keyboard type within 7,500 milliseconds (am I off by a factor of ten?) Normally this isn't a problem if you're running via xinit. xdm, on the other hand, can (and does) terminate and re fork-and-exec the server fast enough to encounter this. The poor server, thinks it's got an unknown keyboard type, aborts and leaves spurious core files. Fixed in the new Multi Screen Xsun replacement /R5contrib/R5.Xsun.multi-screen.tar.Z on ftp.x.org ------------------------------------------------------------------------------- Xsun with not Font loading Code -- Font Servers only From: simon@lia.di.epfl.ch (Simon Leinen) Subject: Re: R5 server without font code? Summary: Yes it works, but do you really want to do it? gnb@duke.bby.oz.au (Gregory N. Bond) writes: > Is it possible to build an R5 server without any of the font > rendering code, relying instead only on the font server? Yes, and it even works (if your font server is really reliable). A patch is included at the end of this message. Is this desirable? I use this setup on two workstations right now. Wonder when users will start to complain (eventually they will because some X clients try to add a directory to the font path and will fail -- xtex is an example. Also, the font server crashes every three weeks or so :-( In other words, I cannot really recommend it except when you really need to save the space and you really trust your font server. How much space would it save (more relevant in an X terminal context)? (It seems that simply commenting out the call to FontFileRegisterFpeFunctions() from dix/dixfonts.c would do it, but I can't recompile just at the moment to check....) Inspired by your posting, I tried exactly this. These are the results for a Sun 4 using the builtin compiler with -O4 optimization: root@liasun8# size Xsun XsunNoFonts XsunMono XsunMonoNoFonts text data bss dec hex filename 1015776 65536 40896 1122208 111fa0 Xsun 819168 40960 17208 877336 d6318 XsunNoFonts 819168 65536 37296 922000 e1190 XsunMono 622560 40960 13600 677120 a5500 XsunMonoNoFonts So the size of text+data+bss is reduced by 27% for Xsun and 36% for XsunMono. None of the servers contain the PEX-SI. The original servers contain bitmap, Speedo and Type 1 rendering code. Patch level is 10. -- Simon Leinen. Ecole Polytechnique Federale de Lausanne Now if you *really* want to try this, here is the patch. It will not change anything unless you add this to your site.def: #define BuildServerWithoutFontRenderers YES In this case, you also want something like: #define DefaultFontPath tcp/fontserver.your.domain:7000 Where fontserver.your.domain:7000 should be replaced by the hostname:port pair of your *RELIABLE* font server. *** 1.1 1992/03/19 15:14:04 --- config/Project.tmpl 1992/03/19 15:15:10 *************** *** 171,176 **** --- 171,179 ---- #ifndef DefaultRGBDatabase #define DefaultRGBDatabase $(LIBDIR)/rgb #endif + #ifndef BuildServerWithoutRenderers + #define BuildServerWithoutRenderers NO + #endif #ifndef FontCompilerFlags #define FontCompilerFlags -t #endif *** 1.1 1992/03/19 13:43:50 --- server/dix/Imakefile 1992/03/19 15:03:42 *************** *** 40,45 **** --- 40,51 ---- SITE_DISPLAY_CLASS = -DCOMPILEDDISPLAYCLASS=\"$(DEFAULTDISPLAYCLASS)\" #endif + #if BuildServerWithoutFontRenderers + SITE_FONT_INIT = -DNOFONTRENDERERS + #else + SITE_FONT_INIT = + #endif + SITE_DEFINES = $(SITE_FONT_PATH) $(SITE_RGB_DB) $(SITE_DISPLAY_CLASS) *************** *** 49,54 **** --- 55,61 ---- NormalLintTarget($(SRCS)) SpecialObjectRule(globals.o, $(ICONFIGFILES), $(SITE_DEFINES)) + SpecialObjectRule(dixfonts.o, $(ICONFIGFILES), $(SITE_FONT_INIT)) #if HasSaberC saber_src: *** 1.1 1992/03/19 13:52:11 --- server/dix/dixfonts.c 1992/03/19 15:06:24 *************** *** 1187,1193 **** --- 1187,1195 ---- InitFonts () { patternCache = MakeFontPatternCache(); + #ifndef NOFONTRENDERERS FontFileRegisterFpeFunctions(); + #endif fs_register_fpe_functions(); } -------------------------------------------------------------------------------