aboutsummaryrefslogtreecommitdiff
path: root/net/vnc
diff options
context:
space:
mode:
authorIon-Mihai Tetcu <itetcu@FreeBSD.org>2008-05-06 18:09:38 +0000
committerIon-Mihai Tetcu <itetcu@FreeBSD.org>2008-05-06 18:09:38 +0000
commit902ce8c13d5618a08f974f001efc51435c85362f (patch)
treeb53f79f5cef1a6d815d18067a23c5aae610c006f /net/vnc
parentca5a31b4e67e60cae4e64a510fccb7d67a36847f (diff)
downloadports-902ce8c13d5618a08f974f001efc51435c85362f.tar.gz
ports-902ce8c13d5618a08f974f001efc51435c85362f.zip
Notes
Diffstat (limited to 'net/vnc')
-rw-r--r--net/vnc/Makefile3
-rw-r--r--net/vnc/files/FreeBSD.cf-patch52
-rw-r--r--net/vnc/files/extra-patch-xfree86802
3 files changed, 854 insertions, 3 deletions
diff --git a/net/vnc/Makefile b/net/vnc/Makefile
index 0cf7427e9e6b..ab53c10995ad 100644
--- a/net/vnc/Makefile
+++ b/net/vnc/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vnc
PORTVERSION= 4.1.2
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= net ipv6
MASTER_SITES= http://www.realvnc.com/:vnc
DISTNAME= vnc-4_1_2-unixsrc
@@ -83,6 +83,7 @@ post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/xc/config/cf/vnc.def
@${REINPLACE_CMD} -e 's|%%CC%%|${CC}|g' -e 's|%%CXX%%|${CXX}|g' \
+ -e 's|%%CFLAGS%%|${CFLAGS}|g' \
${WRKSRC}/xc/config/cf/FreeBSD.cf
.endif
diff --git a/net/vnc/files/FreeBSD.cf-patch b/net/vnc/files/FreeBSD.cf-patch
index 869af7c727e7..cc25e11d6c1f 100644
--- a/net/vnc/files/FreeBSD.cf-patch
+++ b/net/vnc/files/FreeBSD.cf-patch
@@ -1,5 +1,5 @@
---- xc/config/cf/FreeBSD.cf.orig Mon May 16 17:11:31 2005
-+++ xc/config/cf/FreeBSD.cf Mon May 16 17:11:58 2005
+--- xc/config/cf/FreeBSD.cf.orig 2003-01-15 11:52:12.000000000 +0900
++++ xc/config/cf/FreeBSD.cf 2007-09-09 22:04:24.000000000 +0900
@@ -162,11 +162,11 @@
* ld: warning: libXThrStub.so.6, needed by libX11.so, not found
*/
@@ -16,3 +16,51 @@
#endif
#define CppCmd /usr/bin/cpp
+@@ -223,7 +223,9 @@
+ */
+ #ifndef BuildXF86DRI
+ #if OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1)
++#ifndef x86_64Architecture
+ #define BuildXF86DRI YES
++#endif
+ #endif
+ #endif
+
+@@ -231,7 +233,7 @@
+ * 4.1/i386 and 5.0/i386 have the AGP driver.
+ */
+ #ifndef HasAgpGart
+-#if defined(i386Architecture) && \
++#if (defined(i386Architecture) || defined(x86_64Architecture)) && \
+ (OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 1))
+ #define HasAgpGart YES
+ #endif
+@@ -241,7 +241,7 @@
+ * SSE and 3DNow will be autodetected, so binutils is the only
+ * requirement for enabling this. By 4.2 they were all supported.
+ */
+-#if defined(i386Architecture) && \
++#if (defined(i386Architecture) || defined(x86_64Architecture)) && \
+ (OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 2))
+ # define HasX86Support YES
+ # define HasMMXSupport YES
+@@ -455,6 +455,10 @@
+ #ifdef i386Architecture
+ #define ServerExtraDefines GccGasOption XFree86ServerDefines
+ #endif
++#ifdef x86_64Architecture
++# define ServerOSDefines XFree86ServerOSDefines -DDDXTIME
++# define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
++#endif /* x86_64Architecture */
+ #ifdef AlphaArchitecture
+ #define ServerExtraDefines GccGasOption XFree86ServerDefines -D_XSERVER64
+ #endif
+@@ -492,7 +496,7 @@
+ #ifdef i386Architecture
+ # define OptimizedCDebugFlags DefaultGcc2i386Opt
+ #else
+-# define OptimizedCDebugFlags -O
++# define OptimizedCDebugFlags %%CFLAGS%%
+ #endif
+
+ #ifndef PreIncDir
diff --git a/net/vnc/files/extra-patch-xfree86 b/net/vnc/files/extra-patch-xfree86
new file mode 100644
index 000000000000..12839db57500
--- /dev/null
+++ b/net/vnc/files/extra-patch-xfree86
@@ -0,0 +1,802 @@
+--- ../common/boilerplate.mk.orig 2004-07-14 02:23:21.000000000 +0900
++++ ../common/boilerplate.mk 2007-09-09 22:12:55.000000000 +0900
+@@ -12,10 +12,10 @@
+ top_srcdir = @top_srcdir@
+ @SET_MAKE@
+ CC = @CC@
+-CFLAGS = @CFLAGS@ $(DIR_CFLAGS)
++CFLAGS = @CFLAGS@ -fPIC $(DIR_CFLAGS)
+ CCLD = $(CC)
+ CXX = @CXX@
+-CXXFLAGS = @CXXFLAGS@
++CXXFLAGS = @CXXFLAGS@ -fPIC
+ CXXLD = $(CXX)
+ CPPFLAGS = @CPPFLAGS@
+ DEFS = @DEFS@
+--- xc/config/cf/Imake.cf.orig 2003-02-19 01:51:45.000000000 +0900
++++ xc/config/cf/Imake.cf 2007-09-09 20:16:12.000000000 +0900
+@@ -223,6 +223,19 @@
+ # define i386Architecture
+ # undef i386
+ # endif
++# if defined(__x86_64__) || defined(x86_64)
++# ifndef __x86_64__
++# define __x86_64__
++# endif
++# ifndef x86_64Architecture
++# define x86_64Architecture
++# endif
++# define x86_64BsdArchitecture
++# undef x86_64
++# undef i386
++# undef i386Architecture
++# undef i386BsdArchitecture
++# endif
+ # ifdef __alpha__
+ # define AlphaBsdArchitecture
+ # define AlphaArchitecture
+--- xc/config/cf/xfree86.cf.orig 2003-02-27 05:07:59.000000000 +0900
++++ xc/config/cf/xfree86.cf 2007-09-09 20:40:56.000000000 +0900
+@@ -1167,7 +1167,7 @@
+ * The default is to install the X servers setuid-root on most OSs.
+ * It the servers are only started by xdm, they should not be setuid-root.
+ */
+-#if !defined(i386MachArchitecture) && !defined(OS2Architecture)
++#if !defined(i386MachArchitecture) && !defined(OS2Architecture) && !defined(x86_64Architecture)
+ # ifndef InstallXserverSetUID
+ # define InstallXserverSetUID YES
+ # endif
+@@ -1688,7 +1688,8 @@
+ # if SystemV || SystemV4 || \
+ (defined(LinuxArchitecture) && !defined(Mc68020Architecture)) || \
+ defined(i386BsdArchitecture) || defined(LynxOSArchitecture) || \
+- defined(OS2Architecture) || defined(GNUMachArchitecture)
++ defined(OS2Architecture) || defined(GNUMachArchitecture) || \
++ defined(x86_64Architecture)
+ # define BuildScanpci YES
+ # else
+ # define BuildScanpci NO
+@@ -1801,7 +1802,7 @@
+ #endif
+
+ #ifndef XFree86ConsoleDefines
+-# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture)
++# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) || defined(x86_64BsdArchitecture)
+ # define XFree86ConsoleDefines -DPCCONS_SUPPORT -DSYSCONS_SUPPORT -DPCVT_SUPPORT
+ # else
+ # define XFree86ConsoleDefines /**/
+@@ -1995,7 +1996,7 @@
+
+ #ifndef Egcs112Bug
+ /* Not exactly precise, but it'll do for now... */
+-# if HasGcc2 && defined(i386Architecture) && \
++# if HasGcc2 && (defined(i386Architecture) || defined(x86_64Architecture)) && \
+ (GccMajorVersion == 2) && (GccMinorVersion > 8)
+ # define Egcs112Bug YES
+ # else
+@@ -2012,7 +2013,7 @@
+ #define HasGlibc21Sigsetjmp NO
+ #endif
+
+-#ifdef i386Architecture
++#if defined(i386Architecture) || defined(x86_64Architecture)
+ # ifndef HasX86Support
+ # define HasX86Support YES
+ # endif
+--- xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile.orig 2003-02-18 01:37:19.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile 2007-09-07 06:38:14.000000000 +0900
+@@ -150,6 +150,9 @@
+ #elif defined(Sparc64Architecture)
+ VIDEO_SRC = sparc64_video.c
+ VIDEO_OBJ = sparc64_video.o
++#elif defined(x86_64Architecture)
++VIDEO_SRC = i386_video.c
++VIDEO_OBJ = i386_video.o
+ #else
+ #error Unknown architecture !
+ #endif
+--- xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c.orig 2002-05-23 06:38:29.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c 2007-09-08 20:35:51.000000000 +0900
+@@ -18,7 +18,7 @@
+
+ #ifdef INCLUDE_XF86_NO_DOMAIN
+
+-#if defined(__alpha__) || defined(__sparc64__)
++#if defined(__alpha__) || defined(__sparc64__) || defined(__x86_64__)
+
+ resPtr
+ xf86BusAccWindowsFromOS(void)
+--- xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.h.orig 2002-10-11 10:40:34.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.h 2007-09-09 11:44:01.000000000 +0900
+@@ -2,4 +2,5 @@
+
+ extern void KbdGetMapping(InputInfoPtr pInfo, KeySymsPtr pKeySyms,
+ CARD8 *pModMap);
+-
++#include <sys/kbio.h>
++#include <sys/consio.h>
+--- xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile.orig 2003-02-24 05:26:49.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile 2007-09-09 22:21:16.000000000 +0900
+@@ -80,7 +80,7 @@
+ PCIDRVRSRC = ix86Pci.c linuxPci.c
+ PCIDRVROBJ = ix86Pci.o linuxPci.o
+
+-#elif defined(FreeBSDArchitecture) && defined(AlphaArchitecture)
++#elif defined(FreeBSDArchitecture) && (defined(AlphaArchitecture) || defined(x86_64Architecture))
+
+
+ XCOMM generic FreeBSD PCI driver (using /dev/pci)
+--- xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h.orig 2002-12-24 00:37:26.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h 2007-09-09 22:21:25.000000000 +0900
+@@ -230,6 +230,10 @@
+ # define ARCH_PCI_INIT linuxPciInit
+ # define INCLUDE_XF86_MAP_PCI_MEM
+ # define INCLUDE_XF86_NO_DOMAIN
++# elif defined(FreeBSD)
++# define ARCH_PCI_INIT freebsdPciInit
++# define INCLUDE_XF86_MAP_PCI_MEM
++# define INCLUDE_XF86_NO_DOMAIN
+ # endif
+ # define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper
+ #elif defined(__i386__)
+@@ -291,14 +295,20 @@
+ # elif defined(sun)
+ # define ARCH_PCI_INIT sparcPciInit
+ # define INCLUDE_XF86_MAP_PCI_MEM
+-# elif defined(__OpenBSD__) && defined(__sparc64__)
++# elif (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__sparc64__)
+ # define ARCH_PCI_INIT freebsdPciInit
+ # define INCLUDE_XF86_MAP_PCI_MEM
+ # define INCLUDE_XF86_NO_DOMAIN
+ # endif
+-# define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge
++# if !defined(__FreeBSD__)
++# define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge
++# endif
+ #elif defined(__x86_64__)
+-# define ARCH_PCI_INIT ix86PciInit
++# if defined(__FreeBSD__)
++# define ARCH_PCI_INIT freebsdPciInit
++# else
++# define ARCH_PCI_INIT ix86PciInit
++# endif
+ # define INCLUDE_XF86_MAP_PCI_MEM
+ # define INCLUDE_XF86_NO_DOMAIN
+ # if defined(linux)
+--- xc/programs/Xserver/hw/xfree86/os-support/bus/freebsdPci.c.orig 2002-08-28 07:07:07.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bus/freebsdPci.c 2007-09-09 22:21:33.000000000 +0900
+@@ -84,7 +84,7 @@
+ /* bridge */ NULL
+ };
+
+-#if !defined(__OpenBSD__)
++#if !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ #if X_BYTE_ORDER == X_BIG_ENDIAN
+ #ifdef __sparc__
+ #ifndef ASI_PL
+--- xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h.orig 2002-05-23 06:38:30.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Sbus.h 2007-09-09 22:21:43.000000000 +0900
+@@ -35,7 +35,13 @@
+ #elif defined(__OpenBSD__) && defined(__sparc64__)
+ /* XXX */
+ #elif defined(CSRG_BASED)
++#if defined(__FreeBSD__)
++#include <sys/types.h>
++#include <sys/fbio.h>
++#include <dev/ofw/openpromio.h>
++#else
+ #include <machine/fbio.h>
++#endif
+ #else
+ #include <sun/fbio.h>
+ #endif
+--- xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c.orig 2003-02-22 15:00:39.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/os-support/shared/libc_wrapper.c 2007-09-09 22:23:14.000000000 +0900
+@@ -480,7 +480,7 @@
+ if (flags & XF86_MAP_FIXED) f |= MAP_FIXED;
+ if (flags & XF86_MAP_SHARED) f |= MAP_SHARED;
+ if (flags & XF86_MAP_PRIVATE) f |= MAP_PRIVATE;
+-#ifdef __x86_64__
++#if defined(__x86_64__) && defined(linux)
+ if (flags & XF86_MAP_32BIT) f |= MAP_32BIT;
+ #endif
+ if (prot & XF86_PROT_EXEC) p |= PROT_EXEC;
+--- xc/programs/Xserver/hw/xfree86/common/Imakefile.orig 2003-02-18 02:06:41.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/common/Imakefile 2007-09-09 22:24:34.000000000 +0900
+@@ -18,7 +18,8 @@
+ #endif /* GNUMachArchitecture */
+ #else
+ # if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) \
+- || defined(OpenBSDArchitecture) || defined(NetBSDArchitecture)
++ || defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) \
++ || defined(FreeBSDArchitecture)
+ KBD = xf86KbdBSD
+ # else
+ # ifdef LinuxArchitecture
+--- xc/programs/Xserver/hw/xfree86/common/xf86Events.c.orig 2003-02-20 13:20:52.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/common/xf86Events.c 2007-09-09 22:24:56.000000000 +0900
+@@ -315,7 +315,7 @@
+ CloseDownClient(server);
+ }
+ break;
+-#if !defined(__SOL8__) && (!defined(sun) || defined(i386))
++#if !defined(__SOL8__) && (!defined(sun) || defined(i386)) && defined(VT_ACTIVATE)
+ case ACTION_SWITCHSCREEN:
+ if (VTSwitchEnabled && !xf86Info.dontVTSwitch && arg) {
+ int vtno = *((int *) arg);
+--- xc/programs/Xserver/hw/xfree86/loader/Imakefile.orig 2003-02-27 08:32:12.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/loader/Imakefile 2007-09-09 22:27:05.000000000 +0900
+@@ -34,7 +34,7 @@
+ SETJMPDEFINES = -DHAS_GLIBC_SIGSETJMP=1
+ #endif
+
+-#if defined (x86_64Architecture)
++#if defined (x86_64Architecture) && defined(linux)
+ ARCHDEFINES = -DDoMMAPedMerge -DMmapPageAlign
+ #endif
+
+--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c.orig 2003-01-25 02:26:35.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2007-09-09 22:27:13.000000000 +0900
+@@ -73,7 +73,7 @@
+ # if !defined(linux)
+ # error No MAP_ANON?
+ # endif
+-# if !defined (__x86_64__)
++# if !defined (__x86_64__) || !defined(__linux__)
+ # define MMAP_FLAGS (MAP_PRIVATE | MAP_ANON)
+ # else
+ # define MMAP_FLAGS (MAP_PRIVATE | MAP_ANON | MAP_32BIT)
+--- xc/config/cf/bsdLib.rules.orig 2007-09-10 08:00:14.000000000 +0900
++++ xc/config/cf/bsdLib.rules 2007-09-10 08:00:38.000000000 +0900
+@@ -450,4 +450,14 @@
+ #endif
+
+
++#ifdef FreeBSDArchitecture YES
++#define NormalLibraryObjectRule() @@\
++.c.Osuf: @@\
++ NormalSharedLibObjCompile($(_NOOP_))
++
++#define NormalCplusplusObjectRule() @@\
++.CCsuf.Osuf: @@\
++ NormalSharedLibObjCplusplusCompile($(_NOOP_))
++#endif
++
+ #endif /* UseElfFormat */
+--- xc/lib/font/FreeType/ftfuncs.c.orig 2003-02-13 12:01:45.000000000 +0900
++++ xc/lib/font/FreeType/ftfuncs.c 2007-09-10 09:30:44.000000000 +0900
+@@ -959,11 +959,11 @@
+ int underlinePosition, underlineThickness;
+
+ if(post) {
+- underlinePosition = TRANSFORM_FUNITS_Y(post->underlinePosition);
++ underlinePosition = TRANSFORM_FUNITS_Y(-post->underlinePosition);
+ underlineThickness = TRANSFORM_FUNITS_Y(post->underlineThickness);
+ } else {
+ underlinePosition =
+- TRANSFORM_FUNITS_Y(t1info->underline_position);
++ TRANSFORM_FUNITS_Y(-t1info->underline_position);
+ underlineThickness =
+ TRANSFORM_FUNITS_Y(t1info->underline_thickness);
+ }
+--- xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c.orig 2003-02-09 06:26:58.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c 2007-09-10 09:39:58.000000000 +0900
+@@ -1359,6 +1359,7 @@
+ if (pMga->irq) {
+ drmCtlUninstHandler(pMga->drmFD);
+ pMga->irq = 0;
++ pMga->reg_ien = 0;
+ }
+
+ /* Cleanup DMA */
+--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c.orig 2003-02-11 08:42:51.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c 2007-09-10 09:42:07.000000000 +0900
+@@ -178,6 +178,7 @@
+ */
+
+ static const char *vgahwSymbols[] = {
++ "vgaHWUnmapMem",
+ "vgaHWDPMSSet",
+ "vgaHWFreeHWRec",
+ "vgaHWGetHWRec",
+--- xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c.orig 2003-02-11 08:42:51.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c 2007-09-10 09:45:41.000000000 +0900
+@@ -24,7 +24,7 @@
+ /* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
+ <jpaana@s2.org> */
+
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.27 2003/02/10 23:42:51 mvojkovi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_setup.c,v 1.28 2003/03/12 21:27:18 mvojkovi Exp $ */
+
+ #include "nv_include.h"
+
+@@ -416,6 +416,9 @@
+ break;
+ }
+
++ if(pNv->riva.Architecture == 3)
++ pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
++
+ if(pNv->SecondCRTC) {
+ pNv->riva.PCIO = pNv->riva.PCIO0 + 0x2000;
+ pNv->riva.PCRTC = pNv->riva.PCRTC0 + 0x800;
+@@ -484,7 +487,6 @@
+ frameBase+0x00C00000, 0x00008000);
+
+ NVCommonSetup(pScrn);
+- pNv->riva.PCRTC = pNv->riva.PCRTC0 = pNv->riva.PGRAPH;
+ }
+
+ void
+--- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c.orig 2003-02-19 10:19:41.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c 2007-09-10 09:48:30.000000000 +0900
+@@ -275,6 +275,7 @@
+ "drmAddMap",
+ "drmAgpAcquire",
+ "drmAgpAlloc",
++ "drmAgpBase",
+ "drmAgpBind",
+ "drmAgpDeviceId",
+ "drmAgpEnable",
+@@ -288,8 +289,11 @@
+ "drmCommandRead",
+ "drmCommandWrite",
+ "drmCommandWriteRead",
++ "drmCtlInstHandler",
++ "drmCtlUninstHandler",
+ "drmFreeBufs",
+ "drmFreeVersion",
++ "drmGetInterruptFromBusID",
+ "drmGetLibVersion",
+ "drmGetVersion",
+ "drmMap",
+@@ -307,6 +311,7 @@
+ "DRICreateInfoRec",
+ "DRIDestroyInfoRec",
+ "DRIFinishScreenInit",
++ "DRIGetDeviceInfo",
+ "DRIGetSAREAPrivate",
+ "DRILock",
+ "DRIQueryVersion",
+--- xc/lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S.orig 2002-11-08 03:31:59.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S 2007-09-10 09:57:23.000000000 +0900
+@@ -28,7 +28,7 @@
+
+ #define GLOBL( x ) \
+ .globl x; \
+-x##:
++x:
+
+ .data
+ .align 4
+--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c.orig 2003-02-25 05:34:55.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c 2007-09-10 09:59:44.000000000 +0900
+@@ -370,7 +370,7 @@
+ }
+
+ if (info->IsSecondary || info->Clone) {
+- save2 = INREG(RADEON_CRTC_GEN_CNTL) & ~(CARD32) (3 << 20);
++ save2 = INREG(RADEON_CRTC2_GEN_CNTL) & ~(CARD32) (3 << 20);
+ save2 |= (CARD32) (2 << 20);
+ OUTREG(RADEON_CRTC2_GEN_CNTL, save2 & (CARD32)~RADEON_CRTC2_CUR_EN);
+ }
+--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c.orig 2003-02-19 18:17:30.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c 2007-09-10 10:01:06.000000000 +0900
+@@ -1585,6 +1585,7 @@
+ if (info->irq) {
+ drmCtlUninstHandler(info->drmFD);
+ info->irq = 0;
++ info->ModeReg.gen_int_cntl = 0;
+ }
+
+ /* De-allocate vertex buffers */
+--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h.orig 2003-02-08 03:08:59.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h 2007-09-10 10:02:33.000000000 +0900
+@@ -879,7 +879,7 @@
+ # define RADEON_P2PLL_REF_DIV_MASK 0x03ff
+ # define RADEON_P2PLL_ATOMIC_UPDATE_R (1 << 15) /* same as _W */
+ # define RADEON_P2PLL_ATOMIC_UPDATE_W (1 << 15) /* same as _R */
+-# define R300_PPLL_REF_DIV_ACC_MASK (0x3ff < 18)
++# define R300_PPLL_REF_DIV_ACC_MASK (0x3ff << 18)
+ # define R300_PPLL_REF_DIV_ACC_SHIFT 18
+ #define RADEON_PALETTE_DATA 0x00b4
+ #define RADEON_PALETTE_30_DATA 0x00b8
+--- xc/lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S.orig 2002-11-08 03:32:00.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S 2007-09-10 10:03:57.000000000 +0900
+@@ -28,7 +28,7 @@
+
+ #define GLOBL( x ) \
+ .globl x; \
+-x##:
++x:
+
+ .data
+ .align 4
+--- xc/lib/GL/mesa/src/drv/r200/r200_context.c.orig 2002-12-17 01:18:53.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/r200/r200_context.c 2007-09-10 10:05:57.000000000 +0900
+@@ -391,6 +391,7 @@
+ */
+ _tnl_destroy_pipeline( ctx );
+ _tnl_install_pipeline( ctx, r200_pipeline );
++ ctx->Driver.FlushVertices = r200FlushVertices;
+
+ /* Try and keep materials and vertices separate:
+ */
+--- xc/lib/GL/mesa/src/drv/r200/r200_swtcl.c.orig 2002-12-24 00:29:26.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/r200/r200_swtcl.c 2007-09-10 10:08:12.000000000 +0900
+@@ -46,6 +46,7 @@
+ #include "math/m_translate.h"
+ #include "tnl/tnl.h"
+ #include "tnl/t_context.h"
++#include "tnl/t_imm_exec.h"
+ #include "tnl/t_pipeline.h"
+
+ #include "r200_context.h"
+@@ -1223,6 +1224,14 @@
+ }
+
+
++void r200FlushVertices( GLcontext *ctx, GLuint flags )
++{
++ _tnl_flush_vertices( ctx, flags );
++
++ if (flags & FLUSH_STORED_VERTICES)
++ R200_FIREVERTICES( R200_CONTEXT( ctx ) );
++}
++
+ /**********************************************************************/
+ /* Initialization. */
+ /**********************************************************************/
+--- xc/lib/GL/mesa/src/drv/r200/r200_swtcl.h.orig 2002-12-17 01:18:55.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/r200/r200_swtcl.h 2007-09-10 10:09:23.000000000 +0900
+@@ -42,6 +42,7 @@
+ extern void r200InitSwtcl( GLcontext *ctx );
+ extern void r200DestroySwtcl( GLcontext *ctx );
+
++extern void r200FlushVertices( GLcontext *ctx, GLuint flags );
+ extern void r200ChooseRenderState( GLcontext *ctx );
+ extern void r200ChooseVertexState( GLcontext *ctx );
+
+--- xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c.orig 2002-12-17 01:18:55.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c 2007-09-10 10:13:18.000000000 +0900
+@@ -38,6 +38,7 @@
+ #include "r200_ioctl.h"
+ #include "r200_tex.h"
+ #include "r200_tcl.h"
++#include "r200_swtcl.h"
+ #include "r200_vtxfmt.h"
+
+ #include "api_noop.h"
+@@ -59,7 +60,7 @@
+
+ struct r200_vb vb;
+
+-static void r200FlushVertices( GLcontext *, GLuint );
++static void r200VtxFmtFlushVertices( GLcontext *, GLuint );
+
+ static void count_func( const char *name, struct dynfn *l )
+ {
+@@ -357,12 +358,13 @@
+ fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
+
+ if (ctx->Driver.NeedFlush)
+- r200FlushVertices( ctx, ctx->Driver.NeedFlush );
++ r200VtxFmtFlushVertices( ctx, ctx->Driver.NeedFlush );
+
+ if (ctx->NewState)
+ _mesa_update_state( ctx ); /* clear state so fell_back sticks */
+
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = r200FlushVertices;
+
+ assert( rmesa->dma.flush == 0 );
+ rmesa->vb.fell_back = GL_TRUE;
+@@ -404,6 +406,7 @@
+ prim = rmesa->vb.prim[0];
+ ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = r200FlushVertices;
+
+ assert(rmesa->dma.flush == 0);
+ rmesa->vb.fell_back = GL_TRUE;
+@@ -756,7 +759,7 @@
+ fprintf(stderr, "reinstall (new install)\n");
+
+ _mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
+- ctx->Driver.FlushVertices = r200FlushVertices;
++ ctx->Driver.FlushVertices = r200VtxFmtFlushVertices;
+ ctx->Driver.NewList = r200NewList;
+ rmesa->vb.installed = GL_TRUE;
+ vb.context = ctx;
+@@ -772,6 +775,7 @@
+ if (rmesa->dma.flush)
+ rmesa->dma.flush( rmesa );
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = r200FlushVertices;
+ rmesa->vb.installed = GL_FALSE;
+ vb.context = 0;
+ }
+@@ -931,7 +935,7 @@
+ return GL_TRUE;
+ }
+
+-static void r200FlushVertices( GLcontext *ctx, GLuint flags )
++static void r200VtxFmtFlushVertices( GLcontext *ctx, GLuint flags )
+ {
+ r200ContextPtr rmesa = R200_CONTEXT( ctx );
+
+--- xc/lib/GL/mesa/src/drv/radeon/radeon_context.c.orig 2003-02-09 06:26:45.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/radeon/radeon_context.c 2007-09-10 10:14:38.000000000 +0900
+@@ -382,6 +382,7 @@
+ */
+ _tnl_destroy_pipeline( ctx );
+ _tnl_install_pipeline( ctx, radeon_pipeline );
++ ctx->Driver.FlushVertices = radeonFlushVertices;
+
+ /* Try and keep materials and vertices separate:
+ */
+--- xc/lib/GL/mesa/src/drv/radeon/radeon_swtcl.c.orig 2003-02-16 07:18:48.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/radeon/radeon_swtcl.c 2007-09-10 10:17:15.000000000 +0900
+@@ -45,6 +45,7 @@
+ #include "math/m_translate.h"
+ #include "tnl/tnl.h"
+ #include "tnl/t_context.h"
++#include "tnl/t_imm_exec.h"
+ #include "tnl/t_pipeline.h"
+
+ #include "radeon_context.h"
+@@ -1134,6 +1135,14 @@
+ }
+
+
++void radeonFlushVertices( GLcontext *ctx, GLuint flags )
++{
++ _tnl_flush_vertices( ctx, flags );
++
++ if (flags & FLUSH_STORED_VERTICES)
++ RADEON_FIREVERTICES( RADEON_CONTEXT( ctx ) );
++}
++
+ /**********************************************************************/
+ /* Initialization. */
+ /**********************************************************************/
+--- xc/lib/GL/mesa/src/drv/radeon/radeon_swtcl.h.orig 2002-10-30 21:51:57.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/radeon/radeon_swtcl.h 2007-09-10 10:18:31.000000000 +0900
+@@ -43,6 +43,7 @@
+ extern void radeonInitSwtcl( GLcontext *ctx );
+ extern void radeonDestroySwtcl( GLcontext *ctx );
+
++extern void radeonFlushVertices( GLcontext *ctx, GLuint flags );
+ extern void radeonChooseRenderState( GLcontext *ctx );
+ extern void radeonChooseVertexState( GLcontext *ctx );
+
+--- xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c.orig 2002-12-17 01:18:59.000000000 +0900
++++ xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c 2007-09-10 10:22:20.000000000 +0900
+@@ -38,6 +38,7 @@
+ #include "radeon_ioctl.h"
+ #include "radeon_tex.h"
+ #include "radeon_tcl.h"
++#include "radeon_swtcl.h"
+ #include "radeon_vtxfmt.h"
+
+ #include "api_noop.h"
+@@ -59,7 +60,7 @@
+
+ struct radeon_vb vb;
+
+-static void radeonFlushVertices( GLcontext *, GLuint );
++static void radeonVtxfmtFlushVertices( GLcontext *, GLuint );
+
+ static void count_func( const char *name, struct dynfn *l )
+ {
+@@ -336,12 +337,13 @@
+ fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
+
+ if (ctx->Driver.NeedFlush)
+- radeonFlushVertices( ctx, ctx->Driver.NeedFlush );
++ radeonVtxfmtFlushVertices( ctx, ctx->Driver.NeedFlush );
+
+ if (ctx->NewState)
+ _mesa_update_state( ctx ); /* clear state so fell_back sticks */
+
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = radeonFlushVertices;
+
+ assert( rmesa->dma.flush == 0 );
+ rmesa->vb.fell_back = GL_TRUE;
+@@ -382,6 +384,7 @@
+ prim = rmesa->vb.prim[0];
+ ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = radeonFlushVertices;
+
+ assert(rmesa->dma.flush == 0);
+ rmesa->vb.fell_back = GL_TRUE;
+@@ -731,7 +734,7 @@
+ fprintf(stderr, "reinstall (new install)\n");
+
+ _mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
+- ctx->Driver.FlushVertices = radeonFlushVertices;
++ ctx->Driver.FlushVertices = radeonVtxfmtFlushVertices;
+ ctx->Driver.NewList = radeonNewList;
+ rmesa->vb.installed = GL_TRUE;
+ vb.context = ctx;
+@@ -747,6 +750,7 @@
+ if (rmesa->dma.flush)
+ rmesa->dma.flush( rmesa );
+ _tnl_wakeup_exec( ctx );
++ ctx->Driver.FlushVertices = radeonFlushVertices;
+ rmesa->vb.installed = GL_FALSE;
+ vb.context = 0;
+ }
+@@ -905,7 +909,7 @@
+ return GL_TRUE;
+ }
+
+-static void radeonFlushVertices( GLcontext *ctx, GLuint flags )
++static void radeonVtxfmtFlushVertices( GLcontext *ctx, GLuint flags )
+ {
+ radeonContextPtr rmesa = RADEON_CONTEXT( ctx );
+
+--- xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h.orig 2003-02-08 05:41:11.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h 2007-09-10 10:25:56.000000000 +0900
+@@ -498,21 +498,34 @@
+ #define PCI_CHIP_TRIO64V2_DXGX 0x8901
+ #define PCI_CHIP_PLATO_PX 0x8902
+ #define PCI_CHIP_Trio3D 0x8904
+-#define PCI_CHIP_Trio3D_2X 0x8A13
+ #define PCI_CHIP_VIRGE_DXGX 0x8A01
+ #define PCI_CHIP_VIRGE_GX2 0x8A10
++#define PCI_CHIP_Trio3D_2X 0x8A13
+ #define PCI_CHIP_SAVAGE3D 0x8A20
+ #define PCI_CHIP_SAVAGE3D_MV 0x8A21
+ #define PCI_CHIP_SAVAGE4 0x8A22
+-#define PCI_CHIP_VIRGE_MX 0x8C01
+-#define PCI_CHIP_VIRGE_MXPLUS 0x8C01
+-#define PCI_CHIP_VIRGE_MXP 0x8C03
+ #define PCI_CHIP_PROSAVAGE_PM 0x8A25
+ #define PCI_CHIP_PROSAVAGE_KM 0x8A26
++#define PCI_CHIP_VIRGE_MX 0x8C01
++#define PCI_CHIP_VIRGE_MXPLUS 0x8C02
++#define PCI_CHIP_VIRGE_MXP 0x8C03
+ #define PCI_CHIP_SAVAGE_MX_MV 0x8C10
+ #define PCI_CHIP_SAVAGE_MX 0x8C11
+ #define PCI_CHIP_SAVAGE_IX_MV 0x8C12
+ #define PCI_CHIP_SAVAGE_IX 0x8C13
++#define PCI_CHIP_SUPSAV_MX128 0x8C22
++#define PCI_CHIP_SUPSAV_MX64 0x8C24
++#define PCI_CHIP_SUPSAV_MX64C 0x8C26
++#define PCI_CHIP_SUPSAV_IX128SDR 0x8C2A
++#define PCI_CHIP_SUPSAV_IX128DDR 0x8C2B
++#define PCI_CHIP_SUPSAV_IX64SDR 0x8C2C
++#define PCI_CHIP_SUPSAV_IX64DDR 0x8C2D
++#define PCI_CHIP_SUPSAV_IXCSDR 0x8C2E
++#define PCI_CHIP_SUPSAV_IXCDDR 0x8C2F
++#define PCI_CHIP_S3TWISTER_P 0x8D01
++#define PCI_CHIP_S3TWISTER_K 0x8D02
++#define PCI_CHIP_PROSAVAGE_DDR 0x8D03
++#define PCI_CHIP_PROSAVAGE_DDRK 0x8D04
+ #define PCI_CHIP_SAVAGE2000 0x9102
+
+ /* ARK Logic */
+--- xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h.orig 2002-10-03 05:39:55.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_regs.h 2007-09-10 10:27:32.000000000 +0900
+@@ -3,30 +3,6 @@
+ #ifndef _SAVAGE_REGS_H
+ #define _SAVAGE_REGS_H
+
+-/* These are here until xf86PciInfo.h is updated. */
+-
+-#ifndef PCI_CHIP_S3TWISTER_P
+-#define PCI_CHIP_S3TWISTER_P 0x8d01
+-#endif
+-#ifndef PCI_CHIP_S3TWISTER_K
+-#define PCI_CHIP_S3TWISTER_K 0x8d02
+-#endif
+-#ifndef PCI_CHIP_SUPSAV_MX128
+-#define PCI_CHIP_SUPSAV_MX128 0x8c22
+-#define PCI_CHIP_SUPSAV_MX64 0x8c24
+-#define PCI_CHIP_SUPSAV_MX64C 0x8c26
+-#define PCI_CHIP_SUPSAV_IX128SDR 0x8c2a
+-#define PCI_CHIP_SUPSAV_IX128DDR 0x8c2b
+-#define PCI_CHIP_SUPSAV_IX64SDR 0x8c2c
+-#define PCI_CHIP_SUPSAV_IX64DDR 0x8c2d
+-#define PCI_CHIP_SUPSAV_IXCSDR 0x8c2e
+-#define PCI_CHIP_SUPSAV_IXCDDR 0x8c2f
+-#endif
+-#ifndef PCI_CHIP_PROSAVAGE_DDR
+-#define PCI_CHIP_PROSAVAGE_DDR 0x8d03
+-#define PCI_CHIP_PROSAVAGE_DDRK 0x8d04
+-#endif
+-
+ #define S3_SAVAGE3D_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE_MX))
+
+ #define S3_SAVAGE4_SERIES(chip) ((chip==S3_SAVAGE4) || (chip==S3_PROSAVAGE))
+--- xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c.orig 2003-02-25 13:08:21.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c 2007-09-10 10:28:45.000000000 +0900
+@@ -123,8 +123,8 @@
+ { PCI_CHIP_SAVAGE_IX, "Savage/IX" },
+ { PCI_CHIP_PROSAVAGE_PM, "ProSavage PM133" },
+ { PCI_CHIP_PROSAVAGE_KM, "ProSavage KM133" },
+- { PCI_CHIP_S3TWISTER_P, "ProSavage PN133" },
+- { PCI_CHIP_S3TWISTER_K, "ProSavage KN133" },
++ { PCI_CHIP_S3TWISTER_P, "Twister PN133" },
++ { PCI_CHIP_S3TWISTER_K, "Twister KN133" },
+ { PCI_CHIP_SUPSAV_MX128, "SuperSavage/MX 128" },
+ { PCI_CHIP_SUPSAV_MX64, "SuperSavage/MX 64" },
+ { PCI_CHIP_SUPSAV_MX64C, "SuperSavage/MX 64C" },
+--- xc/programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c.orig 2003-02-06 02:45:29.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_driver.c 2007-09-10 10:30:31.000000000 +0900
+@@ -1410,7 +1410,7 @@
+ ENTER_PROC("SMI_Save");
+
+ /* Save the standard VGA registers */
+- vgaHWSave(pScrn, vgaSavePtr, VGA_SR_MODE);
++ vgaHWSave(pScrn, vgaSavePtr, VGA_SR_ALL);
+ save->smiDACMask = VGAIN8(pSmi, VGA_DAC_MASK);
+ VGAOUT8(pSmi, VGA_DAC_READ_ADDR, 0);
+ for (i = 0; i < 256; i++)
+@@ -1601,7 +1601,7 @@
+ VGAOUT8_INDEX(pSmi, VGA_SEQ_INDEX, VGA_SEQ_DATA, 0xA0, restore->SRA0);
+
+ /* Restore the standard VGA registers */
+- vgaHWRestore(pScrn, vgaSavePtr, VGA_SR_MODE);
++ vgaHWRestore(pScrn, vgaSavePtr, VGA_SR_ALL);
+ if (restore->smiDACMask)
+ {
+ VGAOUT8(pSmi, VGA_DAC_MASK, restore->smiDACMask);
+@@ -1672,7 +1672,7 @@
+ }
+
+ if (restore->modeInit)
+- vgaHWRestore(pScrn, vgaSavePtr, VGA_SR_MODE);
++ vgaHWRestore(pScrn, vgaSavePtr, VGA_SR_ALL);
+
+ if (!SMI_LYNXM_SERIES(pSmi->Chipset))
+ {
+--- xc/programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_video.c.orig 2003-01-12 12:55:49.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/siliconmotion/smi_video.c 2007-09-10 10:31:51.000000000 +0900
+@@ -277,7 +277,7 @@
+ {XvSettable | XvGettable, 0, 1, XV_INTERLACED_NAME},
+ };
+
+-static XF86AttributeRec SMI_VideoAttributes[N_ATTRS] = {
++static XF86AttributeRec SMI_VideoAttributes[2] = {
+ {XvSettable | XvGettable, 0, 255, XV_BRIGHTNESS_NAME},
+ {XvSettable | XvGettable, 0x000000, 0xFFFFFF, XV_COLORKEY_NAME},
+ };
+--- xc/programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile.orig 2002-09-17 03:06:01.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/sunffb/Imakefile 2007-09-10 10:34:37.000000000 +0900
+@@ -49,7 +49,7 @@
+ #define FFBsObjectRule(name) @@\
+ name.o: name.s @@\
+ $(RM) $@ @@\
+- $(CPP) $*.s | $(AS) $(GCCVISOPTION) -o $@ -
++ $(CC) -c -x assembler-with-cpp $(GCCVISOPTION) $*.s -o $@
+ #endif
+ #else
+ VISOBJS =
+--- xc/programs/Xserver/xkb/xkbInit.c.orig 2003-02-09 15:29:20.000000000 +0900
++++ xc/programs/Xserver/xkb/xkbInit.c 2007-09-10 10:42:15.000000000 +0900
+@@ -713,7 +713,7 @@
+ if (names->types) names->types = _XkbDupString(names->types);
+ if (names->compat) names->compat = _XkbDupString(names->compat);
+ if (names->geometry) names->geometry = _XkbDupString(names->geometry);
+- if (names->symbols) names->geometry = _XkbDupString(names->symbols);
++ if (names->symbols) names->symbols = _XkbDupString(names->symbols);
+
+ if (defs.model && defs.layout && rules) {
+ XkbComponentNamesRec rNames;
+--- xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c.orig 2003-01-30 04:29:49.000000000 +0900
++++ xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c 2007-09-10 10:43:51.000000000 +0900
+@@ -304,7 +304,10 @@
+ "drmAgpVendorId",
+ "drmCommandNone",
+ "drmCommandWrite",
++ "drmCtlInstHandler",
++ "drmCtlUninstHandler",
+ "drmFreeVersion",
++ "drmGetInterruptFromBusID",
+ "drmGetLibVersion",
+ "drmGetVersion",
+ "drmMap",