From owner-freebsd-current Mon Jan 17 18: 6:35 2000 Delivered-To: freebsd-current@freebsd.org Received: from extremis.demon.co.uk (extremis.demon.co.uk [194.222.242.30]) by hub.freebsd.org (Postfix) with SMTP id 6C545150BF for ; Mon, 17 Jan 2000 18:06:25 -0800 (PST) (envelope-from gjvc@extremis.demon.co.uk) Received: (qmail 8507 invoked by uid 1010); 18 Jan 2000 02:06:34 -0000 Date: Tue, 18 Jan 2000 02:06:34 +0000 From: George Cox To: freebsd-current@freebsd.org Subject: Compiling XFree86 3.9.17 Message-ID: <20000118020634.A8092@extremis.demon.co.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="BOKacYhQ+x31HxR3" User-Agent: Mutt/1.1.1i X-Operating-System: FreeBSD 4.0-CURRENT (i386) Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii I've been reworking the FreeBSD configuration file for XFree86 3.9.17. At the moment, I've only done Intel. (Don't despair Alpha folks -- I'll get myself a Compaq testdrive account :-)) This file is a drop-in replacement for 'xc/config/cf/FreeBSD.cf' You don't need any 'xc/config/cf/host.def' file. Just cp and make World [1] It works on both 4.0-CURRENT and 3.4-STABLE. [2] If you could give it a go, and correct me on any incorrect definitions/switches/whatever I'd be very grateful. Sadly, there's a couple of gotchas. First, it won't actually compile _everything_ using the base compiler (gcc 2.95.2). This is due to a bug in this version of gcc. To fix this, remove the -O2 option in the Makefile of the affected module. Secondly, XF86Setup is broken in this version of XFree86. No XF86Setup will be built by this config file. More news on that as it happens. best; gjvc -- "Readers who only want to see algorithms that are already packaged in a plug-in way, using a trendy language, should buy other people's books." -- D. E. Knuth [1] The XFree86 world, that is, obviously. [2] If anyone has a 2.2.8 machine, and can do a test build, please do! :-) --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="FreeBSD-gjvc.cf" XCOMM platform: $TOG: FreeBSD.cf /main/21 1997/10/05 20:42:34 kaleb $ XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.85 1999/05/22 08:39:55 dawes Exp $ XCOMM gjvc: $Id: FreeBSD-gjvc.cf,v 1.8 2000/01/18 01:37:35 gjvc Exp $ /* ---- [ WHAT THIS IS ] -------------------------------------------------- This file is intended to replace the xc/config/cf/FreeBSD.cf file in the XFree86 3.9.17 distribution. You don't need a host.def file or need to make any changes to the stock XFree86 3.9.17 tarballs [but see below] This will let you build XFree86 on 3.4-STABLE and 4.0-CURRENT. I don't know if it works on earlier FreeBSD 3.x versions. To use this file, copy it right over the current 'config/cf/FreeBSD.cf' file and type 'make World' in the 'xc' directory. cp xc/config/cf/FreeBSD.cf xc/config/cf/FreeBSD.cf.original cp FreeBSD-gjvc.cf xc/config/cf/FreeBSD.cf cd xc && make World I've also futzed around with #defines, C library features and goodness knows what else, so if you have any opinions on what follows I'd be grateful. ---- [ KNOWN PROBLEMS ] ----------------------------------------------- 3.4-STABLE : No reported problems yet -- be first! :-) 4.0-CURRENT : Using the system compiler (2.95.2), compilation of the files xc/programs/Xserver/Xext/xf86vmode.c xc/programs/Xserver/Xext/extmod/xf86vmode.c will fail with a 'Unable to generate reloads' error. This is a bug in gcc, and has been fixed in the latest gcc snapshot. Either disable all optimisation for the compilation of just that file, or use a later version of the compiler. (Hint: do a make World, and then a make all -- the compilation will stop here and you can remove the '-O2' flag in the Makefile.) XFree86 3.9.17 : the directory xc/doc/ is strangely missing an Imakefile, and consquently the build fails on it. I got my documents by using the documents directory of XFree86 3.9.16. XF86Setup is currently broken in 3.9.17 so no attemp is made to build it. Anyway, please give it a go, and let me know how you get on. All feedback is appreciated. :-) ---- [ GIVING FEEDBACK ] --------------------------------------------- Please include the output of 'uname -a', and 'gcc --version' when reporting problems. best; George Cox */ /* OPERATING SYSTEM IDENTIFICATION */ #ifndef OSName #define OSName DefaultOSName #endif #ifndef OSMajorVersion #define OSMajorVersion DefaultOSMajorVersion #endif #ifndef OSMinorVersion #define OSMinorVersion DefaultOSMinorVersion #endif #ifndef OSTeenyVersion #define OSTeenyVersion DefaultOSTeenyVersion #endif #ifndef OSVendor #define OSVendor The FreeBSD Project #endif /* BINARY FORMAT */ #define UseElfFormat YES #define OSBinaryFormat ELF #define BuildAoutLibraries YES /* COMPILER */ #define GccUsesGas YES #define GnuCpp YES #define HasBsdMake YES #define HasCplusplus YES #define HasGcc YES #define HasGcc2 YES #define HasGcc2ForCplusplus YES #define HasGnuMake NO #define UseGas YES /* COMPILER COMMANDS */ #define CcCmd gcc #define CppCmd /usr/bin/cpp #define DefaultCCOptions -O2 -pipe -ansi -pedantic -Dasm=__asm GccWarningOptions #define InstallCmd /usr/bin/install #define MkdirHierCmd mkdir -p #define PreProcessCmd /usr/bin/cpp #define RawCppCmd /usr/bin/cpp #define StandardCppDefines /**/ #define StandardCppOptions /**/ /* DEFINES -- ASSEMBLER */ #define AsmElfDefines -D__ELF__ #define AsmDefines -DUSE_GAS AsmElfDefines #define GccGasOption -DGCCUSESGAS #define DefaultGcc2i386Opt /**/ #define OptimizedCDebugFlags DefaultGcc2i386Opt /* C LANGUAGE CONVENTIONS */ #define NeedConstPrototypes YES #define NeedFunctionPrototypes YES #define NeedNestedPrototypes YES #define NeedVarargsPrototypes YES #define NeedWidePrototypes NO /* C LIBRARY FEATURES */ #define HasBSD44Sockets YES #define HasBsearch YES #define HasDlopen YES #define HasMTRRSupport YES #define HasMkstemp YES #define HasNdbm YES #define HasPoll NO /* _poll is not in the a.out libc -- how silly! */ #define HasPutenv YES #define HasSetUserContext YES #define HasShm YES #define HasSnprintf YES #define HasSockets YES #define HasStrcasecmp YES #define HasStreams NO #define HasUsableFileMmap YES #define HasVFork YES #define HasVoidSignalReturn YES #define Malloc0ReturnsNull NO #define SetTtyGroup YES #define HasWChar32 YES /* SYSTEM LIBRARIES */ #define ExtraLibraries -lxpg4 #define GnuMallocLibrary -lgnumalloc #define HasSharedLibraries YES #define HasLibCrypt YES #define HasZlib YES #define HasNCurses YES #define DlLibrary -rdynamic /* no -ldl */ #define NCursesLibName -lcurses #define UseGnuMalloc NO #define StaticLibrary(libpath,libname) -Wl,-Bstatic Concat(-L,libpath) Concat(-l,libname) -Wl,-Bdynamic /* MISCELLANEOUS DEFINES */ #define ExtraFilesToClean *.core #define UseRgbTxt YES #define DoLoadableServer YES #define AvoidNullMakeCommand YES #define CompressAllFonts YES #define ForceNormalLib YES #define StripInstalledPrograms YES /* DEFINES -- X */ #define StandardDefines -DCSRG_BASED -D_BSD_SOURCE -D_XOPEN_SOURCE #define ServerOSDefines XFree86ServerOSDefines -DDDXTIME #define ServerExtraDefines GccGasOption XFree86ServerDefines #define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC /* PATHS */ #define DefaultUserPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR) #define DefaultSystemPath /bin:/usr/bin:/sbin:/usr/sbin:$(BINDIR) #define SystemManDirectory /usr/share/man #define PreIncDir DefaultGccIncludeDir /* DOCUMENT TYPESETTING TOOLS */ #define EqnCmd eqn -Tps #define NeqnCmd neqn -Tlatin1 #define NroffCmd groff -Tlatin1 #define TroffCmd groff -Tps /* XFREE86 BUILD SYSTEM INCLUDE FILES */ #include #include /* Good luck, Commander */ /* ...TRANSMISSION ENDS... */ --BOKacYhQ+x31HxR3-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message