$NetBSD: patch-ab,v 1.8 2001/09/22 18:07:15 mycroft Exp $ Sync this with what we shipped with NetBSD-1.5 with the exception that HasXdmAuth is set to NO (since vnc doesn't have the Wraphelp.c file). This fixes problems on pmax, alpha, and maybe others. --- Xvnc/config/cf/NetBSD.cf.orig Sat Jul 26 06:30:39 1997 +++ Xvnc/config/cf/NetBSD.cf Sat Sep 22 17:59:51 2001 @@ -2,9 +2,37 @@ -XCOMM platform: $XFree86: xc/config/cf/NetBSD.cf,v 3.49.2.9 1997/07/26 06:30:39 dawes Exp $ +XCOMM platform: $XFree86: xc/config/cf/NetBSD.cf,v 3.49.2.13 1999/10/12 17:18:20 hohndel Exp $ + +XCOMM +XCOMM This file currently contains support for: +XCOMM +XCOMM NetBSD/i386 client/server +XCOMM NetBSD/sparc client/server +XCOMM NetBSD/sparc64 client/server +XCOMM NetBSD/sun3 client/server +XCOMM NetBSD/hp300 client +XCOMM NetBSD/mac68k client/server +XCOMM NetBSD/pmax client/server +XCOMM NetBSD/amiga client/server +XCOMM NetBSD/alpha client/server +XCOMM NetBSD/arm32 client/server +XCOMM NetBSD/atari client/server +XCOMM NetBSD/vax client/server +XCOMM NetBSD/pc532 client +XCOMM NetBSD/x68k client/server +XCOMM NetBSD/macppc client/server +XCOMM NetBSD/hpcmips client/server +XCOMM NetBSD/next68k client +XCOMM NetBSD/prep client +XCOMM NetBSD/news68k client +XCOMM NetBSD/cobalt client +XCOMM NetBSD/sgimips client +XCOMM NetBSD/luna68k client +XCOMM + #ifndef OSName #define OSName DefaultOSName OSBinaryType #endif @@ -14,24 +42,34 @@ #ifndef OSMinorVersion #define OSMinorVersion DefaultOSMinorVersion #endif +/* XXX this does not deal with patches, but, patches should not affect it */ +/* 1 = A, 2 = B, 3 = C, 4 = D, 5 = E, ... */ #ifndef OSTeenyVersion #define OSTeenyVersion DefaultOSTeenyVersion #endif #ifndef OSVendor -#define OSVendor /**/ +#define OSVendor The NetBSD Foundation, Inc. #endif XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) /* + * Enable support for "xdmauth" authentification. + */ +#ifndef HasXdmAuth +#define HasXdmAuth NO +#endif + +/* * C library features */ #if ((OSMajorVersion > 1) || \ (OSMajorVersion == 1 && OSMinorVersion > 2) || \ (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1)) -# define HasPoll YES +# define HasPoll YES #endif + #define HasNdbm YES #define HasPutenv YES #define HasSnprintf YES @@ -61,7 +99,20 @@ (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion < 2)) # define HasDlsymBug YES #endif -/* Mkstemp is there since 1.2 (at least) */ + +/* + * The USB HID library came after 1.4 + */ +#if ((OSMajorVersion == 1 && OSMinorVersion > 4) || \ + (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion > 8)) +# define HasUsbLib YES +#endif + + +#if OSMajorVersion >= 1 +# define LexCmd lex -l +#endif + #if (!(OSMajorVersion == 0 || \ (OSMajorVersion == 1 && OSMinorVersion < 2))) #define HasMkstemp YES @@ -85,6 +136,7 @@ #define NeedVarargsPrototypes YES #define NeedWidePrototypes NO +#define HasMktemp NO #define MkdirHierCmd mkdir -p #define CppCmd /usr/libexec/cpp @@ -96,13 +148,15 @@ #define CcCmd gcc #if defined(UseInstalled) && (!defined(XF86LinkKit) || !XF86LinkKit) #define DefaultCCOptions /**/ +#elif defined(arm32Architecture) +#define DefaultCCOptions -ansi -Dasm=__asm -fsigned-char -fomit-frame-pointer #else #define DefaultCCOptions -ansi -Dasm=__asm #endif #define GccGasOption -DGCCUSESGAS #define AsmDefines -DUSE_GAS - + /* UseElfFormat defaults to YES if __ELF__ set */ #ifndef UseElfFormat # ifdef __ELF__ @@ -114,60 +168,234 @@ #endif /* + * Make sure the binaries know where to look for the shared libaries. + * NOTE: This is done in bsdLib.rules for ELF libraries! + */ +#if (OSMajorVersion == 1 && OSMinorVersion >= 2) || OSMajorVersion > 1 +# if !defined(UseElfFormat) || UseElfFormat == NO +# define ExtraLoadFlags -R$(USRLIBDIR) +# endif +#endif + +/* * Dynamic loading supported starting in 1.0 on a.out platforms, * and on all ELF platforms. - * - * XXX May not be correct on NetBSD/pmax (ELF, but might not have - * working shared libs). */ #if ((OSMajorVersion > 0) && \ !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \ UseElfFormat # ifndef BuildDynamicLoading -# define BuildDynamicLoading YES +# define BuildDynamicLoading YES +# endif +# ifndef ForceNormalLib +# define ForceNormalLib YES # endif #endif #if UseElfFormat -#define DlLibrary -rdynamic /* no -ldl yet */ +# define DlLibrary -rdynamic /* no -ldl yet */ #else -#define DlLibrary /**/ +# define DlLibrary /**/ #endif +/* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */ #ifdef i386Architecture +# ifndef DefaultGcc2i386Opt +# if OSMajorVersion > 1 || (OSMajorVersion == 1 && OSMinorVersion > 2) + /* The GCC strength-reduce bug is fixed for NetBSD 1.3 and later */ +# define DefaultGcc2i386Opt -O2 +# endif +# endif # define OptimizedCDebugFlags DefaultGcc2i386Opt # if OSMajorVersion < 1 # define ServerOSDefines XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF # else # define ServerOSDefines XFree86ServerOSDefines -DDDXTIME # endif -# if OSMajorVersion == 1 && OSMinorVersion >= 1 || OSMajorVersion >= 2 -# define ServerExtraSysLibs -li386 DlLibrary -# endif -#else -# define OptimizedCDebugFlags -O2 -# if defined(SparcArchitecture) || defined(AlphaArchitecture) -# define ServerOSDefines -DDDXOSINIT -# else -# define ServerOSDefines /**/ -# endif # if BuildDynamicLoading -# define ServerExtraSysLibs DlLibrary +# define ServerExtraSysLibs -li386 DlLibrary # else # define ServerExtraSysLibs /**/ # endif -#endif -#ifdef i386Architecture # define ServerExtraDefines GccGasOption XFree86ServerDefines # ifndef XFree86ConsoleDefines # define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT # endif #else -# if defined(AlphaArchitecture) -# define ServerExtraDefines GccGasOption -D_XSERVER64 +# if defined(m68kArchitecture) && OSMajorVersion == 1 && OSMinorVersion <= 3 +# define OptimizedCDebugFlags -O # else -# define ServerExtraDefines GccGasOption +# define OptimizedCDebugFlags -O2 +# endif +#endif + +/* + * On mips, all libs are compiled with ABIcalls, not just sharedlibs. + * Disable MIPS specific code which was not used and tested. + */ +#if defined(MipsArchitecture) +# define SeparateSharedCompile NO +# undef MipsArchitecture +#endif + +#if defined(SparcArchitecture) +# define ServerOSDefines -DDDXOSINIT +# if defined(Sparc64Architecture) +# define ServerExtraDefines GccGasOption -D_XSERVER64 +# else +# define ServerExtraDefines GccGasOption +# endif +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(Sun3Architecture) +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D__sun3__ +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(hp300Architecture) +# define BuildServer NO /* XXX */ +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(mac68kArchitecture) +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D__mac68k__ +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(AlphaArchitecture) +# define BuildServer YES +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D_XSERVER64 +# define PexDynamicModule NO +# define XieDynamicModule NO +# undef OptimizedCDebugFlags /* XXX ??? */ +# define OptimizedCDebugFlags /* XXX ??? */ +#endif + +#if defined(amigaArchitecture) +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D__amiga__ +# define PexDynamicModule NO +# define XieDynamicModule NO +# define XserverNeedsSetUID YES +#endif + +#if defined(arm32Architecture) +# define BuildServer YES +# define ServerOSDefines -DDDXOSINIT -DDDXTIME +# define ServerExtraDefines GccGasOption XFree86ServerDefines +# ifndef XFree86ConsoleDefines +# define XFree86ConsoleDefines -DPCCONS_SUPPORT # endif +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(atariArchitecture) +# define BuildServer YES +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption XFree86ServerDefines -D__atari__ +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(VaxArchitecture) +# define BuildServer NO +# define ServerExtraDefines GccGasOption +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(pc532Architecture) +# define BuildServer NO +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(x68kArchitecture) +# define BuildServer YES +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D__x68k__ +# define PexDynamicModule NO +# define XieDynamicModule NO +# define XserverNeedsSetUID YES +#endif + +#if defined(macppcArchitecture) +# define ServerOSDefines -DDDXOSINIT +# define ServerExtraDefines GccGasOption -D__macppc__ +# define PexDynamicModule NO +# define XieDynamicModule NO +# define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT +#endif + +#if defined(pmaxArchitecture) +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(hpcmipsArchitecture) +# define ServerOSDefines -DDDXOSINIT +# define BuildServer YES +# define PexDynamicModule NO +# define XieDynamicModule NO +# define ServerExtraDefines -DSTATIC_COLOR +# define XserverNeedsSetUID YES +#endif + +#if defined(next68kArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(prepArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(news68kArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(cobaltArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(sgimipsArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#if defined(luna68kArchitecture) +# define BuildServer NO +# define PexDynamicModule NO +# define XieDynamicModule NO +#endif + +#ifndef OptimizedCDebugFlags +# define OptimizedCDebugFlags -O2 +#endif + +#ifndef PositionIndependentCFlags +# define PositionIndependentCFlags -fPIC #endif #define StandardDefines -DCSRG_BASED @@ -177,7 +405,18 @@ #define ExtraLibraries /**/ #endif #ifndef UseGnuMalloc +/* + * There is no way to map 1.4J correctly to OS*Version, so 'J' is mapped + * to OSTeenyVersion == 10. This should be save since there will never a + * release for 1.4.10. + */ +# if ((OSMajorVersion > 1) || \ + (OSMajorVersion == 1 && OSMinorVersion > 4) || \ + (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion >= 10)) +# define UseGnuMalloc NO +# else # define UseGnuMalloc YES +# endif #endif #ifndef GnuMallocLibrary #define GnuMallocLibrary -lgnumalloc @@ -191,6 +430,13 @@ #endif #endif +/* 1.4R and later has setusercontext() */ +# if ((OSMajorVersion > 1) || \ + (OSMajorVersion == 1 && OSMinorVersion > 4) || \ + (OSMajorVersion == 1 && OSMinorVersion == 4 && OSTeenyVersion >= 18)) +#define HasSetUserContext YES +#endif + #define AdmDir /var/log /* @@ -200,8 +446,17 @@ #define StripInstalledPrograms YES #define CompressAllFonts YES #define GzipFontCompression YES -#define DefaultUserPath /bin:/usr/bin:/usr/local/bin:$(BINDIR) -#define DefaultSystemPath /sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR) +#define DefaultUserPath /usr/bin:/bin:/usr/pkg/bin:$(BINDIR):/usr/local/bin +#define DefaultSystemPath /usr/bin:/bin:/usr/sbin:/sbin:/usr/pkg/bin:/usr/pkg/sbin:$(BINDIR):/usr/local/bin:/usr/local/sbin + +#define InstPgmFlags -s -m 0555 -o root -g wheel +#define InstBinFlags -m 0555 -o root -g wheel +#define InstUidFlags -m 4511 -o root -g wheel +#define InstLibFlags -m 0444 -o root -g wheel +#define InstIncFlags -m 0444 -o root -g wheel +#define InstManFlags -m 0444 -o root -g wheel +#define InstDatFlags -m 0444 -o root -g wheel +#define InstKmemFlags -m 2555 -o root -g kmem #ifdef InstallCmd # undef InstallCmd @@ -212,11 +467,23 @@ # define ExtraFilesToClean *.core #endif +#ifdef arm32Architecture +/* + * NetBSD's default .SUFFIXES target places .s at a higher priority + * than .c. This breaks architectures which use the .c versions of + * various files in the XFree86 server tree for which there are also + * .s versions. Default to the basic .SUFFIXES list specified in + * SUSv2 (without the SCCS-related suffixes) plus .cxx for Motif.rules. + */ +.SUFFIXES: +.SUFFIXES: .o .c .y .l .a .sh .f .cxx +#endif + /* * Documentation formatting */ -#define NeqnCmd neqn -Tlatin1 -#define NroffCmd nroff -Tlatin1 +#define NeqnCmd neqn -Tascii +#define NroffCmd nroff -Tascii #define EqnCmd eqn -Tps #define TroffCmd groff -Tps @@ -264,7 +531,10 @@ -@if [ -f file.0 ]; \ @@\ then \ @@\ $(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\ - fi + fi @@\ + @@\ +clean:: @@\ + $(RM) file.0 #define InstallGenManPageLong(file,destdir,dest,suffix) @@\ InstallManPageLong(file,destdir,dest) @@ -281,7 +551,16 @@ done #define InstallMultipleMan(list,dest) @@\ - InstallMultipleManSuffix(list,dest,man) + MakeDir($(DESTDIR)dest) @@\ + case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ + for i in list; do \ @@\ + (set -x; \ @@\ + MNAME=`echo $$i | cut -f1 -d.`; \ @@\ + cat $$i | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.man; \ @@\ + $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$$$.man $(DESTDIR)dest/$${MNAME}.0; \ @@\ + $(RM) /tmp/$$$$.man); \ @@\ + done + #define InstallManPageAliases(file,destdir,aliases) @@\ install.man:: @@\ @@ -299,13 +578,10 @@ /* * Shared libraries supported starting in 1.0 on a.out platforms, * and on all ELF platforms. - * - * XXX May not be correct on NetBSD/pmax (ELF, but might not have - * working shared libs). */ #if ((OSMajorVersion > 0) && \ - !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \ - UseElfFormat + !defined(AlphaArchitecture) && !defined(MipsArchitecture)) \ + || UseElfFormat # ifndef HasSharedLibraries # define HasSharedLibraries YES # endif @@ -327,51 +603,179 @@ #include #endif /* HasSharedLibraries */ -#ifdef i386Architecture +#if defined(i386Architecture) || defined(arm32Architecture) || \ + defined(atariArchitecture) # include -#endif /* - * Definitions for the SUN server on NetBSD/sparc + * XXX The DynamicModuleTarget macro in xf86.rules does NOT work properly + * XXX on ELF systems. This macro should be moved into bsdLib.rules, since + * XXX it depends on how shlibs are built on that platform. + * XXX + * XXX The following overrides DynamicModuleTarget so it should work on + * XXX ELF and a.out. + */ +/* + * DynamicModuleTarget - build a module to be dynamically loaded + */ +# undef DynamicModuleTarget +# define DynamicModuleTarget(module,modlist) @@\ +AllTarget(module) @@\ + @@\ +module: modlist @@\ + RemoveFile($@) @@\ + $(CC) -nostdlib -o $@ -Wl,-Bshareable -R$(USRLIBDIR) modlist @@\ + @@\ +clean:: @@\ + RemoveFile(module) + +#endif /* i386Architecture || arm32Architecture || atariArchitecture */ + +/* + * NetBSD always uses the XFree86 contrib distribution. */ -#ifdef SparcArchitecture +#undef XF86Contrib +#define XF86Contrib YES + +/* + * Definitions for the SUN server on NetBSD/sparc or NetBSD/sun3 + */ +#if defined(SparcArchitecture) || defined(Sun3Architecture) #ifndef Xsun24Server +#if defined(SparcArchitecture) +#define Xsun24Server YES +#else #define Xsun24Server NO #endif +#endif #ifndef XsunServer #define XsunServer YES #endif #ifndef XsunMonoServer #define XsunMonoServer YES #endif -#ifndef BuildScreenSaverLibrary -#define BuildScreenSaverLibrary YES #endif + /* - * XFree86 uses its own (more portable) database routines to speed up - * the RGB database lookups - * However, if you want to use ndbm anyway, you can set that to NO in - * site.def + * Definitions for the NetBSD/mac68k server. */ -#ifndef UseRgbTxt -#define UseRgbTxt YES +#ifdef mac68kArchitecture +# ifndef Xmac68kServer +# define Xmac68kServer YES +# endif #endif + +/* + * Definitions for the NetBSD/vax server. + */ +#ifdef VaxArchitecture +# define XvaxMonoServer YES +# if HasGcc +# define BuildPexExt XvaxMonoServer +# else +# define BuildPex NO /* compiler runs out of table space */ +# define BuildXInputLib NO /* compiler runs out of table space */ +# endif +# define HasSaberC NO +# define UnalignedReferencesAllowed YES /* if arbitrary deref is okay */ #endif /* - * Definition for compiling on MIPS machines + * Definitions for the NetBSD/amiga server. */ -#ifdef MipsArchitecture -#define PositionIndependentCFlags -#define SharedLibraryLoadFlags -x -shared --whole-archive -soname `echo $@ | -sed 's/\.[0-9]*$$//'` -#define SharedXtReqs $(XLIBONLY) $(SMLIB) $(ICELIB) -#define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB) $(EXTENSIONLIB) +#ifdef amigaArchitecture +# ifndef XamigaCCmono +# define XamigaCCmono NO +# endif +# ifndef XamigaCCcolor +# define XamigaCCcolor YES +# endif +# ifndef XamigaGfxCardSupport +# define XamigaGfxCardSupport YES +# endif +# ifndef XamigaRetinaZ3Support +# define XamigaRetinaZ3Support YES +# endif +# ifndef XamigaCl5426Server +# define XamigaCl5426Server YES +# endif +# ifndef XamigaCV64Support +# define XamigaCV64Support YES +# endif +/* + * You need XamigaGfxCardSupport if you enable XamigaCl5426Server, + * XamigaRetinaZ3Support or XamigaCV64Support and you can't use XamigaCCmono + * if you enable XamigaCCcolor. + * Don't change the next 10 lines !!!!!!!!! + */ +# if (XamigaCl5426Server || XamigaCV64Support || XamigaRetinaZ3Support) \ + && !XamigaGfxCardSupport +# undef XamigaGfxCardSupport +# define XamigaGfxCardSupport YES +# endif +# if XamigaCCcolor +# undef XamigaCCmono +# define XamigaCCmono NO +# endif +#endif + +/* + * Definitions for the NetBSD/alpha X server. + */ +#if defined(AlphaArchitecture) +# define XalphaNetBSDServer YES +#ifndef XkbServerDefines +#define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT +#endif #endif /* - * Definition for compiling on Alpha machines + * Definitions for the NetBSD/arm32 VIDC20 X server. */ -#ifdef AlphaArchitecture -#define BuildServer NO +#if defined(arm32Architecture) +# define Xarm32VIDCServer YES +#endif + +/* + * Definitions for the NetBSD/x68k X server. + */ +#if defined(x68kArchitecture) +# define X68kServer YES +#endif + +/* + * Definitions for the NetBSD/macppc X server. + */ +#if defined(macppcArchitecture) +# define XmacppcServer YES +#endif + +/* + * Definitions for the NetBSD/pmax X server. + */ +#if defined(pmaxArchitecture) +# define XpmaxServer YES +#endif + +/* + * Definitions for the NetBSD/hpcmips X server. + */ +#if defined(hpcmipsArchitecture) +# define XhpcServer YES +#endif + + +#ifndef BuildScreenSaverLibrary +#define BuildScreenSaverLibrary YES +#endif + +#ifndef XkbServerDefines +#define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT +#endif + +/* + * We use rgb.txt with XFree86, so we must use it here to be compatible. + */ +#ifndef UseRgbTxt +#define UseRgbTxt YES #endif